Un día quise jugar con las librerías de Microsoft Speech para hacer hablar a mi laptop. Las descargas fueron las siguientes:
Microsoft Speech Platform Runtime. Descargué el instalador de 64 y 32 bits, bastan los instaladores de la plataforma en la que se compila la aplicación, pero por el error que explicaré más abajo tuve que probar ambos:
https://www.microsoft.com/en-us/download/details.aspx?id=27225
Microsoft Speech Platform Runtime Languages:
https://www.microsoft.com/en-us/download/details.aspx?id=27224
Los paquetes para reconocimiento de audio son los que dicen TELE, los paquetes para convertir texto a voz son los que tienen nombres de personas. Yo descargué los paquetes de español México y español España. En total fueron 4 paquetes de idioma.
Lo siguiente que hice fue crear un proyecto de C# con .Net Framework. Referencié el archivo Microsoft.Speech.dll en mi proyecto:
Para 64 bits, la dll está en C:\Program Files\Microsoft SDKs\Speech\v11.0\Assembly
Para 32 bits, está en C:\Program Files (x86)\Microsoft SDKs\Speech\v11.0\Assembly
Finalmente copié y pequé un poco del código de esta web: https://docs.microsoft.com/en-us/archive/msdn-magazine/2014/december/voice-recognition-speech-recognition-with-net-desktop-applications
static void Main(string[] args)
{
try
{
ss.SetOutputToDefaultAudioDevice();
Console.WriteLine("\n(Speaking: I am awake)");
ss.Speak("He despertado");
CultureInfo ci = new CultureInfo("es-PE");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.ReadLine();
}
}
Y apenas empezar el debugueo me saltó este error:
Retrieving the COM class factory for component with CLSID {D941651C-44E6-4C17-BADF-C36826FC3424} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
Luego de intentar varias soluciones: cambiar a 32 bits, cambiar a .Net Framework 4, iniciar Visual Studio como administrador, lo único que funcionó fue lo propuesto en este foro:
En 64 bits el instalador está en C:\Program Files\Microsoft SDKs\Speech\v11.0\Redist
En 32 bits está en C:\Program Files (x86)\Microsoft SDKs\Speech\v11.0\Redist
Al ejecutar los instaladores se pueden ver los mensajes de que se están registrando las dlls.
Lugo volví a referenciar la dll de 64 bits, cambié a .Net Framework 4.5, puse que se trata de una aplicación de 64 bits, y probé.
Funcionó, la aplicación puede decir "He despertado" con la voz de una mujer (apodada Hilda).
Ya puedo ponerle voz a mis aplicaciones de C# :)
No hay comentarios:
Publicar un comentario