Séparer et compter les mots en syllabe

Bonjour cher forum

J’aimerais élaborer un fichier qui sépare les mots et compte de le nombre de syllabe par ligne, comme pour une chanson ou un poème.

Le résultat attendu serait, par exemple :

Texte

Séparation des syllabes

Nombre de syllabe

Jamais aussi loin

Ja/mais /aus/si /loin

5

Le dernier grand rêve

Le /der/nier /grand /rêve

5

N’était qu’un mensonge

N’é/tait /qu’un /men/songe

5

Je n’ai trouvé aucun template du genre sauf des ressources en ligne, mais ils ne répondent pas vraiment à mon besoin.

Auriez vous une piste pour des formules ou un code VBA?

Merci d’avance.

Bonsoir VDMICHEL,

Voir le lien Ici

Il existe un logiciel (accès libre) en téléchargement pour ce besoin.

Bonsoir X Cellus,

Merci pour le lien. Je vais regarder ça attentivement.

Lyric NotePad est très intéressant comme application, mais le hic, c'est qu'il plante constamment.

J'ai trouvé quelques parcelles de code qui devront être adaptés.

J'ai confiance de trouver ça en VBA.

Compter le nombre de Syllabes

VBA count Syllables

Scribblab

A+

Bonjour scraper, merci pour les lien, c’est intéressant.

Mais j’ai besoin aussi que la solution compte le nombre de syllabes dans une grille: B1 texte, C1 extraction des syllabes, D1 nombre de syllabes.

Cordialement

Bonjour voici un début de code, mais la règle pour les syllabes ne s'exécute pas comme tel, ça sépare plutôt les mots d'une phrase.

Sub SepareSyllabes()
    Dim cellule_texte As Range
    Dim ligne As Long
    Dim nombre_syllabes As Integer
    Dim syllabes() As String
    Dim i As Integer

    'Boucle à travers toutes les cellules de la colonne B
    For ligne = 1 To Cells(Rows.Count, "B").End(xlUp).Row
        Set cellule_texte = Cells(ligne, 2)
        nombre_syllabes = 0

        'On découpe les mots de la phrase et on les comptera séparément
        syllabes = Split(cellule_texte.Value, " ")

        'On boucle à travers les mots pour compter les syllabes
        For i = 0 To UBound(syllabes)
            nombre_syllabes = nombre_syllabes + Syllables(syllabes(i))
        Next i

        'On affiche le nombre de syllabes dans la cellule voisine
        cellule_texte.Offset(0, 1).Value = nombre_syllabes

        'On affiche les mots découpés en syllabes dans la cellule voisine
        cellule_texte.Offset(0, 2).Value = Join(syllabes, " - ")
    Next ligne
End Sub

Function Syllables(mot As String) As Integer
    Dim nombre_syllabes As Integer
    'Ajouter des règles de comptage de syllabes pour le mot
    nombre_syllabes = 1
    Syllables = nombre_syllabes
End Function
22countsyllales.xlsm (17.33 Ko)

allô, allô, J'ai trouvé ce petit bout de code (auteur patrick33) qui compte vraiment les syllabes comme pour un poème ou un chanson, mais je n'arrive pas à l'intégrer dans ce code du poste précédent. Je sais qu'il faut modifier le nom de certaines variables, mais je me bute à des incompatibilité d'objet. Merci pour votre aide.

Sub syllabe()
Dim mot As String
Dim Texte_eclate() As Byte

texte = Range("B2").Value
   messyllabes = "aeiouéèàïù"
   Texte_eclate = StrConv(texte, vbFromUnicode)
   deja = 0: nbfictif_voyelles = 0

   For i = 0 To UBound(Texte_eclate)
     If InStr(UCase(messyllabes), UCase(Chr(Texte_eclate(i)))) > 0 Then
       If deja = 0 Or i - deja > 1 Then nbfictif_voyelles = nbfictif_voyelles + 1
       deja = i
     End If
   Next
   MsgBox "Le nombre de syllabe de ce  texte est de  " & nbfictif_voyelles, vbInformation

End Sub

Bonsoir VDMICHEL,

Je doute que la dernière macro postée (fondée uniquement sur des voyelles) puisse te servir.

Déjà, par intuition, je l'ai essayé sur le troisième texte indiqué dans ton premier message. N’était qu’un mensonge

Et là, il indique 7 syllabes au lieu de 5. Ce qui est mensonger.

bonsoir X Cellus, c’est exactement pourquoi j’écris sur ce forum, pour trouver de l’aide afin d’éliminer les erreurs et avoir une solution effective!

Merci pour votre intérêt!

Bonjour VDMICHEL,

As tu au moins regardé le lien proposé jeudi?

Donc téléchargé Dys-Vocal. C'est un outil très complet, que j'ai téléchargé par curiosité. Après plusieurs utilisations il faut une licence.

Voir image ci-dessous les tests réalisés.

image

Et particulièrement son mode Etiquette ou il affiche au dessus du mot cliqué le découpage syllabique par le biais du signe +

Il suffit de compter le nombre de + et d'ajouter 1 pour avoir le nombre de syllabes. Ou de splitter par + le texte en étiquette.

Je pense qu'il doit utiliser un dictionnaire syllabique...

Bonjour X Cellus, oui, j’ai téléchargé et testé. C’est intéressant, mais ne répond pas à mon besoin. J’ai absolument besoin d’un résultat comme celui-ci:

Texte

Séparation des syllabes

Nombre de syllabe

Jamais aussi loin

Ja/mais /aus/si /loin

5

Le dernier grand rêve

Le /der/nier /grand /rêve

5

N’était qu’un mensonge

N’é/tait /qu’un /men/songe

5

A nouveau,

Donc ce n'est pas une séparation syllabique, et un comptage des syllabes. Car si le premier texte Jamais aussi loin a en effet 5 syllabes.

Les deux autres textes ont 6 syllabes, rêve à 2 syllabes et idem pour songe.

Même un dictionnaire syllabique ne pourra être utilisé pour cette demande erronée.

Bonjour,

un essai qui répond à tes exemples.

J'ai mis le e muet en option mais activé par défaut.
M'est avis qu'il doit y avoir des cas particuliers...
En cas d'anomalie regarde en premier si la liste des voyelles accentuées est suffisamment complète.
eric

PS: ah, je viens de voir que tu voulais aussi la découpe, je ne fais que les compter

Devant la difficulté je me suis dis "ah ben voila un boulot pour chatGPT"

image

bien mais peut mieux faire.
Ca va, nos emplois ne sont pas encore trop menacés par l'IA
eric

Mouais, le français ce n'est pas pour lui :

image

Rien à voir mais je ne peux m'empêcher de la mettre :

image

Un peu plus lourd qu'un oeuf de vache, normal quoi

A nouveau,

@Eriiic,

Rien à voir mais je ne peux m'empêcher de la mettre

Le poids moyen d'un œuf de bœuf est beaucoup plus important. Puisque c'est généralement un œuf gros de poule placé au dessus d'un morceau de bœuf.

Ci-dessous l'image, mais parfois la viande (haché ou non) peut enrouler l'œuf. Attention, c'est un régime très protéiné...

oeufboeuf

Donc, ChatGPT ne compte pas la viande dans la première phrase de sa réponse. Mais évidemment la deuxième phrase de sa réponse est plus problématique.

Ce qui fait que ce chat, s'il tombe, ne doit pas toujours se reprendre sur ses pattes.

Bonsoir,

@eriiic,

Merci beaucoup pour l'aide. J'essaie d'exécuter la macro, mais je n'obtiens pas de résultat!

Effectivement, la découpe est importante pour mon projet. J'ai réussi en parti, mais le code ne découpe pas les mots en syllabe, mais découpe les mots d'une phrase.

Merci encore.

Bonjour,

Hummm, ça fait envie

C'est une fonction personnalisée à mettre dans un module standard (pas celui d'une feuille)
Ensuite utiliser la fonction sur la feuille.
Ca fonctionne sur mon fichier non ?

Pour ce qui est du découpage en syllabes sur excel c'est sans moi.
Je ne vois pas de solution simple avec des dizaines de cas particuliers. C'est sans fin, il faudrait trop de temps.
eric

bonjour,

tu parles de découpe en syllabes (on tient compte des règles d'écriture et de césure), mais je pense que tu veux dire découpe en pieds (on tient compte de la prononciation).

Bonjour le Fil,

En effet la règle est plus appliquée à l'écriture poétique.

Mais cette règle n'est pas constante et varie selon l'époque >Suivre

Actuellement Scribblab est le plus adapté à ton besoin. Même s'il précise qu'il ne peut gérer certaines exceptions.

image

Excel est avant tout un tableur...

La Fontaine (Jean de) poétique est moins son pied.

image

Et je rejoindrais Eriiic sur ce point.

Je ne vois pas de solution simple avec des dizaines de cas particuliers. C'est sans fin, il faudrait trop de temps.

Rechercher des sujets similaires à "separer compter mots syllabe"