Syllable Counter
Compter les syllabes dans les mots et le texte, analyser les métriques de lisibilité et vérifier les modèles de stress.
À propos de cet outil
Le Compteur de Syllabes est un outil léger conçu pour analyser la structure rythmique du texte en comptant les syllabes des mots et en mesurant la complexité textuelle grâce à des métriques de lisibilité. Comprendre la distribution des syllabes aide les écrivains, poètes et apprenants de langues à reconnaître le flux du texte et si le contenu convient à son public visé. Contrairement aux systèmes basés sur un dictionnaire qui nécessitent des recherches côté serveur, cet outil fonctionne instantanément dans votre navigateur en utilisant une heuristique de groupes de voyelles qui gère les motifs anglais courants.
Pour utiliser l'outil, collez ou tapez simplement votre texte dans le champ de saisie et cliquez sur Analyser. L'outil affiche le nombre total de syllabes, le nombre de mots, la moyenne de syllabes par mot et une classification de lisibilité allant de simple (moins de 1,5 syllabe par mot) à complexe (plus de 2,5). Une analyse mot par mot affiche les comptes de syllabes individuels, vous aidant à identifier quels mots contribuent le plus à la densité du texte. C'est particulièrement utile pour les poètes affinant la métrique, les écrivains ajustant le contenu pour l'adéquation au niveau scolaire, ou les paroliers adaptant les paroles au rythme d'une mélodie.
Le compteur applique des corrections pour les lettres muettes (comme le 'e' final dans "cake") et gère les motifs anglais courants comme les terminaisons en -le. Pour la plus grande précision avec des noms propres inhabituels ou une terminologie spécialisée, recoupez les résultats avec un guide de prononciation. L'outil est optimisé pour l'anglais ; les autres langues ont des règles de syllabification différentes et ne peuvent donner que des résultats approximatifs.
Questions Fréquentes
Implémentation du Code
import re
def count_syllables(word: str) -> int:
word = word.lower().strip(".,!?;:'"")
if not word:
return 0
# Special case: silent 'e' at end
if word.endswith('e') and len(word) > 2:
word = word[:-1]
# Count vowel groups
vowels = "aeiouy"
count = 0
prev_was_vowel = False
for char in word:
is_vowel = char in vowels
if is_vowel and not prev_was_vowel:
count += 1
prev_was_vowel = is_vowel
return max(1, count)
def count_syllables_in_text(text: str) -> dict:
words = re.findall(r"[a-zA-Z']+", text)
total = sum(count_syllables(w) for w in words)
return {
"words": len(words),
"syllables": total,
"avg_per_word": round(total / len(words), 2) if words else 0
}
text = "The quick brown fox jumps over the lazy dog"
result = count_syllables_in_text(text)
print(f"Words: {result['words']}")
print(f"Syllables: {result['syllables']}")
print(f"Avg per word: {result['avg_per_word']}")Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.