Python 3.4 - Text-to-Speech mit SAPI
Ich habe versucht, diesen code verwenden, um text in Sprache umwandeln und mit Python 3.4, aber da mein computer die wichtigsten Muttersprache nicht Englisch ist (ich bin mit Win7x64) die Stimme und der Akzent sind falsch (Weil ich es will "sprechen" Englisch).
import win32com.client
speaker = win32com.client.Dispatch("SAPI.SpVoice")
speaker.Speak("Hello, it works!")
so, gibt es eine Möglichkeit zum ändern der Stimme/Sprache (dem Programm, nicht das system)?
Auch, denken Sie, es gibt einen besseren Weg, dies zu tun? Vielleicht ein Modul, das auf jedem sytem?
- Haben Sie getroffen, einen Blick auf SpVoice::SetVoice?
- Ja, aber ich weiß nicht, wie man das nutzen. Ich habe versucht, aber es wird gesagt, C++... vielleicht bin ich auch nicht verstehen.
- irgendeine Idee, wie können wir es sprechen eine andere Sprache als Englisch?stackoverflow.com/questions/49945874/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind die Chancen, dass Ihr OS nur kam Sie mit einer Stimme, wie es ist. Es gibt mehrere Möglichkeiten, wie Sie Englisch klingenden Ausgang mit IPA (Internationale Phonetische Sprache) und SVSFIsXML wie eine fahne in Ihrem sprechen nennen... aber ich vermute, Sie wollen etwas weniger kompliziert als das.
Das erste, was ich tun würde, ist schnappen Sie sich eine englische Stimme, wenn Sie nicht schon eine haben. (Prüfen Sie zuerst, indem Sie in Ihrem control panel->Spracherkennung->
text-to-speech und schauen Sie auf Ihre voice-Auswahl. Wenn Sie sagt, "Microsoft Anna - Englisch (United States)" dann, ja, Sie haben bereits eine englische Stimme.)
Wenn nicht, müssen Sie schnappen Sie sich eine andere Stimme Microsoft Speech Platform - Runtime Languages (Version 11) . Ich empfehle Microsoft Server Speech Text to Speech Voice (en-US, ZiraPro) als eine englische Stimme. Sie wollen auch Microsoft Speech Platform - Software-Development-Kit (SDK) (Version 11).
Ehrlich gesagt, ich nur irgendwie installieren, denn ich denke, es ist cool.
Einmal hast du alles installiert, was ich gefunden habe, um die Stimmen zu arbeiten ist eine saubere registry-hack fand ich bei Voice Attack - Erste freie Alternative TTS Stimmen funktioniert mit Win7/8 64bit.
Im Grunde was dies bedeutet ist, dass Sie tun, einige string-Ersatz in Ihrem MS Speech Platform " - Stimmen in Ihre registry so, dass das, was Sie sehen in Ihrem
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech Server\v11.0\Voices
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Speech Server\v11.0\Voices
Registern wird der wind sich in:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Speech\Voices
Sobald das erledigt ist, gehen Sie zurück in die Systemsteuerung und schau dir all die Stimmen, die Sie installiert haben. Sie sollten in der Lage sein, um Sie zu testen, auch in verschiedenen Sprachen. Wenn die Stimmen nicht spielen dann die Stimmen, die Sie installiert haben, nicht die richtige bit - (x86 vs 64).
Nun in python Sie haben werde, um eine SetVoice nennen. Ich habe noch nie in meinem Leben programmiert in python, aber ich Stelle mir den Anruf, den Sie wollen würde, würde Aussehen wie Lautsprecher.SetVoice("Microsoft Server Speech Text to Speech Voice (en-US, ZiraPro)"). Nachdem Sie die voice, die Stimme sein sollte, die reden die ganze Zeit, wenn Sie machen eines Anrufs Sprechen.
Nun, wenn Sie haben zu diesem Punkt bekommen und die Stimmen spielten in der Systemsteuerung, aber nicht in deinem code, es könnte sein, dass dein Programm 32bit/64bit oder so, und dann musst du wohl wieder laufen, installieren Sie das Gegenteil 32bit/64bit Stimmen, führen Sie die reg-änderungen wieder, und führen Sie Ihre Anwendung erneut.
Ein bisschen arbeiten, aber es wird sich auszahlen. Wenn Sie das tun, verteilen Sie Ihren code haben, müssen Sie sicherstellen, dass Ihre Stimmen sind Bestandteil der client-registry, und Unordnung mit, die können Kopfschmerzen in sich.