Je suis sur Fedora, et ces VoicePacks sont dans un endroit légèrement différent:
$ ls /usr/share/festival/lib/voices/*/ -1 | grep -vE "/usr|^$"
kal_diphone
ked_diphone
nitech_us_awb_arctic_hts
nitech_us_bdl_arctic_hts
nitech_us_clb_arctic_hts
nitech_us_jmk_arctic_hts
nitech_us_rms_arctic_hts
nitech_us_slt_arctic_hts
Vous pouvez simplement modifier ceci comme ceci:
$ ls /usr/share/festival/voices/*/ -1 | grep -vE "/usr|^$"
Utiliser find
L'utilisation ls
dans ce manoir est généralement mal vue parce que la sortie de ls
est difficile à analyser. Mieux vaut utiliser la find
commande, comme ceci:
$ find /usr/share/festival/lib/voices -maxdepth 2 -mindepth 2 \
-type d -exec basename {} \;
nitech_us_awb_arctic_hts
nitech_us_bdl_arctic_hts
nitech_us_slt_arctic_hts
nitech_us_jmk_arctic_hts
nitech_us_clb_arctic_hts
nitech_us_rms_arctic_hts
ked_diphone
kal_diphone
Détails de find & basename
Cette commande produit une liste de chemins complets vers des fichiers ayant exactement deux niveaux de profondeur par rapport à ce répertoire:
/usr/share/festival/lib/voices
Cette liste ressemble à ceci:
$ find /usr/share/festival/lib/voices -maxdepth 2 -mindepth 2
/usr/share/festival/lib/voices/us/nitech_us_awb_arctic_hts
/usr/share/festival/lib/voices/us/nitech_us_bdl_arctic_hts
/usr/share/festival/lib/voices/us/nitech_us_slt_arctic_hts
/usr/share/festival/lib/voices/us/nitech_us_jmk_arctic_hts
/usr/share/festival/lib/voices/us/nitech_us_clb_arctic_hts
/usr/share/festival/lib/voices/us/nitech_us_rms_arctic_hts
/usr/share/festival/lib/voices/english/ked_diphone
/usr/share/festival/lib/voices/english/kal_diphon
Mais nous voulons la dernière partie de ces répertoires, le nœud feuille. Nous pouvons donc utiliser basename
pour l’analyser:
$ basename /usr/share/festival/lib/voices/us/nitech_us_awb_arctic_hts
nitech_us_awb_arctic_hts
En réunissant tout cela, nous pouvons faire en sorte que la find
commande transmette chaque répertoire de niveau 2 à la basename
commande. La notation basename {}
est ce qui fait ces conversions de nom de base. Trouver des appels via son -exec
commutateur.