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.
Primtux8 est arrivée! Rendez-vous ici
Vous pouvez désormais vous inscrire librement en cliquant sur "S'enregistrer".

Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Clicmenu: j'écoute puis j'écris
#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


Messages dans ce sujet

Atteindre :


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