2009-06-10 4 views

Respuesta

10

MS Speech SDK. Está expuesto a través de un ensamblado .NET. Muy fácil de usar A mis hijos les encantó. Gratis.

using System.Speech.Synthesis; 

public class SpeakHelloWorld 
{ 
    public static void Main(string[] args) 
    { 
     SpeechSynthesizer synthesizer = new SpeechSynthesizer(); 
     synthesizer.Speak("As for me and my house, ..."); 
    } 
} 

Los sonidos generados por el código anterior no usan inflexión natural, con pausas, etc. Entonces, con una oración completa, no suena humano. Pero las palabras sueltas suenan bien, son robóticas.

Para un niño pequeño, con un conjunto de palabras lo suficientemente pequeño, es posible que desee grabar su propia voz diciendo las palabras. Lo hice con un acertijo del estado de Estados Unidos, para pronunciar los nombres de los estados, en lugar de recurrir al sintetizador.

+0

¿Era lo suficientemente claro como para hacer una aplicación de ortografía o malpronunciaba las palabras? –

+1

Es bastante bueno. Todavía suena como una voz de computadora, pero bastante bueno. Es muy fácil de probar, para que pueda ver por sí mismo en pocos minutos. – Cheeso

4

No sé por qué no pensé que de esta antes-
que estaba haciendo una herramienta de búsqueda de diccionario, y quería añadir pronunciación a la misma. En lugar de usar Text-to-speech, que da un sonido robótico, tomé un enfoque diferente. M-W.com tiene voces humanas capturadas en archivos .wav para la mayoría de las palabras. Así que raspe la pantalla del sitio web de Merriam-Webster para tomar un archivo wav de la palabra, y luego solo juego que. Si tu aplicación estará conectada, entonces quizás esto también funcione para ti.

Este es el flujo que pasa a través de:

pronouncing Tricky...looking up 'Tricky'... 
dictionary page: http://www.merriam-webster.com/dictionary/Tricky 
got dictionary page markup, 35828 chars... 
getting pronunciation uri... 
got uri: 'http://www.merriam-webster.com//cgi-bin/audio.pl?tricky01.wav=tricky'... 
getting page markup... 
got pronunciation page markup, 3498 chars... 
getting wav uri... 
got wav uri: 'http://media.merriam-webster.com/soundc11/t/tricky01.wav'... 
getting wav data... 
got wav data, 6260 bytes... 
playing wav data. 
done. 

Aquí es some prototype source code that does it.

Esto funciona en .NET Framework 2.0, y también funciona en .NET CF 2.0. Es solo una ilustración. Es un poco ingenuo para seleccionar el archivo .wav adecuado cuando hay múltiples formas de palabras y múltiples pronunciaciones. Si solicita una forma plural, es posible que no la obtenga. También es posible que desee agregar el almacenamiento en caché y el manejo de excepciones adicionales para endurecerlo.

+0

Me encantaría ver el código para eso. Esa es una idea genial! –

+0

ok He actualizado la publicación e incluido el código. – Cheeso

Cuestiones relacionadas