Brad's answer ist ziemlich grandios, da es genau das enthält, wonach Sie suchen. Jedoch, es fehlt ein Fundament, das Sie in den Fragenerrata eine Präferenz ausgedrückt hatten: eine Implementierung in C#.
Here's a full tutorial Zugriff auf die Sprach-API in verwaltetem Code. Mit vollem Kredit Blake Niemyjski und die zuständigen Teams bei Microsoft, ist hier die herausragenden Bits, da der Linkback zum Original-Artikel tot ist und dies scheint von Microsoft ausgeliehen wurde direkt:
Der folgende Link (Giving eines Computer Voice) führt Sie zu einer Microsoft-Website, die Ihnen zeigt, wie Sie ein Projekt erstellen und eine Basic-Text-to-Speech-Anwendung in VB.Net oder C# in no Zeit erhalten!
SAPI
SAPI ist die Sprach-API, die Anwendungen den Zugriff auf Spracherkennungs und Text-to-Speech (TTS) Motoren gibt. Dieser Artikel konzentriert sich auf TTS. Für TTS nimmt SAPI Text als Eingabe und verwendet die TTS-Engine zu geben Sie diesen Text als gesprochenen Audio aus. Dies ist die gleiche Technologie, die von Windows-Tool für die Barrierefreiheit, Erzähler. Jede Version von Windows seit XP wurde mit SAPI und einer englischen TTS-Engine ausgeliefert.
TTS bringt die Ohren des Benutzers zum Laufen. Es ermöglicht Anwendungen, Informationen an den Benutzer zu senden, ohne die Augen oder Hände des Benutzers zu benötigen. Dies ist eine sehr leistungsfähige Ausgabeoption, die nicht oft auf PCs verwendet wird.
Drei Schritte nötig sind, um TTS in einer verwalteten Anwendung zu verwenden:
- eine Interop-DLL erstellen
Da SAPI eine COM-Komponente ist, wird ein Interop-DLL es eine von zu verwenden benötigt verwaltete App Öffnen Sie das Projekt in Visual Studio, um das zu erstellen. Wählen Sie das Menü Projekt und klicken Sie auf Verweis hinzufügen. Wählen Sie die COM-Registerkarte, Wählen Sie "Microsoft Speech-Objektbibliothek" in der Liste, und klicken Sie auf OK. Diese Schritte fügen diesen Verweis Ihrem Projekt hinzu und erstellen eine Interop.SpeechLib.dll im selben Ordner wie Ihre ausführbare Datei. Diese Interop-DLL muss immer im selben Ordner wie Ihre .exe sein, um korrekt zu funktionieren.
- Referenz der Interop Namespace
diesen Namespace in Ihrer Anwendung einschließen. Fügen Sie in C# "using SpeechLib;" hinzu; Fügen Sie in VB "Imports SpeechLib" hinzu.
- Anruf Speak()
ein SpVoice Objekt erstellen und rufen Speak():
Visual C#
SpVoice voice = new SpVoice();
voice.Speak("Hello World!", SpeechVoiceSpeakFlags.SVSFDefault);
Visual Basic
voice = New SpVoice
voice.Speak("Hello World!", SpeechVoiceSpeakFlags.SVSFDefault)
Ich fühle, dass Brads Antwort mich hier zur richtigen Lösung geführt hat (also verdient er mehr Kredit als ich), aber das sollte das letzte Stück sein, das du vermisst hast. Sie sollten nun in der Lage sein, die WAV-Datei von C++ solution in verwaltetem Code zu replizieren, und von dort aus transcode in Ihr gewünschtes Format.
Welche Programmiersprachen kennen Sie? – Brad
Ich hatte gehofft, etwas bereits geschrieben zu finden. Ich bin ein Code-Affe und habe programmiert, seit BASIC Zeilennummern hatte. C# ist jedoch, wofür ich bezahlt werde. – SQLMason
sehe meinen Beitrag. Es gibt eine VB-Lösung, die Sie leicht an .NET anpassen können. Wenn Sie etwas bereits geschrieben haben wollen, dann werden Sie sich woanders umsehen wollen. Stack Overflow dient zur Programmierung von Fragen. – Brad