Syllable Counter
Conte sílabas em palavras e texto, analise métricas de legibilidade e verifique padrões de estresse.
Sobre esta ferramenta
O Contador de Sílabas é uma ferramenta leve projetada para analisar a estrutura rítmica do texto contando as sílabas em palavras e medindo a complexidade do texto por meio de métricas de legibilidade. Compreender a distribuição de sílabas ajuda escritores, poetas e aprendizes de idiomas a reconhecer como o texto flui e se o conteúdo se adequa ao público-alvo pretendido. Diferentemente de sistemas baseados em dicionário que requerem consultas ao servidor, esta ferramenta funciona instantaneamente em seu navegador usando uma heurística de grupos de vogais que trata padrões comuns do inglês.
Para usar a ferramenta, simplesmente cole ou digite seu texto no campo de entrada e clique em Analisar. A ferramenta exibe a contagem total de sílabas, número de palavras, média de sílabas por palavra e uma classificação de legibilidade que varia de simples (menos de 1,5 sílabas por palavra) a complexa (acima de 2,5). Uma análise palavra por palavra mostra contagens de sílabas individuais, ajudando você a identificar quais palavras contribuem mais para a densidade do texto. Isso é particularmente útil para poetas refinando métrica, escritores ajustando conteúdo para adequação ao nível de série, ou letristas encaixando letras no ritmo de uma melodia.
O contador aplica correções para letras mudas (como o 'e' final em "cake") e trata padrões comuns do inglês, como terminações em -le. Para a maior precisão com nomes próprios incomuns ou terminologia especializada, faça referência cruzada dos resultados com um guia de pronúncia. A ferramenta é otimizada para inglês; outros idiomas têm regras de silabificação diferentes e podem produzir resultados aproximados no máximo.
Perguntas Frequentes
Implementação de Código
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.