05-03-2020, 08:59:49
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:
script cree-sons.sh
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
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 0Pour é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

