Ici on n'a que votre IP, votre pseudo et votre adresse mail que nous ne traitons pas.
Quand vous êtes enregistrés, une seule requête permet de vous afficher les messages que vous n'avez pas lus.
NOUVELLE ADRESSE PERMANENTE DU DÉPÔT: https://mirrors.o2switch.fr/primtux/repo/debs
ATTENTION, MERCI DE NE PAS METTRE À JOUR PRIMTUX7 UBUNTU 20.04 VERS LA 22.04, LES HANDYMENUS NE SONT PAS ENCORE COMPATIBLES!
Merci de cliquer ici si vous souhaitez vous inscrire sur le forum.

Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Clicmenu: j'écoute puis j'écris
#1
J'ai entrepris l'adaptation de "J'écoute puis j'écris" du clicmenu.
L'application originale propose les exercices suivants:
  • Calcul mental
  • Homophones
  • Touches du clavier
  • Les accents
  • Mots invariables
  • Nombres en lettres
  • Tables d'addition
  • Tables de multiplication


Plusieurs de ces exercices ne m'apparaissent pas pertinents si l'on s'en tient à la particularité de l'application, à savoir faire principalement appel au sens auditif.

Par exemple, pour les homophones, l'application propose oralement un son, et demande de trouver quel homophone doit s'écrire dans la phrase qui est affichée.
Cela ne présente pas davantage d'intérêt que de le proposer dans un exercice de phrases à trou. Il serait plus judicieux de faire une application dédiée avec éventuellement la possibilité d'entendre le son de l'homophone à écrire.

Autre exemple, pour écrire les nombres en lettres. Outre l'écoute du nombre, l'écriture en chiffres de celui-ci est proposée. Cela ne présente pas plus d'intérêt que l'application "Ecrire en chiffres ou en lettres" déjà existante. Une dictée de nombres, à écrire en chiffres, serait à mon avis préférable.

Pour les accents ou les touches du clavier, disposer du son ne me semble pas non plus présenter d'intérêt.

Je pense donc reprendre l'application en ne proposant que des exercices pour lesquels l'aspect auditif est primordial et est complémentaires des applications existantes comme "Je lis puis j'écris" ou "Ecrire en chiffres ou en lettres", ou autres à créer, dans lesquelles on fait avant tout appel au sens visuel.

Je pense donc proposer des dictées
  • de mots (par exemple les échelons de l'échelle Dubois-Buyse actualisée),
  • de petites phrase modèles
  • de nombres à écrire en lettres
  • de mots invariables


Si vous avez d'autres idées, faites m'en part dès maintenant.
Je suis également preneur de petites phrases modèles.
Répondre
#2
J"ai mis en ligne l'application adaptée encore en cours de développement : https://primtux.fr/applications/ecoute-ecris/

Tout n'est pas fonctionnel:
- on ne peut disposer que de l'échelle Dubois-Buyse actualisée
- on ne peut avoir de phrases exemples orales et écrites que jusqu'à l'échelon 13

Il y a un énorme travail d'élaboration des phrases exemples à poursuivre (des milliers !), aussi j'aimerais avoir des premiers retours avant de continuer après être assuré que cela convient.

J'utilise des sons enregistrés à partir d'une synthèse vocale sous Linux. Je précise que la solution adoptée est loin d'être parfaite, mais c'est la moins mauvaise que j'ai trouvée après avoir tenté à peu près toutes les solutions libres possibles en moteur de synthèse et en voix disponibles. Il me faut également la possibilité d'utiliser le moteur en ligne de commande de façon à automatiser les enregistrements.

J'ai retenu espeak avec une voix mbrola. D'autres solutions proposent des voix plus réalistes, mais posent le problème plus grave de prononciation incorrecte des mots (ex: "un sac" est prononcé "un sa" avec svoxpico).

J'attends donc vos retours.
Répondre
#3
Alors, retour rapide :
certaines voix sont incompréhensibles.

Vu que tu sauvegardes de toute façon le son (pas de lecture via svoxpico en live), pourquoi ne pas passer par des lecture un peu plus concluant tel que jaws ou google translate ?
sur svoxpico, on a la main dessus pour améliorer la prononciation de mots inconnus. (évol que j'avais commencé il y a bien 1 an et qui a été un peu oublié)
Si tu as une liste de mots qui sont mal lus, je suis preneur !


Toujours quelques réticenses sur les couleurs : pas de rouge pour une réponse positive.
Même constat pour la zone de résultat.
Répondre
#4
mothsart a écrit :Vu que tu sauvegardes de toute façon le son (pas de lecture via svoxpico en live), pourquoi ne pas passer par des lecture un peu plus concluant tel que jaws ou google translate ?
Parce que, comme je l'écrivais, il est impossible de faire des enregistrements individuels de milliers de mots et de phrases. Il me faut absolument une solution en ligne de commande qui me permette de réaliser un script pour automatiser l'opération.
Répondre
#5
mothsart a écrit :certaines voix sont incompréhensibles.
D'où la possibilité d'écouter d'une phrase exemple utilisant le mot pour lever toute ambiguïté

Citation :sur svoxpico, on a la main dessus pour améliorer la prononciation de mots inconnus.
Là ça m"intéresse, car c'est une voix de qualité. Il resterait à régler la prononciation de certains mots monosyllabiques avec une consonne finale prononcée, tels que "un sac'. Tu peux m'en dire plus sur la façon de paramétrer ?
Répondre
#6
jaws je sais pas mais google translate, ça doit s'automatiser assez facilement.
Ps : j'ai ajouté "sac" à gspeech... et je vais voir pour passer sur l'ensemble de tes textes pour identifier si il y a d'autres anomalies.

T'as quoi un dictionnaire de mots/phrases d'un côté, tu lances le script et ça te créer les fichiers mp3 derrière ?
Répondre
#7
Phillipe Dpt 35 a écrit :Tu peux m'en dire plus sur la façon de paramétrer ?

en fait, c'est dans gSpeech :pour l'instant, il va chercher un dictionnaire dans /home/<user>/.config/gspeech/fr-FR.dic ou t'as une vieille triche.
par exemple hacker=haqueur

du coup, picovox va lire "haqueur" et ça sera prononcé correctement.

Si tu me laisses l'espace du week-end (je suis down en fin de journée), je peux te faire un script qui se base dessus.

Dans speechtux (une v2 de gspeech que j'ai entamé), j'ai pensé les choses un peu mieux : on écrit en phonétique et un algo transforme pour picovox.
Répondre
#8
J'ai réalisé un script qui me permet d'obtenir automatiquement :
- l'enregistrement des mots au format mp3
- l'enregistrement des phrases au format mp3
- la liste des fichiers sons
pour la totalité de mon tableau de données qui se présente sous la forme suivante (j'ai mis les 2 premiers échelons sur 20 uniquement, sachant que les échelons plus élevés peuvent contenir chacun des centaines de mots, et donc de phrases) :
Code :
[
   {
    mots: ["maman","papa","c'est","son","le prénom"],
    sons: [],
    contextes: ["Maman donne le biberon à son bébé.","Papa aide maman à la cuisine.","C'est mon livre","Il aime son chat.","Le prénom de mon frère est Marc."],
  },
  {
    mots: ["avec","la maison","un bébé","le père","la mère","et","à","au","ou"],
    sons: [],
    contextes: ["Tu veux bien jouer avec moi ?","Je serai à la maison toute la journée.","Ces jeunes parents attendent un bébé.","Le père de mon ami est garagiste.","La mère de cet enfant est très jeune.","toi et moi","C'est à moi !","Il est au lit","C'est à toi ou à moi ?"],
  },
.....
]
La variable tableau "sons" contient la liste des fichiers sons correspondant à chaque mot que je récupère grâce à mon script. Exemple:
Code :
sons: ["1-1001.mp3","1-1002.mp3","1-1003.mp3","1-1004.mp3","1-1005.mp3"],

Ce qu'il me faut c'est une ligne de commande qui me permet de lire chaque élément pour en faire un enregistrement.
Exemple de ce que j'utilise avec espeak :
Code :
espeak-ng -s 110 -p 60 -v mb-fr1 "$texte" --stdout >"fichier.wav"
ou avec svoxpico
Code :
pico2wave -l fr-FR -w fichier.wav "$texte"
Si on peut utiliser pico2wave avec /home/<user>/.config/gspeech/fr-FR.dic, ça serait parfait. Il suffirait d'y placer les mots posant problème avec la bonne prononciation.
Répondre
#9
Voilà le script complet et son mode d'emploi si tu veux faire des tests :

Script permettant de traiter le tableau complet.

En sortie on aura les listes de sons dans des tableaux au format javascript au sein du fichier tab-sons.txt
En paramètre du script on donne le nom du fichier contenant le tableau de données.
Il faut avoir créé un sous-répertoire "audio" dans le répertoire du fichier script. C'est là que seront placés les fichiers son.
exemple:
./cree-sons.sh tab-js.txt
tab-js.txt doit contenir un tableau du type:
Code :
[
   {
    mots: [],
    sons: [],
    contextes: [],
  },
  {
    mots: [],
    sons: [],
    contextes: [],
  },
]

script cree-sons.sh
Code :
# !/bin/bash
tabsons="tab-sons.txt"
>"$tabsons"
>listemp3.txt
liste_tab=$1
liste_sons="liste-mots.txt"
>"$liste_sons"
liste_contextes="liste-contextes.txt"
>"$liste_contextes"
prefixe="1-"
suffixe="ex"
ct_series=1

sons_mots () {
    >listemp3.txt
    let "serie=$ct_series * 1000"
    let "numero=$serie + 1"
    sed -i 's/","/\n/g' "$liste_sons"
    sed -i -e 's/^\["//' -e 's/"\]$//' -e '/^$/d' "$liste_sons"
    while read texte; do
      espeak-ng -s 120 -p 60 -g 3 -v mb-fr1 "$texte" --stdout >"audio/$prefixe$numero.wav"
      lame -h "audio/$prefixe$numero.wav" "audio/$prefixe$numero.mp3"
      rm "audio/$prefixe$numero.wav"
      echo "$prefixe$numero.mp3" >>listemp3.txt
      let "numero++"
    done <"$liste_sons"
    sed -i -z 's/\n/","/g' listemp3.txt
    sed -i -e 's/^/["/' -e 's/","$/"]/' listemp3.txt
}

sons_contextes () {
    let "serie=$ct_series * 1000"
    let "numero=$serie + 1"
    sed -i 's/","/\n/g' "$liste_contextes"
    sed -i -e 's/^\["//' -e 's/"\]$//' -e '/^$/d' "$liste_contextes"
    while read texte; do
      espeak-ng -s 110 -p 60 -v mb-fr1 "$texte" --stdout >"audio/$prefixe$numero$suffixe.wav"
      lame -h "audio/$prefixe$numero$suffixe.wav" "audio/$prefixe$numero$suffixe.mp3"
      rm "audio/$prefixe$numero$suffixe.wav"
      let "numero++"
    done <"$liste_contextes"
}

while read line; do
  if [[ "$line" =~ "mots:" ]]
     then echo "$line" | sed -e 's/mots: //' -e 's/,$//' >"$liste_sons"
     sons_mots
     cat listemp3.txt >>"$tabsons"
     echo "
" >>"$tabsons"
  fi
  if [[ "$line" =~ "contextes:" ]]
     then echo "$line" | sed -e 's/contextes: //' -e 's/,$//' >"$liste_contextes"
     sons_contextes
     let "ct_series++"
  fi
done <"$liste_tab"

exit 0

Pour éviter tout polémique au sujet du format mp3 qui n'est pas libre, je précise que j'ai testé au format ogg, mais que cela aboutit à des tailles de fichiers 1,8 fois supérieures.

Si tu veux récupérer les tableau des données, il est là : https://primtux.fr/applications/ecoute-ecris/donnees.js
Répondre
#10
Ok, donc si je comprend bien (ton script est public ?) :
si je crée un script "gspeech-cli" qui fait la même chose que picovox mais qui passe par la conversion via le dictionnaire, ça te suffirait.
Dans ces cas là, je peux te faire ça ce soir, ça prendra moins d'une heure.
Répondre
#11
mothsart a écrit :si je crée un script "gspeech-cli" qui fait la même chose que picovox mais qui passe par la conversion via le dictionnaire, ça te suffirait.
Si ça peut s'utiliser en ligne de commande dans un script, et passe par un dictionnaire, c'est parfait ! Il me suffit de paramétrer le dictionnaire.
Répondre
#12
Voilà PhilippeDpt35, je t'ai fait un script rapide pour gSpeech.

Le process :

Code :
git clone git@github.com:mothsART/gSpeech.git
cd gSpeech

puis

Code :
./gspeech-cli "sac" fichier.wav

Comme tu le vois, premier argument le texte en question et en second le chemin du fichier.

Le dictionnaire a éditer est le fichier fr-Fr.dic : y'a normalement suffisamment d'exemple pour que tu t'en sortes.
Répondre
#13
Merci, je regarde ça dès que possible.
Y a-t-il des dépendances particulières à installer, je travaille sur une Debian classique.
Répondre
#14
dépendances : je dirais que non, python3, picovox et sox (pour les longues phrases, non géré par picovox, y'a une grosse triche qui consiste à découper le texte en fragment et faire x format son puis les joindre dans un fichier définitif à la fin)

Tu parles plus haut du format ogg.
En fait, il y a confusion car mp3 est un format d'encodage alors que ogg est un conteneur qui supporte plusieurs formats d'encodage.
Il suffit que celui par défaut soit un format sans perte pour qu'il soit forcément plus gros que mp3.

En format avec perte, ce qui se fait le mieux actuellement c'est le format opus : https://fr.wikipedia.org/wiki/Opus_Inter...udio_Codec
C'est libre, normalisé par l'IETF et supporté par tous les navigateurs récents donc tous les feux sont au vert !
Répondre
#15
Je viens de voir que le mp3 est libre de droits depuis 2017.
Citation :alors que ogg est un conteneur qui supporte plusieurs formats d'encodage.
Là tu pinailles, c'est parce que je n'ai pas précisé ogg Vorbis !
Répondre
#16
PhilippeDpt35 a écrit :Là tu pinailles, c'est parce que je n'ai pas précisé ogg Vorbis !

Désolé si je me suis mal exprimé, mon but n'était pas de pinailler pour pinailler.
De mes souvenir, à taux de compression égal, j'avais toujours des fichiers plus petit en Vorbis d'où mon interrogation.

Après, c'est un non sujet car l'avenir c'est Opus mais après, y'a aucune urgence : mp3 c'est déjà pas mal.
Répondre
#17
mothsart a écrit :De mes souvenir, à taux de compression égal, j'avais toujours des fichiers plus petit en Vorbis d'où mon interrogation.
Tout à fait, avec en plus moins de pertes.
Mais je pense que là on est sur un cas particulier, de très petits fichiers. Il est possible que l'algorithme de compression, plus efficient sur des fichiers de taille normale, conduise à de plus grandes tailles dans cette situation très inhabituelle.
Répondre
#18
Alors, je viens de faire un test rapide sur un son mp3 de ton app :

https://cloud.indie.host/s/XAL49tnq6eBgZdG

que j'ai converti au format "opus" (1 bon tiers moins volumineux) :

https://cloud.indie.host/s/FAi6xe4qzdEH7B2

Même taux d’échantillonnage : 16KHz.

La commande en question :

Code :
ffmpeg -i son.mp3 -c:a libopus -b:a 16K son.opus

Tu remarqueras que le fichier final, même si il est encodé en opus et avec l'extension .opus est conteneurisé dans de l'ogg.
Répondre
#19
Application mise à jour avec la voix Svoxpico.

Impossible de vérifier un à un les milliers d'enregistrements. Aussi n'hésitez pas à me signaler si est mot mal prononcé, je corrigerai.

Je vais faire des tests avec la compression Opus.
Répondre
#20
@mothsart
Il y a un problème avec le son k en fin de mot.
Exemple: un parc, une marque
Le son k est inaudible. As-tu une solution pour corriger ça ?
Répondre
#21
Pour parc, c'est lu "par' mais marque, le son k est audible de mon côté...

Le mieux est d'ajouter une entrée dans le dictionnaire :

parc=parque

Je pourrais mettre en place des remplacements auto sur des fins de mot mais j'ai peur d'effet de bord.
Ex : marc de café se lirais "marque de café"
Répondre
#22
Le k de marque n'est pas audible chez moi.
Pour le paramétrage de parc, c'est ce que j'ai bien sûr tenté (parc=parque) mais on retrouve le même problème que "marque".

Curieux tout de même que ce soit audible chez toi et pas chez moi ! Même au casque, on entend "marr" (deux r parce que le r est très accentué) mais pas "marque". Je travaille dans une VM, mais je ne vois pas de raisons que cela ait une influence.
Répondre
#23
Voici ce que je produit https://cloud.indie.host/s/7CY4MaxjgoDHYKw

avec

Code :
./gspeech-cli "un parc. une marque. un sac. une flaque. le marc de café." essai.wav && ffmpeg -i essai.wav -c:a libopus -b:a 16K essai.opus

J'ai juste rajouté "parc=parque" dans mon dictionnaire.
Répondre
#24
OK ! Là, j'entends toujours très clairement "parr", "marr", ... au lieu de "parc", "marque"...

Donc, si toi tu entends bien "parc", "marque", 2 solutions :
- c'est un problème avec ma carte son ==> testé sur un autre PC, j'ai le même problème, donc c'est pas la cause
- c'est un problème d'audition de ma part ==> je vais faire écouter à quelqu'un d'autre et je te redis
Répondre
#25
Est-ce que le dictionnaire est sensible à la casse ?
Notamment pour :
- du marc de café ==> marc=mar
- mon prénom est Marc ==> Marc=marque
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)