Saltar al contenido
🛠️ToolsShed

Syllable Counter

Cuenta sílabas en palabras y texto, analiza métricas de legibilidad y verifica patrones de estrés.

Acerca de esta herramienta

El Contador de Sílabas es una herramienta ligera diseñada para analizar la estructura rítmica del texto mediante el conteo de sílabas en palabras y la medición de la complejidad del texto a través de métricas de legibilidad. Entender la distribución de sílabas ayuda a escritores, poetas y estudiantes de idiomas a reconocer cómo fluye el texto y si el contenido se ajusta a su audiencia prevista. A diferencia de los sistemas basados en diccionarios que requieren búsquedas en servidor, esta herramienta funciona al instante en su navegador usando una heurística de grupos de vocales que maneja patrones comunes del inglés.

Para usar la herramienta, simplemente pegue o escriba su texto en el campo de entrada y haga clic en Analizar. La herramienta muestra el recuento total de sílabas, número de palabras, promedio de sílabas por palabra y una clasificación de legibilidad que va de simple (menos de 1,5 sílabas por palabra) a compleja (más de 2,5). Un análisis palabra por palabra muestra los recuentos de sílabas individuales, ayudándole a identificar qué palabras contribuyen más a la densidad del texto. Esto es particularmente útil para poetas que refinan la métrica, escritores que ajustan el contenido para la adecuación por nivel de grado, o letristas que adaptan letras al ritmo de una melodía.

El contador aplica correcciones para letras mudas (como la 'e' final en "cake") y maneja patrones comunes del inglés como terminaciones -le. Para mayor precisión con nombres propios inusuales o terminología especializada, contraste los resultados con una guía de pronunciación. La herramienta está optimizada para el inglés; otros idiomas tienen diferentes reglas de silabificación y pueden producir resultados aproximados en el mejor de los casos.

Preguntas Frecuentes

Implementación 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.