Question

Je construis une application web pour l'enregistrement des messages vocaux et je recherche les meilleures options pour convertir les messages vocaux en texte. Quelqu'un at-il des suggestions sur ce qu'il faut utiliser pour effectuer la conversion? Travaillerais System.Speech?

Était-ce utile?

La solution

System.Speech est un client API concentré. Vista et Windows 7 sont les moteurs de la parole pour System.Speech. Vous pouvez l'utiliser pour la transcription parce que les moteurs vocaux client fournis par Microsoft incluent une grammaire de dictée.

Les moteurs de reconnaissance vocale du serveur fourni par Microsoft ne comprennent pas une grammaire de dictée, de sorte qu'ils sont plus difficiles à utiliser pour la transcription. L'espace de noms .NET pour la reconnaissance du serveur est Microsoft.Speech et le SDK complet pour la 10.2 version est disponible à l'adresse http://www.microsoft.com/downloads/en/details.aspx?FamilyID=1b1604d3-4f66-4241-9a21-90a294a5c9a4 . Le moteur de la parole est un téléchargement gratuit.

Pour commencer à utiliser la parole .NET, il y a un très bon article qui a été publié il y a quelques années à http://msdn.microsoft.com/en-us/magazine/cc163663.aspx . Il est probablement le meilleur article d'introduction, je l'ai trouvé à ce jour. Il est un peu obsolète, mais très helfpul. (La méthode AppendResultKeyValue a été abandonné après la version bêta.)

Voici un exemple rapide qui montre l'un des plus simples fenêtres .NET formes d'application pour utiliser une grammaire de dictée que je pouvais penser. Cela devrait fonctionner sous Windows Vista ou Windows 7. Je créé un formulaire. Un bouton tombé et fait le gros bouton. Ajout d'une référence à System.Speech et la ligne:

using System.Speech.Recognition;

Ensuite, j'ajouté le gestionnaire d'événement suivant à button1:

private void button1_Click(object sender, EventArgs e)
{         
    SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine();
    Grammar dictationGrammar = new DictationGrammar();
    recognizer.LoadGrammar(dictationGrammar);
    try
    {
        button1.Text = "Speak Now";
        recognizer.SetInputToDefaultAudioDevice();
        RecognitionResult result = recognizer.Recognize();
        button1.Text = result.Text;
    }
    catch (InvalidOperationException exception)
    {
        button1.Text = String.Format("Could not recognize input from default aduio device. Is a microphone or sound card available?\r\n{0} - {1}.", exception.Source, exception.Message);
    }
    finally
    {
        recognizer.UnloadAllGrammars();
    }                          
}

Un peu plus d'informations comparant les différentes saveurs de moteurs vocaux et les API expédiés par Microsoft sont disponibles à l'adresse Quelle est la différence entre System.Speech.Recognition et Microsoft.Speech.Recognition

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top