2009-06-10 14 views
8

Sto scrivendo un'applicazione di ortografia per mio figlio e vorrei ricevere raccomandazioni per le buone API che possono essere capite quando parla. Sto programmando in. Net in modo che qualcosa che si interrompa con quello sarebbe utile. Grazie in anticipo.Buona API di sintesi vocale per il tutor di ortografia

risposta

10

MS Speech SDK. È esposto tramite un assembly .NET. Molto facile da usare. I miei bambini l'hanno adorato. Gratuito.

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, ..."); 
    } 
} 

I suoni generati dal codice precedente non utilizzano l'inflessione naturale, con pause e così via. Quindi, con una frase completa, non risulta umana. Ma le singole parole suonano bene, solo una specie di robot.

Per un bambino piccolo, con una serie di parole abbastanza piccola, si potrebbe desiderare semplicemente registrare la propria voce dicendo le parole. L'ho fatto con un enigma dello stato USA, per pronunciare i nomi di stato, piuttosto che ricorrere al sintetizzatore.

+0

Era abbastanza chiaro per fare un'applicazione di spelling word o ha fatto pronunciare male le parole. –

+1

È abbastanza buono. Suona ancora come una voce di un computer, ma piuttosto bene. È molto facile provarlo, quindi puoi vederlo per te in pochi minuti. – Cheeso

4

Non so perché non ho pensato di questo prima-
stavo facendo uno strumento dizionario-lookup, e ha voluto aggiungere pronuncia ad essa. Piuttosto che usare il Text-to-speech, che dà un suono robotico, ho adottato un approccio diverso. M-W.com ha voci umane catturate in file wav per la maggior parte delle parole. Quindi analizzo il sito Web Merriam-Webster per catturare un file wav per la parola, quindi eseguo semplicemente che. Se la tua app sarà connessa, forse questo potrebbe funzionare anche per te.

Questo è il flusso passa attraverso:

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. 

Ecco some prototype source code that does it.

Questo funziona su .NET Framework 2.0 e funziona anche su .NET CF 2.0. È solo un'illustrazione. È un po 'ingenuo sulla selezione del file .wav corretto quando ci sono più forme di parole e pronunce multiple. Se chiedi un plurale, potresti non averlo capito. Inoltre, è possibile aggiungere la memorizzazione nella cache e la gestione delle eccezioni aggiuntiva per aumentarla.

+0

Mi piacerebbe vedere il codice per questo. Questa è davvero una bella idea! –

+0

ok ho aggiornato il post e incluso il codice. – Cheeso

Problemi correlati