Brad's answer es bastante fantástico, ya que contiene exactamente lo que estás buscando. Sin embargo,, falta un fundamento por el que haya expresado una preferencia en la pregunta errata: una implementación en C#.
Here's a full tutorial para obtener acceso a Speech API en código administrado. Con el crédito a Blake Niemyjski y los equipos apropiados de Microsoft, aquí están los trozos salientes, debido a que el LinkBack al artículo original está muerta y esto parece estar tomado de Microsoft directamente:
el siguiente enlace (Dar Ordenadores una Voice) lo llevará a un sitio de Microsoft que le mostrará cómo crear un proyecto y obtener una aplicación de texto a voz ejecutándose en VB .Net o C# en ningún momento !
SAPI
SAPI es la API de voz que da acceso a las aplicaciones de voz reconocimiento y motores de texto a voz (TTS). Este artículo se centra en TTS. Para TTS, SAPI toma el texto como entrada y usa el motor TTS a la salida que envía el texto como audio hablado. Esta es la misma tecnología utilizada por , la herramienta de accesibilidad de Windows, Narrador. Cada versión de Windows desde XP se envía con SAPI y un motor TTS en inglés.
TTS pone a trabajar a los oídos de los usuarios. Permite a las aplicaciones enviar información al usuario sin requerir la vista ni las manos del usuario. Esta es una opción de salida muy poderosa que no se utiliza a menudo en las PC .
Se necesitan tres pasos para utilizar TTS en una aplicación administrada:
- Crear una DLL de interoperabilidad
Desde SAPI es un componente COM, se necesita una DLL de interoperabilidad a usarlo desde una aplicación administrada Para crear esto, abra el proyecto en Visual Studio. Seleccione el menú Proyecto y haga clic en Agregar referencia. Seleccione la pestaña COM, seleccione "Biblioteca de objetos de Microsoft Speech" en la lista y haga clic en Aceptar. Estos pasos agregan esta referencia a su proyecto y crean un Interop.SpeechLib.dll en la misma carpeta que su ejecutable. Esta DLL de interoperabilidad debe estar siempre en la misma carpeta que su .exe para funcionar correctamente en .
- referencia el espacio de nombres de interoperabilidad
Incluir este espacio de nombres en su aplicación. En C#, agregue "usando SpeechLib;"; En VB, agregue "Imports SpeechLib".
- llamada Hablar()
crear un objeto SpVoice y llamar Hablar():
Visual C#
SpVoice voice = new SpVoice();
voice.Speak("Hello World!", SpeechVoiceSpeakFlags.SVSFDefault);
Visual Basic
voice = New SpVoice
voice.Speak("Hello World!", SpeechVoiceSpeakFlags.SVSFDefault)
Siento que la respuesta de Brad me llevó a la solución correcta aquí (por lo tanto, es más merecedor de crédito que yo), pero esta debería ser la última pieza que te faltaba. Ahora debería poder replicar la escritura del archivo WAV desde C++ solution en código administrado, y desde allí, transcode en el formato deseado.
¿Qué lenguajes de programación conoce? – Brad
Tenía la esperanza de encontrar algo ya escrito. Soy un mono de código y he estado programando desde que BASIC tenía números de línea. Sin embargo C# es lo que me pagan para desarrollar. – SQLMason
ver mi publicación. Hay una solución VB que puedes adaptar fácilmente a .NET. Si quieres algo que ya está escrito, entonces querrás buscar en otro lado. Stack Overflow es para preguntas de programación. – Brad