Wie verwende ich google text to speech api in windows-form?
Möchte ich die Verwendung von google text-to-speech in meine windows form Anwendung, es Lesen ein label. Ich fügte hinzu, System.Sprach-Referenz. Wie kann es Lesen ein label mit einem button-click-Ereignis?
http://translate.google.com/translate_tts?q=testing+google+die Rede Dies ist die google text-to-speech-api, oder wie kann ich mit den systemeigenen microsoft text-to-speech?
Sie müssen make up your mind, über das, was Unternehmen text-to-speech-API, die Sie verwenden möchten. Der link, den Sie ist tot, Sie haben bessere Chancen mit dem System.Rede.Synthetisieren.SpeechSynthezer Klasse. Verwenden Sie Ihre SpeakAsync () - Methode für maximale bang für die buck in den .NET-Welt anstelle von "es wird besser sein/morgen anders" - Welt des internet.
Der link funktioniert für mich. Ich Frage mich, warum es nicht für Sie arbeiten.
Hmm, ich Frage mich auch warum. Mit null Wege zum Debuggen ist es an sich genug für mich.
Punkt getroffen. Es endete als eine ziemlich gute Samstag-Nachmittag-Projekt in der Ende aber.
Der link funktioniert für mich. Ich Frage mich, warum es nicht für Sie arbeiten.
Hmm, ich Frage mich auch warum. Mit null Wege zum Debuggen ist es an sich genug für mich.
Punkt getroffen. Es endete als eine ziemlich gute Samstag-Nachmittag-Projekt in der Ende aber.
InformationsquelleAutor | 2012-02-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
UPDATE Google-TTS-API ist nicht mehr öffentlich verfügbar. Die Hinweise am unteren Rand über Microsoft TTS sind immer noch relevant und bieten gleichwertige Funktionalität.
Können Sie mit Google-TTS-API von deiner WinForm-Anwendung mit der Wiedergabe der Reaktion mit Hilfe einer Variante von diese Frage's Antwort (es dauerte eine Weile, aber ich habe eine echte Lösung):
HINWEIS: Der obige code benötigt NAudio zu arbeiten (kostenlos/open source) und
using
Aussagen fürSystem.Web
,System.Threading
, undNAudio.Wave
.Meine
Form1
hat 2 regler:label1
button1
mit einemTag
vonlabel1
(binden Sie die-Taste, um seine Bezeichnung)Den obigen code kann vereinfacht werden, leicht", wenn Sie verschiedene Ereignisse für jeden button/label Kombination mit so etwas wie (ungetestet):
Gibt es Probleme mit dieser Lösung, obwohl (diese Liste ist wahrscheinlich nicht vollständig; ich bin sicher, die Kommentare und die Reale Welt Verwendung finden, andere):
stop.WaitOne(10000);
im ersten code-snippet. Die 10000 entspricht einem maximum von 10 Sekunden, audio, gespielt zu werden, damit es verändert werden muss, wenn Ihr label, dauert länger als das Lesen. Dies ist notwendig, da die aktuelle version von NAudio (v1.5.4.0) scheint ein problem der Bestimmung, wenn der stream fertig spielen. Kann es in einer späteren version behoben oder gibt es vielleicht einen workaround, dass ich nicht die Zeit nehmen, zu finden. Eine vorübergehende Lösung ist die Verwendung einesParameterizedThreadStart
würde, nehmen Sie das timeout als parameter an den thread. Dies würde es ermöglichen, variable timeouts, aber wäre technisch nicht das problem zu beheben.Antwort auf die andere Seite zu Ihrer Frage:
Den
System.Speech.Synthesis.SpeechSynthesizer
Klasse ist viel einfacher zu bedienen und Sie können darauf zählen, dass es zuverlässig erreichbar (wo mit der Google-API, es könnte morgen schon wieder Weg).Es ist wirklich so einfach wie auch einen Verweis auf die
System.Speech
Referenz und:Diese funktioniert einfach.
Versucht, die Google-TTS-API war ein lustiges experiment, aber ich würde hartgepresst zu sagen, dass es für die Produktion verwendet, und wenn Sie nicht wollen, zu zahlen für eine kommerzielle alternative, die Microsoft-Lösung ist in etwa so gut wie es geht.
Siehe mein update für die, wie diese Arbeit in einer Schaltfläche click-Ereignis.
Ich habe aktualisiert, der code in meiner Antwort auf änderungen notwendig, basierend auf Tests.
Die komplett überarbeitete meine Antwort zu reflektieren, ziemlich tiefen Tests und enthält eine Liste der Probleme/Bedenken. Ich habe brannte eine ganze Menge Zeit damit, denn es Klang interessant, also bitte um feedback, sofern es die Zeit erlaubt.
Die
System.Speech
ist viel einfacher, aber es unterstützt nicht mehrere Sprachen.InformationsquelleAutor M.Babcock
Ich weiß, diese Frage ist ein bisschen veraltet, aber kürzlich hat Google veröffentlicht Google-Cloud-Text-To-Speech - API.
.NET Client-version von Google.Cloud.TextToSpeech kann hier gefunden werden:
https://github.com/jhabjan/Google.Cloud.TextToSpeech.V1
Hier ist kurzes Beispiel für die Verwendung von client:
InformationsquelleAutor HABJAN