Pyttsx3 et Xubuntu ...(texte to speech et linux)
Résolu
Bonjour,
Je me suis amusé à faire parler mon PC avec un programme écrit en python. Pas facile d'avoir une belle voix de femme caressante, française plutôt que cette horrible voix robotique.
J'ai donc suivi et recopié un tutoriel de YT chaine Tres Facile qui faisait en quelques lignes pour faire fonctionner le script. Cette chaîne montre le fonctionnement sous Windows je crois. Recopiant textuellement le code, je n'ai pas moyen d'avoir autre chose que ce robotico façon film SF des années 60.
Après avoir beaucoup cherché, je vois qu'il y a sous linux le driver "espeak". Il semble possible de changer la voix avec un
J'ai installé
et écrit le code python suivant :
...ok mais même en terminal il prononce avec une voix robotique.
Je galère, je ne trouve pas de réponses ou d'exemples. Pourriez-vous examiner et me donner une piste si possible ?
Merci
Je me suis amusé à faire parler mon PC avec un programme écrit en python. Pas facile d'avoir une belle voix de femme caressante, française plutôt que cette horrible voix robotique.
J'ai donc suivi et recopié un tutoriel de YT chaine Tres Facile qui faisait en quelques lignes pour faire fonctionner le script. Cette chaîne montre le fonctionnement sous Windows je crois. Recopiant textuellement le code, je n'ai pas moyen d'avoir autre chose que ce robotico façon film SF des années 60.
Après avoir beaucoup cherché, je vois qu'il y a sous linux le driver "espeak". Il semble possible de changer la voix avec un
setProperty(..)? Comment paramétrer en utilisant
espeak-ng(voir lien), qui semble être un nouvelle version d'
espeak.
J'ai installé
espeak-ngcomme suit :
sudo apt install espeak-ng
et écrit le code python suivant :
# -*- coding: utf-8 -*- #import espeak ng import pyttsx3 import os texte = "bonjour comment allez vous ?" tts = pyttsx3.init() tts.setProperty("voice",[26]) tts.say(texte) tts.runAndWait()
...ok mais même en terminal il prononce avec une voix robotique.
Je galère, je ne trouve pas de réponses ou d'exemples. Pourriez-vous examiner et me donner une piste si possible ?
Merci
A voir également:
- Turkish123 french
- Xubuntu - Télécharger - Systèmes d'exploitation
- Qwerty to azerty - Guide
- Transcription audio en texte word gratuit - Guide
- Excel cellule couleur si condition texte - Guide
- Linux reader - Télécharger - Stockage
3 réponses
Bonjour,
espeak
À ce stade ton code n'importe pas
Cette discussion montre comment changer la voix en ligne de commande.
D'après son code source, la classe Espeak expose une méthode
La nature des paramètres à passer à cette méthode n'est pas très claire, mais on doit pouvoir s'en sortir à partir d'exemples, voir ce lien.
J'aime bien cet exemple car il est assez court (à ceci prêt qu'il donne le nom du paquet pour python2 au lieu de python3) :
Pour voir la liste des langues supportées, il semble qu'il faille lancer la commande suivante dans un terminal
espeak-ng
Si tu veux utiliser
Il n'est pas clair que cette nouvelle déclinaison permet d'avoir plus de latitude en terme de voix.
Bonne chance
espeak
À ce stade ton code n'importe pas
espeakdonc le fait de l'avoir installé ne change rien. Je vois qu'il existe un paquet
python3-espeak, à mon avis c'est lui que tu devrais installer et essayer d'apprendre à utiliser. Ce lien montre quelques exemples minimaux.
sudo apt update
sudo apt install python3-espeak
Cette discussion montre comment changer la voix en ligne de commande.
D'après son code source, la classe Espeak expose une méthode
set_voicequi permettrait de la changer la voix.
La nature des paramètres à passer à cette méthode n'est pas très claire, mais on doit pouvoir s'en sortir à partir d'exemples, voir ce lien.
J'aime bien cet exemple car il est assez court (à ceci prêt qu'il donne le nom du paquet pour python2 au lieu de python3) :
# -*- coding: utf-8 -*- from espeak import espeak # Install espeak in Ubuntu with # sudo apt-get instll espeak # sudo apt-get install python-espeak # Find the version installed by checking the lib file # ls /usr/lib/x86_64-linux-gnu/libespeak.so.* # Or by checking the apt package info # apt-cache show espeak # download the full Russian language pack from # http://espeak.sourceforge.net/data/ # and unzip it and replace the existing russian pack in # /usr/share/doc/espeak-data espeak.set_voice("ru") # Python2 files must be marked # -*- coding: utf-8 -*- espeak.synth("где папа") while espeak.is_playing: pass
Pour voir la liste des langues supportées, il semble qu'il faille lancer la commande suivante dans un terminal
espeak --voices(voir cette page).
espeak-ng
Si tu veux utiliser
espeak-ngil faudra l'installer via
pip3car il n'est pas dans les paquets APT :
sudo apt install python3-pip sudo pip3 install py-espeak-ng
Il n'est pas clair que cette nouvelle déclinaison permet d'avoir plus de latitude en terme de voix.
Bonne chance
Bonjour,
Grand merçi pour ces renseignements et travail de recherche
J'avais installé certains
j'ai essayé le espeak.set_voice("fr+f2") qui donne une voix féminine affreuse
Pour le reste c'est trop compliqué pour moi
Je vais revenir à mon brave Google TTS (en connection) qui me donnait une belle vois genre voix des smartphones en quelques lignes de code
Ce sera de toutes façons rare d'avoir ce texte to speech hors connection
Encore merci
Pierre
Grand merçi pour ces renseignements et travail de recherche
J'avais installé certains
j'ai essayé le espeak.set_voice("fr+f2") qui donne une voix féminine affreuse
Pour le reste c'est trop compliqué pour moi
Je vais revenir à mon brave Google TTS (en connection) qui me donnait une belle vois genre voix des smartphones en quelques lignes de code
Ce sera de toutes façons rare d'avoir ce texte to speech hors connection
Encore merci
Pierre
# -*- coding: utf-8 -*- from espeak import espeak import pyttsx3 #texte = "bonjour comment allez vous ?" texte = "Lecture des listes de paquets... Fait Construction de l'arbre" tts = pyttsx3.init() espeak.set_voice("fr+f2") tts.say(texte) tts.runAndWait()