Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
piper-tts [Le 22/04/2026, 22:46] L'Africainpiper-tts [Le 05/05/2026, 13:18] (Version actuelle) L'Africain
Ligne 1: Ligne 1:
-{{tag>accessibilité audio multimédia}}+{{tag>accessibilité audio multimédia tts synthèse_vocale}} 
 ====== Piper TTS (voix neuronales de haute qualité) ====== ====== Piper TTS (voix neuronales de haute qualité) ======
  
-**[[Piper]]** est un moteur de synthèse vocal moderne utilisant des réseaux de neurones pour produire des voix très naturelles, proches de lhumain. Il est **totalement hors-ligne** et rapide.+**Piper** est un moteur de synthèse vocale moderne utilisant des réseaux de neurones pour produire des voix très naturelles, proches de l'humain. Il est **totalement hors-ligne** et rapide.
  
-=====Installation===== +  * [[https://github.com/rhasspy/piper|Site officiel Piper (GitHub)]] 
-====Automatique==== +  * [[https://huggingface.co/rhasspy/piper-voices|Toutes les voix disponibles (HuggingFace)]]
-Vous pouvez installer le [[snap]] **Pied**, qui devrait installer automatiquement Piper pour vous avec les voix de votre choix et le paramétrer pour être votre moteur par défaut. +
-====Semi-automatique==== +
-Ce script va installer Piper, et le paramétrer pour qu’il soit votre lecteur par défaut: +
-<code bash> +
-#!/bin/sh +
-set -e+
  
-# --- Configuration des voix cibles --- +===== Installation =====
-VOICE_FEMME="fr_FR-siwis-low" +
-VOICE_HOMME="fr_FR-upmc-medium" +
-DEFAULT_VOICE=$VOICE_FEMME+
  
-INSTALL_DIR=${INSTALL_DIR:-~/.local/share/speech-dispatcher-piper} +==== Script automatique (recommandé====
-CONFIG_DIR=${CONFIG_DIR:-~/.config/speech-dispatcher} +
-MODULES_DIR="$CONFIG_DIR/modules" +
-SPEECHD_CONF="$CONFIG_DIR/speechd.conf" +
-CONFIG_PATH="$MODULES_DIR/piper-generic.conf" +
-PIPER_BIN_GZ_URL="https://github.com/rhasspy/piper/releases/latest/download/piper_linux_$(uname -m).tar.gz"+
  
-echo "\033[1;36m0Nettoyage des anciens processus...\033[0m" +Ce script installe Piper, télécharge les voix françaises et configure Speech Dispatcher pour qu'il utilise Piper par défautIl fonctionne sur **Ubuntu 24.04** avec **Speech Dispatcher 0.12**.
-killall speech-dispatcher piper sox paplay 2>/dev/null || true+
  
-echo "\033[1;36m1. Installation des dépendances...\033[0m" +<code bash> 
-sudo apt -qq update && sudo apt -qq install jq sox curl speech-dispatcher python3-speechd pulseaudio-utils -y+#!/bin/bash 
 +Installation de Piper TTS avec Speech-Dispatcher sur Ubuntu 24.04
  
-mkdir -p "$INSTALL_DIR/voices" +set -e
-mkdir -p "$MODULES_DIR"+
  
-echo "\033[1;36m2Création du script de lecture (Wrapper)...\033[0m+# --- Configuration --- 
-# Ce script permet de stopper proprement le son si on change de phrase +PIPER_VERSION="2023.11.14-2
-cat << 'EOF'"$INSTALL_DIR/play_piper.sh" +INSTALL_DIR="$HOME/.local/share/speech-dispatcher-piper
-#!/bin/bash +VOICES_DIR="$INSTALL_DIR/voices
-DATA="$1+PIPER_BIN="$INSTALL_DIR/piper/piper
-VOICE="$2+VOICE_BASE_URL="https://huggingface.co/rhasspy/piper-voices/resolve/main/fr/fr_FR
-VOLUME="$3+DEFAULT_VOICE="fr_FR-siwis-medium"
-RATE="$4+
-PITCH="$5"+
  
-# On récupère automatiquement le dossier du script +echo "[1/6] Installation des dépendances..." 
-BASE_DIR="$(dirname "$0")" +sudo apt-get update -qq 
-TMP_WAV=$(mktemp /tmp/piper_XXXXXX.wav) +sudo apt-get install -y -qq alsa-utils pulseaudio-utils curl wget speech-dispatcher
-PAP_PID=""+
  
-# Si la lecture est annulée, on coupe paplay et on nettoie le fichier +echo "[2/6] Téléchargement de Piper..." 
-trap 'rm -f "$TMP_WAV"; [ -"$PAP_PID] && kill $PAP_PID 2>/dev/nullexitEXIT TERM INT HUP+mkdir -"$INSTALL_DIR" 
 +ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/'
 +PIPER_ARCHIVE="piper_linux_${ARCH}.tar.gz" 
 +PIPER_URL="https://github.com/rhasspy/piper/releases/download/${PIPER_VERSION}/${PIPER_ARCHIVE}"
  
-SAMPLE_RATE=$(jq -r .audio.sample_rate < "$BASE_DIR/voices/$VOICE.onnx.json")+if [ ! -f "$PIPER_BIN" ]; then 
 +    wget -q --show-progress "$PIPER_URL" -O "/tmp/$PIPER_ARCHIVE" 
 +    tar -xzf "/tmp/$PIPER_ARCHIVE" -C "$INSTALL_DIR" 
 +    rm "/tmp/$PIPER_ARCHIVE" 
 +fi
  
-# Génération de l'audio +echo "[3/6] Création du lien symbolique..." 
-printf "%s" "$DATA" | "$BASE_DIR/piper/piper" --model "$BASE_DIR/voices/$VOICE.onnx--output_raw 2>/dev/null \ +sudo ln -sf "$PIPER_BIN" /usr/local/bin/piper
-| sox -"$VOLUME-r "$SAMPLE_RATE" -c 1 -b 16 -e signed-integer -t raw - -t wav "$TMP_WAV" tempo "$RATE" pitch "$PITCH" norm 2>/dev/null+
  
-# Lecture +echo "[4/6] Téléchargement des voix françaises...
-paplay "$TMP_WAV& +mkdir -p "$VOICES_DIR"
-PAP_PID=$! +
-wait $PAP_PID +
-EOF +
-chmod +x "$INSTALL_DIR/play_piper.sh"+
  
-echo "\033[1;36m3. Configuration de Speech-Dispatcher...\033[0m+for VOICE in "fr_FR-siwis-medium siwis/medium"fr_FR-upmc-medium upmc/medium"; do 
-# Déclaration des voix (incluant le français de Belgique 'fr-BE') +    NAME=$(echo $VOICE | cut -d' -f1
-echo "DefaultVoice \"$DEFAULT_VOICE\"" > "$CONFIG_PATH" +    PATH_HF=$(echo $VOICE | cut -d' ' -f2) 
-echo "AddVoice \"fr\" \"FEMALE1\" \"$VOICE_FEMME\"" >> "$CONFIG_PATH+    if [ ! -f "$VOICES_DIR/${NAME}.onnx]; then 
-echo "AddVoice \"fr\" \"MALE1\" \"$VOICE_HOMME\"" >> "$CONFIG_PATH+        wget -q --show-progress \ 
-echo "AddVoice \"fr-FR\" \"FEMALE1\" \"$VOICE_FEMME\"" >> "$CONFIG_PATH"+            "${VOICE_BASE_URL}/${PATH_HF}/${NAME}.onnx-O "$VOICES_DIR/${NAME}.onnx
 +        wget -q --show-progress \ 
 +            "${VOICE_BASE_URL}/${PATH_HF}/${NAME}.onnx.json-O "$VOICES_DIR/${NAME}.onnx.json" 
 +    fi 
 +done
  
-# Déclaration des commandes +SAMPLE_RATE=$(grep -o '"sample_rate": *[0-9]*' "$VOICES_DIR/${DEFAULT_VOICE}.onnx.json| grep -o '[0-9]*')
-cat << EOF >> "$CONFIG_PATH"+
  
-GenericCmdDependency "sox" +echo "[5/6] Configuration de Speech-Dispatcher..."
-GenericCmdDependency "jq" +
-GenericCmdDependency "paplay"+
  
-GenericExecuteSynth "$INSTALL_DIR/play_piper.sh '\$DATA' '\$VOICE' '\$VOLUME' '\$RATE' '\$PITCH'"+sudo tee /etc/speech-dispatcher/modules/piper.conf > /dev/null << PIPER_CONF 
 +# Module Piper pour Speech-Dispatcher — généré automatiquement 
 +# Utilise paplay (PulseAudio) pour compatibilité avec Firefox et autres applications
  
-GenericRateAdd +GenericExecuteSynth "printf '%s' '\$DATA' | /usr/local/bin/piper --model ${VOICES_DIR}/\$VOICE.onnx --output-raw | paplay --raw --rate=${SAMPLE_RATE} --format=s16le --channels=1
-GenericPitchAdd 1 + 
-GenericVolumeAdd 1+# Les deux formes sont nécessaires : speech-dispatcher envoie parfois "fr", parfois "fr-fr" 
 +# selon l'application appelante (ex: spd-say envoie "fr", Firefox envoie "fr-fr"
 +AddVoice "fr"    "FEMALE1" "fr_FR-siwis-medium" 
 +AddVoice "fr-fr" "FEMALE1" "fr_FR-siwis-medium" 
 +AddVoice "fr"    "MALE1"   "fr_FR-upmc-medium" 
 +AddVoice "fr-fr" "MALE1"   "fr_FR-upmc-medium" 
 + 
 +GenericDefaultVoice "fr_FR-siwis-medium" 
 + 
 +GenericRateAdd 0 
 +GenericPitchAdd 0 
 +GenericVolumeAdd 0
 GenericRateMultiply 1 GenericRateMultiply 1
-GenericPitchMultiply 750+GenericPitchMultiply 1
 GenericVolumeMultiply 1 GenericVolumeMultiply 1
-EOF+PIPER_CONF
  
-Activation du module dans speechd.conf +Activer piper dans speechd.conf 
-if ! -"$SPEECHD_CONF]; then spd-conf -nfi +if ! grep -q '^AddModule "piper"' /etc/speech-dispatcher/speechd.conf; then 
-if ! grep -"piper-generic" "$SPEECHD_CONF"; then +    sudo sed -i 's|^#AddModule "espeak-ng".*|&\nAddModule "piper"                    "sd_generic"   "piper.conf"|'
-    echo "\nAddModule \"piper-generic\\"sd_generic\\"piper-generic.conf\"" >> "$SPEECHD_CONF"+        /etc/speech-dispatcher/speechd.conf
 fi fi
-sed -i 's/^DefaultModule.*/DefaultModule piper-generic/' "$SPEECHD_CONF"+sudo sed -i 's|^DefaultModule .*|DefaultModule piper|' /etc/speech-dispatcher/speechd.conf 
 +sudo sed -i 's|^#*DefaultLanguage.*|DefaultLanguage "fr"|' /etc/speech-dispatcher/speechd.conf 
 +sudo sed -i 's|^#* *DefaultVoiceType.*|DefaultVoiceType "FEMALE1"|' /etc/speech-dispatcher/speechd.conf
  
-echo "\033[1;36m4. Vérification/Téléchargement de Piper (binaires)...\033[0m" +# Supprimer la config utilisateur qui pourrait interférer 
-if [ -"$INSTALL_DIR/piper/piper" ]; then +if [ -"$HOME/.config/speech-dispatcher" ]; then 
-    echo > Piper est déjà présentTéléchargement ignoré." +    mv "$HOME/.config/speech-dispatcher" "$HOME/.config/speech-dispatcher.bak
-else +    echo "  → Config utilisateur sauvegardée dans ~/.config/speech-dispatcher.bak"
-    echo " > Piper introuvable. Téléchargement en cours..." +
-    PIPER_BIN_GZ=$(mktemp) +
-    curl -L -o "$PIPER_BIN_GZ" "$PIPER_BIN_GZ_URL" +
-    tar -xzf "$PIPER_BIN_GZ" -C "$INSTALL_DIR" +
-    rm "$PIPER_BIN_GZ+
-    echo " > Piper installé avec succès."+
 fi fi
  
-# Ré-écriture du script de téléchargement des voix +echo "[6/6] Test..." 
-cat <<'EOF'"$INSTALL_DIR/check_piper_voice.sh+pkill -f speech-dispatcher 2>/dev/null; sleep 1 
-#!/bin/sh +speech-dispatcher 
-VOICE=$+sleep 
-BASE_URL="https://huggingface.co/rhasspy/piper-voices/resolve/main" +spd-say "Bonjour, Piper est maintenant configuré comme moteur de synthèse vocale par défaut."
-cd "$(dirname "$0")"+
  
-if ! [ -f "voices/$VOICE.onnx]; then +echo "" 
-    echo " > Téléchargement de la voix $VOICE...+echo "Installation terminée !
-    LANG_F=$(echo "$VOICE| cut -d '-' -f 1) +echo "  Voix installées dans : $VOICES_DIR
-    LANG_S=$(echo "$LANG_F| cut -d '_' -f 1) +echo "  Voix par défaut      : $DEFAULT_VOICE
-    NAME=$(echo "$VOICE| cut -d '-' -f 2) +echo "  Binaire piper        : /usr/local/bin/piper
-    QUAL=$(echo "$VOICE" | cut -d '-' -f 3)+</code>
  
-    curl -L -o "voices/$VOICE.onnx" "$BASE_URL/$LANG_S/$LANG_F/$NAME/$QUAL/$VOICE.onnx?download=true" +Rendez le script exécutable et lancez-le :
-    curl -L -o "voices/$VOICE.onnx.json" "$BASE_URL/$LANG_S/$LANG_F/$NAME/$QUAL/$VOICE.onnx.json?download=true" +
-else +
-    echo " > La voix $VOICE est déjà présente. Téléchargement ignoré." +
-fi +
-EOF +
-chmod +x "$INSTALL_DIR/check_piper_voice.sh"+
  
-echo "\033[1;36m5Vérification/Téléchargement des voix sélectionnées...\033[0m" +<code bash> 
-"$INSTALL_DIR/check_piper_voice.sh" "$VOICE_FEMME" +chmod +x install-piper.sh 
-"$INSTALL_DIR/check_piper_voice.sh" "$VOICE_HOMME"+./install-piper.sh 
 +</code>
  
-echo "\033[1;36m6. Lancement de Speech-Dispatcher...\033[0m" +==== Installation manuelle ====
-speech-dispatcher -d +
-sleep 1+
  
-echo "\n\033[1;32mInstallation terminée avec succès !\033[0m" +=== 1. Télécharger le binaire Piper ===
-echo "Test audio en cours..." +
- +
-spd-say "Votre script de synthèse vocale est maintenant parfait." +
-</code> +
-====Manuellement==== +
-===Installation=== +
-1. Téléchargez l'exécutable depuis [[https://github.com/rhasspy/piper/releases|GitHub releases]] (fichier ''piper_amd64.tar.gz'' pour Linux 64-bit)+
  
 <code bash> <code bash>
-# Télécharger et extraire +# Détecter l'architecture 
-wget https://github.com/rhasspy/piper/releases/download/v1.2.0/piper_amd64.tar.gz +ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/'
-tar -xzf piper_amd64.tar.gz + 
-sudo mv piper /usr/local/bin/+# Télécharger et extraire dans le dossier utilisateur 
 +mkdir -p ~/.local/share/speech-dispatcher-piper 
 +wget https://github.com/rhasspy/piper/releases/download/2023.11.14-2/piper_linux_${ARCH}.tar.gz \ 
 +     -O /tmp/piper.tar.gz 
 +tar -xzf /tmp/piper.tar.gz -C ~/.local/share/speech-dispatcher-piper/ 
 + 
 +# Créer un lien symbolique accessible globalement 
 +sudo ln -sf ~/.local/share/speech-dispatcher-piper/piper/piper /usr/local/bin/piper
 </code> </code>
  
-2. Téléchargez une voix française (par exemple "fr_FR-siwis-medium")+=== 2. Télécharger les voix françaises ===
  
 <code bash> <code bash>
-# Créez un dossier pour les voix +VOICES_DIR=~/.local/share/speech-dispatcher-piper/voices 
-sudo mkdir -p /usr/share/piper-voices+mkdir -p "$VOICES_DIR" 
-cd /usr/share/piper-voices/+BASE=https://huggingface.co/rhasspy/piper-voices/resolve/main/fr/fr_FR
  
-Téléchargez la voix française +Voix féminine siwis (medium, recommandée) 
-sudo wget https://huggingface.co/rhasspy/piper-voices/resolve/main/fr/fr_FR/siwis/medium/fr_FR-siwis-medium.onnx +wget "${BASE}/siwis/medium/fr_FR-siwis-medium.onnx"      -O "$VOICES_DIR/fr_FR-siwis-medium.onnx" 
-sudo wget https://huggingface.co/rhasspy/piper-voices/resolve/main/fr/fr_FR/siwis/medium/fr_FR-siwis-medium.onnx.json+wget "${BASE}/siwis/medium/fr_FR-siwis-medium.onnx.json" -O "$VOICES_DIR/fr_FR-siwis-medium.onnx.json" 
 + 
 +# Voix masculine upmc (medium) 
 +wget "${BASE}/upmc/medium/fr_FR-upmc-medium.onnx"        -O "$VOICES_DIR/fr_FR-upmc-medium.onnx" 
 +wget "${BASE}/upmc/medium/fr_FR-upmc-medium.onnx.json"   -O "$VOICES_DIR/fr_FR-upmc-medium.onnx.json"
 </code> </code>
  
-**Test direct avec Piper :**+**Test direct de Piper :**
  
 <code bash> <code bash>
-echo "Bonjour, ceci est une voix neuronale de haute qualité" | \ +printf '%s' "Bonjour, ceci est une voix neuronale de haute qualité" | \ 
-  piper --model /usr/share/piper-voices/fr_FR-siwis-medium.onnx --output_file /tmp/speech.wav +  piper --model ~/.local/share/speech-dispatcher-piper/voices/fr_FR-siwis-medium.onnx 
-aplay /tmp/speech.wav+        --output-raw | paplay --raw --rate=22050 --format=s16le --channels=1
 </code> </code>
  
-===Configuration avec Speech Dispatcher===+=== 3. Configurer Speech Dispatcher ===
  
-[[:tutoriel:comment_modifier_un_fichier|Créez le fichier de configuration pour le module générique]] avec [[sudo|les droits d’administration]] ''/etc/speech-dispatcher/modules/piper-generic.conf'' avec le contenu :+Éditez ''/etc/speech-dispatcher/modules/piper.conf'' avec les droits d'administration :
  
-<file conf> +<file conf /etc/speech-dispatcher/modules/piper.conf> 
-# Piper TTS generic module configuration+Module Piper pour Speech-Dispatcher (sd_generic) 
 +# Utilise paplay (PulseAudio) — compatible Firefox et autres applications
  
-GenericExecuteSynth "piper --model /usr/share/piper-voices/fr_FR-siwis-medium.onnx --output_raw"+GenericExecuteSynth "printf '%s' '$DATA' | /usr/local/bin/piper --model /home/VOTRE_USER/.local/share/speech-dispatcher-piper/voices/$VOICE.onnx --output-raw | paplay --raw --rate=22050 --format=s16le --channels=1"
  
-AddVoice "fr_FR-siwis-medium" "French (Medium)"+# IMPORTANT : déclarer les voix avec "fr" ET "fr-fr" 
 +# speech-dispatcher envoie l'un ou l'autre selon l'application appelante 
 +AddVoice "fr"    "FEMALE1" "fr_FR-siwis-medium" 
 +AddVoice "fr-fr" "FEMALE1" "fr_FR-siwis-medium" 
 +AddVoice "fr"    "MALE1"   "fr_FR-upmc-medium" 
 +AddVoice "fr-fr" "MALE1"   "fr_FR-upmc-medium"
  
-DefaultLanguage "fr"+GenericDefaultVoice "fr_FR-siwis-medium"
  
-GenericAddLanguage "fr" "fr_FR-siwis-medium"+GenericRateAdd 0 
 +GenericPitchAdd 0 
 +GenericVolumeAdd 0 
 +GenericRateMultiply 1 
 +GenericPitchMultiply 1 
 +GenericVolumeMultiply 1
 </file> </file>
  
-Ajoutez le module à Speech Dispatcher en [[:tutoriel:comment_modifier_un_fichier|éditant le fichier]] avec [[sudo|les droits d’administration]] ''/etc/speech-dispatcher/speechd.conf''et ajoutez la ligne :+Puis dans ''/etc/speech-dispatcher/speechd.conf''ajoutez ou décommentez :
  
 <file> <file>
-AddModule "piper-generic" "sd_generic" "piper-generic.conf"+AddModule "piper"      "sd_generic"   "piper.conf
 +DefaultModule piper 
 +DefaultLanguage "fr" 
 +DefaultVoiceType "FEMALE1"
 </file> </file>
  
-Puis activez-le par défaut :+Redémarrez Speech Dispatcher :
  
 <code bash> <code bash>
-echo 'DefaultModule piper-generic' >> ~/.config/speech-dispatcher/speechd.conf+pkill -f speech-dispatcher; sleep 1; speech-dispatcher
 </code> </code>
  
-Redémarrez Speech Dispatcher :+Testez :
  
 <code bash> <code bash>
-sudo systemctl restart speech-dispatcher+spd-say "Bonjour, ceci est un test de synthèse vocale avec Piper"
 </code> </code>
  
-**Voix françaises disponibles pour Piper :**+===== Voix françaises disponibles ===== 
 + 
 +^ Identifiant ^ Genre ^ Qualité ^ Taille approximative ^ 
 +| ''fr_FR-siwis-medium'' | Féminine | Bonne (recommandée) | ~50 Mo | 
 +| ''fr_FR-siwis-low'' | Féminine | Rapide (embarqué) | ~15 Mo | 
 +| ''fr_FR-upmc-medium'' | Masculine | Bonne | ~50 Mo | 
 +| ''fr_FR-gilles-low'' | Masculin | Rapide (embarqué) | ~15 Mo | 
 + 
 +Toutes les voix disponibles : [[https://huggingface.co/rhasspy/piper-voices|HuggingFace rhasspy/piper-voices]] 
 + 
 +===== Points importants ===== 
 + 
 +<note important>**Bug fréquent : voix "fr" vs "fr-fr"**\\ 
 +Speech Dispatcher envoie parfois le code langue ''fr'' et parfois ''fr-fr'' selon l'application appelante (''spd-say'' envoie ''fr'', Firefox envoie ''fr-fr''). Il est indispensable de déclarer les voix avec les **deux** formes dans ''piper.conf'', sinon ''$VOICE'' reste à ''no_voice'' et piper ne produit aucun son.</note> 
 + 
 +<note important>**Conflit audio avec Firefox (et autres navigateurs)**\\ 
 +''aplay'' accède directement à ALSA et échoue si Firefox tient déjà le périphérique audio. Utilisez toujours **''paplay''** (PulseAudio) qui permet le mixage entre plusieurs applications simultanées.</note> 
 + 
 +<note tip>**Config utilisateur vs config système**\\ 
 +Si le dossier ''~/.config/speech-dispatcher/'' existe, il est prioritaire sur ''/etc/speech-dispatcher/''. Une ancienne configuration utilisateur peut interférer et écraser les bons paramètres. En cas de problème, supprimez ou renommez ce dossier : 
 +<code bash>mv ~/.config/speech-dispatcher ~/.config/speech-dispatcher.bak</code> 
 +</note> 
 + 
 +===== Intégration avec Firefox ===== 
 + 
 +Firefox utilise Speech Dispatcher pour son mode lecture. Une fois Piper configuré : 
 + 
 +  - Vérifiez dans ''about:config'' que ''media.webspeech.synth.enabled'' est à ''true'' 
 +  - Ouvrez une page d'article et activez le **Mode Lecture** (icône dans la barre d'adresse) 
 +  - Cliquez sur l'icône **Lecture à voix haute** dans la barre latérale gauche 
 + 
 +Firefox devrait lire avec la voix Piper configurée. 
 + 
 +===== Dépannage ===== 
 + 
 +**Aucun son avec spd-say :** 
 +<code bash> 
 +# Lancer en mode debug pour voir les erreurs 
 +sudo rm -rf /tmp/speechd-debug 
 +pkill -f speech-dispatcher; sleep 1 
 +speech-dispatcher -s -l 5 -D & 
 +sleep 2 
 +spd-say "test" 
 +sleep 3 
 +pkill -f speech-dispatcher 
 +# Chercher la commande réellement exécutée 
 +grep "synth command\|no_voice" /tmp/speechd-debug/piper.log 
 +</code> 
 + 
 +Si vous voyez ''no_voice'' dans les logs, c'est que la voix n'est pas trouvée pour le code langue envoyé. Vérifiez que les deux formes ''fr'' et ''fr-fr'' sont bien déclarées dans ''piper.conf''
 + 
 +**Tester Piper directement :** 
 +<code bash> 
 +printf '%s' 'Bonjour' | /usr/local/bin/piper \ 
 +  --model ~/.local/share/speech-dispatcher-piper/voices/fr_FR-siwis-medium.onnx \ 
 +  --output-raw | paplay --raw --rate=22050 --format=s16le --channels=1 
 +</code> 
 + 
 +Si cette commande fonctionne mais pas ''spd-say'', le problème est dans la configuration Speech Dispatcher. 
 + 
 +===== Voir aussi =====
  
-^ Voix ^ Qualité ^ Taille ^ +  * [[:synthese_vocale|Synthèse vocale sous Linux]] — vue d'ensemble des solutions 
-| ''fr_FR-siwis-medium'' | Bonne | ~50 Mo +  * [[:reconnaissance_vocale|Reconnaissance vocale]] 
-''fr_FR-siwis-high'' | Excellente | ~150 Mo | +  * [[https://github.com/rhasspy/piper|Piper TTS sur GitHub]] 
-| ''fr_FR-gilles-low'' | Rapide (embarqué) | ~15 Mo |+  * [[https://huggingface.co/rhasspy/piper-voices|Bibliothèque de voix Piper]]
  
-**Liens utiles :** +----
-  * [[https://github.com/rhasspy/piper|Site officiel Piper]] +
-  * [[https://huggingface.co/rhasspy/piper-voices|Toutes les voix Piper]]+