2016-08-17 1 views
1

J'utilise TTS en python. (bibliothèque pyttsx). J'ai lu dans la documentation que je peux obtenir des propriétés taux, voix, voix, volume. Dans la documentation est seulement à propos de ce que je ne peux définir la propriété que pour le taux, la voix, le volume. Cela signifie que je ne peux pas définir les propriétés "voix"? Je suis intéressé par les voix, car il contient l'âge, le sexe, les langues, etc. documentation ici: http://pyttsx.readthedocs.io/en/latest/engine.html#pyttsx.voice.VoiceComment définir la propriété: âge, sexe ou langue dans PYTTS (Python)

Je peux utiliser le taux, la voix, le volume easly par exemple:

engine = pyttsx.init() 
engine.getProperty('rate') 
engine.getProperty('volume') 
engine.setProperty('rate', 50) 
engine.setProperty('volume', 0.25) 
engine.say("something") 
engine.runAndWait() 

La question est. Y at-il une chance de changer "gander", "âge" ou "langue" de la voix parlée? Si c'est le cas, donnez-moi un exemple de comment le faire, parce que je suis complètement à court d'idées.

Il est un exemple d'utilisation voices.id, qui est en fait à l'intérieur des voix, mais il ne m'a pas aidé:

engine = pyttsx.init() 
voices = engine.getProperty('voices') 
for voice in voices: 
    engine.setProperty('voice', voice.id) 
    engine.say('The quick brown fox jumped over the lazy dog.') 
engine.runAndWait() 

désolé de vous déranger, merci :-)

Répondre

1

I J'espère que cela t'aides. J'utilise aussi pyttsx, avec Python sur un win7 os, et je travaille sur une petite IA, avec pyttsx comme sortie vocale.

La classe de sélection vocale pyttsx fonctionne bien avec les voix SAPI5, trouvé ici; À partir du bouton de démarrage, le type et exécutez regedit.exe 'HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Speech \ Voices \ Tokens \'

Win7 est fourni avec seulement 1 voix (MS-Anna)

Chez Microsoft, il sont plus à choisir; http://www.microsoft.com/en-us/download/details.aspx?id=27224

MSSpeech_TTS_en-CA_Heather MSSpeech_TTS_en-GB_Hazel MSSpeech_TTS_en-IN_Heera MSSpeech_TTS_en-US_Helen MSSpeech_TTS_en-US_ZiraPro MSSpeech_TTS_en-AU_Hayley

Cependant, vous pouvez également télécharger et installer eSpeak. De nombreuses voix SAPI5 peuvent être installées pendant l'installation, et l'installation peut être répétée autant de fois que vous le souhaitez. Il y a de bons docs dans le répertoire. Avec pyttsx, vous pouvez sélectionner directement la voix que vous voulez utiliser. Pour accéder aux identifiants de voix SAPI5 dans le répertoire 'Tokens'

speech_engine = pyttsx.init() 
voices = speech_engine.getProperty('voices') 
for voice in voices: 
    print 'voice', voice.id 
    #speech_engine.setProperty('voice', voice.id) 
    #speech_engine.say('The quick brown fox') 


# here I find I have installed just 1 eSpeak voice into the Tokens DIR; 

anna_voice = 'HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\Voices\\Tokens\\MS-Anna-1033-20-DSK' 

male_voice_1 = 'HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\Voices\\Tokens\\eSpeak' 
#===== 
rate = speech_engine.getProperty('rate') 
# the rate should be signed + for faster or - for slower 
speech_engine.setProperty('rate', rate-85) 
#===== 

volume = speech_engine.getProperty('volume') 
speech_engine.setProperty('volume', volume+1.0) 
#===== 
def speak(input_text): 
    global talking_yes_or_no 
    i = '' 
    txt_list = list(input_text) 
    if len(txt_list) > 0: 
     for i in txt_list: 
      if i == '': 
       txt_list.remove(i) 
    txt = ''.join(txt_list) 
    if txt != "": 
     speech_engine.say(txt) 
     speech_engine.runAndWait() 
#===== 
def use_anna_voice(): 
    speech_engine.setProperty('voice', anna_voice) 
#===== 
def use_male_voice_1(): 
    speech_engine.setProperty('voice', male_voice_1) 
#===== 
#use_male_voice() 
#speak('hello')