Commencer avec la reconnaissance vocaleGet started with speech-to-text

L’une des principales fonctionnalités du service de reconnaissance vocale est la possibilité de reconnaître et de transcrire la voix humaine (souvent appelée « reconnaissance vocale »).One of the core features of the Speech service is the ability to recognize and transcribe human speech (often referred to as speech-to-text). Dans ce guide de démarrage rapide, vous allez apprendre à utiliser le SDK de reconnaissance vocale dans vos applications et produits afin d’effectuer une conversion de voix en texte de qualité.In this quickstart, you learn how to use the Speech SDK in your apps and products to perform high-quality speech-to-text conversion.

Passer aux exemples sur GitHubSkip to samples on GitHub

Si vous souhaitez passer directement à l’exemple de code, consultez les exemples de démarrage rapide C# sur GitHub.If you want to skip straight to sample code, see the C# quickstart samples on GitHub.

PrérequisPrerequisites

Cet article part du principe que vous disposez d’un compte Azure et d’un abonnement au service Speech.This article assumes that you have an Azure account and Speech service subscription. Si vous n’avez pas de compte et d’abonnement, essayez le service Speech gratuitement.If you don't have an account and subscription, try the Speech service for free.

Installer le Kit de développement logiciel (SDK) SpeechInstall the Speech SDK

Si vous voulez simplement le nom du package pour commencer, exécutez Install-Package Microsoft.CognitiveServices.Speech dans la console NuGet.If you just want the package name to get started, run Install-Package Microsoft.CognitiveServices.Speech in the NuGet console.

Pour obtenir des instructions d’installation propres à la plateforme, consultez les liens suivants :For platform-specific installation instructions, see the following links:

Créer une configuration SpeechCreate a speech configuration

Pour appeler le service Speech à l’aide du SDK Speech, vous devez créer une classe SpeechConfig.To call the Speech service using the Speech SDK, you need to create a SpeechConfig. Celle-ci comprend des informations sur votre abonnement, telles que votre clé et la région, le point de terminaison, l’hôte ou le jeton d’autorisation associés.This class includes information about your subscription, like your key and associated region, endpoint, host, or authorization token. Créez une SpeechConfig à l’aide de votre clé et de votre région.Create a SpeechConfig by using your key and region. Consultez la page Rechercher les clés et la région pour rechercher votre paire clé-région.See the Find keys and region page to find your key-region pair.

using System;
using System.IO;
using System.Threading.Tasks;
using Microsoft.CognitiveServices.Speech;
using Microsoft.CognitiveServices.Speech.Audio;

class Program 
{
    async static Task Main(string[] args)
    {
        var speechConfig = SpeechConfig.FromSubscription("<paste-your-subscription-key>", "<paste-your-region>");
    }
}

Vous pouvez initialiser une SpeechConfig de plusieurs autres façons :There are a few other ways that you can initialize a SpeechConfig:

  • Avec un point de terminaison : transmettez un point de terminaison de service Speech.With an endpoint: pass in a Speech service endpoint. Une clé ou un jeton d’autorisation est facultatif.A key or authorization token is optional.
  • Avec un hôte : transmettez une adresse d’hôte.With a host: pass in a host address. Une clé ou un jeton d’autorisation est facultatif.A key or authorization token is optional.
  • Avec un jeton d’autorisation : transmettez un jeton d’autorisation et la région associée.With an authorization token: pass in an authorization token and the associated region.

Notes

Quand vous procédez à une reconnaissance vocale, une synthèse vocale, une traduction ou une reconnaissance intentionnelle, vous devez toujours créer une configuration.Regardless of whether you're performing speech recognition, speech synthesis, translation, or intent recognition, you'll always create a configuration.

Reconnaître la voix provenant d’un microphoneRecognize from microphone

Pour reconnaître la voix à l’aide du microphone de votre appareil, créez une AudioConfig en utilisant FromDefaultMicrophoneInput().To recognize speech using your device microphone, create an AudioConfig using FromDefaultMicrophoneInput(). Initialisez ensuite un SpeechRecognizer, en transmettant vos audioConfig et speechConfig.Then initialize a SpeechRecognizer, passing your audioConfig and speechConfig.

using System;
using System.IO;
using System.Threading.Tasks;
using Microsoft.CognitiveServices.Speech;
using Microsoft.CognitiveServices.Speech.Audio;

class Program 
{
    async static Task FromMic(SpeechConfig speechConfig)
    {
        using var audioConfig = AudioConfig.FromDefaultMicrophoneInput();
        using var recognizer = new SpeechRecognizer(speechConfig, audioConfig);

        Console.WriteLine("Speak into your microphone.");
        var result = await recognizer.RecognizeOnceAsync();
        Console.WriteLine($"RECOGNIZED: Text={result.Text}");
    }

    async static Task Main(string[] args)
    {
        var speechConfig = SpeechConfig.FromSubscription("<paste-your-subscription-key>", "<paste-your-region>");
        await FromMic(speechConfig);
    }
}

Si vous souhaitez utiliser un périphérique d’entrée audio spécifique, vous devez spécifier son ID dans l’AudioConfig.If you want to use a specific audio input device, you need to specify the device ID in the AudioConfig. Découvrez comment obtenir l’ID de votre périphérique d’entrée audio.Learn how to get the device ID for your audio input device.

Reconnaître la voix à partir d’un fichierRecognize from file

Si vous souhaitez reconnaître la voix à partir d’un fichier audio au lieu d’utiliser un microphone, vous devez quand même créer un objet AudioConfig.If you want to recognize speech from an audio file instead of a microphone, you still need to create an AudioConfig. Toutefois, quand vous créez l’objet AudioConfig, au lieu d’appeler FromDefaultMicrophoneInput(), vous appelez FromWavFileInput() et transmettez le chemin du fichier.However, when you create the AudioConfig, instead of calling FromDefaultMicrophoneInput(), you call FromWavFileInput() and pass the file path.

using System;
using System.IO;
using System.Threading.Tasks;
using Microsoft.CognitiveServices.Speech;
using Microsoft.CognitiveServices.Speech.Audio;

class Program 
{
    async static Task FromFile(SpeechConfig speechConfig)
    {
        using var audioConfig = AudioConfig.FromWavFileInput("PathToFile.wav");
        using var recognizer = new SpeechRecognizer(speechConfig, audioConfig);

        var result = await recognizer.RecognizeOnceAsync();
        Console.WriteLine($"RECOGNIZED: Text={result.Text}");
    }

    async static Task Main(string[] args)
    {
        var speechConfig = SpeechConfig.FromSubscription("<paste-your-subscription-key>", "<paste-your-region>");
        await FromFile(speechConfig);
    }
}

Reconnaître la voix à partir d’un flux en mémoireRecognize from in-memory stream

Dans de nombreux cas d’usage, il est probable que vos données audio proviennent d’un stockage d’objets blob, ou qu’elles soient déjà en mémoire comme un byte[] ou une structure de données brutes similaire.For many use-cases, it is likely your audio data will be coming from blob storage, or otherwise already be in-memory as a byte[] or similar raw data structure. L’exemple suivant utilise un PushAudioInputStream pour reconnaître la voix, qui est essentiellement un flux en mémoire abstrait.The following example uses a PushAudioInputStream to recognize speech, which is essentially an abstracted memory stream. L'exemple de code effectue les opérations suivantes :The sample code does the following:

  • Écrit des données audio brutes (PCM) dans le PushAudioInputStream à l’aide de la fonction Write(), qui accepte un byte[].Writes raw audio data (PCM) to the PushAudioInputStream using the Write() function, which accepts a byte[].
  • Lit un fichier .wav à l’aide d’un FileReader à des fins de démonstration, mais si vous avez déjà des données audio dans un byte[], vous pouvez passer directement à l’écriture du contenu dans le flux d’entrée.Reads a .wav file using a FileReader for demonstration purposes, but if you already have audio data in a byte[], you can skip directly to writing the content to the input stream.
  • Le format par défaut est PCM mono 16 kHz 16 bits.The default format is 16 bit, 16khz mono PCM. Pour personnaliser le format, vous pouvez passer un objet AudioStreamFormat à CreatePushStream() à l’aide de la fonction statique AudioStreamFormat.GetWaveFormatPCM(sampleRate, (byte)bitRate, (byte)channels).To customize the format, you can pass an AudioStreamFormat object to CreatePushStream() using the static function AudioStreamFormat.GetWaveFormatPCM(sampleRate, (byte)bitRate, (byte)channels).
using System;
using System.IO;
using System.Threading.Tasks;
using Microsoft.CognitiveServices.Speech;
using Microsoft.CognitiveServices.Speech.Audio;

class Program 
{
    async static Task FromStream(SpeechConfig speechConfig)
    {
        var reader = new BinaryReader(File.OpenRead("PathToFile.wav"));
        using var audioInputStream = AudioInputStream.CreatePushStream();
        using var audioConfig = AudioConfig.FromStreamInput(audioInputStream);
        using var recognizer = new SpeechRecognizer(speechConfig, audioConfig);

        byte[] readBytes;
        do
        {
            readBytes = reader.ReadBytes(1024);
            audioInputStream.Write(readBytes, readBytes.Length);
        } while (readBytes.Length > 0);

        var result = await recognizer.RecognizeOnceAsync();
        Console.WriteLine($"RECOGNIZED: Text={result.Text}");
    }

    async static Task Main(string[] args)
    {
        var speechConfig = SpeechConfig.FromSubscription("<paste-your-subscription-key>", "<paste-your-region>");
        await FromStream(speechConfig);
    }
}

L’utilisation d’un flux d’envoi (push) comme entrée suppose que les données audio sont au format PCM brut (par exemple, les en-têtes sont ignorés).Using a push stream as input assumes that the audio data is a raw PCM, e.g. skipping any headers. L’API fonctionne toujours dans certains cas si l’en-tête n’a pas été ignoré, mais pour obtenir les meilleurs résultats, envisagez d’implémenter une logique permettant de lire les en-têtes afin que byte[] démarre au début des données audio.The API will still work in certain cases if the header has not been skipped, but for the best results consider implementing logic to read off the headers so the byte[] starts at the start of the audio data.

Gestion des erreursError handling

Les exemples précédents récupèrent simplement le texte reconnu de result.text, mais pour gérer les erreurs et autres réponses, vous devez écrire du code afin de gérer le résultat.The previous examples simply get the recognized text from result.text, but to handle errors and other responses, you'll need to write some code to handle the result. Le code suivant évalue la propriété result.Reason et :The following code evaluates the result.Reason property and:

  • Imprime le résultat de la reconnaissance : ResultReason.RecognizedSpeechPrints the recognition result: ResultReason.RecognizedSpeech
  • S’il n’existe aucune correspondance de reconnaissance, informez l’utilisateur : ResultReason.NoMatchIf there is no recognition match, inform the user: ResultReason.NoMatch
  • Si une erreur se produit, imprimez le message d’erreur : ResultReason.CanceledIf an error is encountered, print the error message: ResultReason.Canceled
switch (result.Reason)
{
    case ResultReason.RecognizedSpeech:
        Console.WriteLine($"RECOGNIZED: Text={result.Text}");
        break;
    case ResultReason.NoMatch:
        Console.WriteLine($"NOMATCH: Speech could not be recognized.");
        break;
    case ResultReason.Canceled:
        var cancellation = CancellationDetails.FromResult(result);
        Console.WriteLine($"CANCELED: Reason={cancellation.Reason}");

        if (cancellation.Reason == CancellationReason.Error)
        {
            Console.WriteLine($"CANCELED: ErrorCode={cancellation.ErrorCode}");
            Console.WriteLine($"CANCELED: ErrorDetails={cancellation.ErrorDetails}");
            Console.WriteLine($"CANCELED: Did you update the subscription info?");
        }
        break;
}

Reconnaissance continueContinuous recognition

Les exemples précédents utilisent la reconnaissance unique, qui reconnaît un énoncé unique.The previous examples use single-shot recognition, which recognizes a single utterance. La fin d’un énoncé unique est déterminée par la détection du silence à la fin, ou après que 15 secondes d’audio ont été traitées.The end of a single utterance is determined by listening for silence at the end or until a maximum of 15 seconds of audio is processed.

En revanche, la reconnaissance continue est utilisée quand vous souhaitez contrôler à quel moment arrêter la reconnaissance.In contrast, continuous recognition is used when you want to control when to stop recognizing. Pour obtenir les résultats de la reconnaissance, vous devez vous abonner aux événements Recognizing, Recognized et Canceled.It requires you to subscribe to the Recognizing, Recognized, and Canceled events to get the recognition results. Pour arrêter la reconnaissance, vous devez appeler StopContinuousRecognitionAsync.To stop recognition, you must call StopContinuousRecognitionAsync. Voici un exemple de reconnaissance continue sur un fichier d’entrée audio.Here's an example of how continuous recognition is performed on an audio input file.

Commencez par définir l’entrée et initialiser un SpeechRecognizer :Start by defining the input and initializing a SpeechRecognizer:

using var audioConfig = AudioConfig.FromWavFileInput("YourAudioFile.wav");
using var recognizer = new SpeechRecognizer(speechConfig, audioConfig);

Ensuite, créez un TaskCompletionSource<int> pour gérer l’état de la reconnaissance vocale.Then create a TaskCompletionSource<int> to manage the state of speech recognition.

var stopRecognition = new TaskCompletionSource<int>();

Ensuite, abonnez-vous aux événements envoyés à partir du SpeechRecognizer.Next, subscribe to the events sent from the SpeechRecognizer.

  • Recognizing : signal pour les événements contenant des résultats de reconnaissance intermédiaires.Recognizing: Signal for events containing intermediate recognition results.
  • Recognized : signal pour les événements contenant des résultats de reconnaissance finaux (indiquant une tentative de reconnaissance réussie).Recognized: Signal for events containing final recognition results (indicating a successful recognition attempt).
  • SessionStopped : signal pour les événements indiquant la fin d’une session de reconnaissance (opération).SessionStopped: Signal for events indicating the end of a recognition session (operation).
  • Canceled : signal pour les événements contenant des résultats de reconnaissance annulés (indiquant une tentative de reconnaissance qui a été annulée suite une requête d’annulation directe ou à un échec de transport ou de protocole).Canceled: Signal for events containing canceled recognition results (indicating a recognition attempt that was canceled as a result or a direct cancellation request or, alternatively, a transport or protocol failure).
recognizer.Recognizing += (s, e) =>
{
    Console.WriteLine($"RECOGNIZING: Text={e.Result.Text}");
};

recognizer.Recognized += (s, e) =>
{
    if (e.Result.Reason == ResultReason.RecognizedSpeech)
    {
        Console.WriteLine($"RECOGNIZED: Text={e.Result.Text}");
    }
    else if (e.Result.Reason == ResultReason.NoMatch)
    {
        Console.WriteLine($"NOMATCH: Speech could not be recognized.");
    }
};

recognizer.Canceled += (s, e) =>
{
    Console.WriteLine($"CANCELED: Reason={e.Reason}");

    if (e.Reason == CancellationReason.Error)
    {
        Console.WriteLine($"CANCELED: ErrorCode={e.ErrorCode}");
        Console.WriteLine($"CANCELED: ErrorDetails={e.ErrorDetails}");
        Console.WriteLine($"CANCELED: Did you update the subscription info?");
    }

    stopRecognition.TrySetResult(0);
};

recognizer.SessionStopped += (s, e) =>
{
    Console.WriteLine("\n    Session stopped event.");
    stopRecognition.TrySetResult(0);
};

Quand tout est configuré, appelez StartContinuousRecognitionAsync pour commencer la reconnaissance.With everything set up, call StartContinuousRecognitionAsync to start recognizing.

await recognizer.StartContinuousRecognitionAsync();

// Waits for completion. Use Task.WaitAny to keep the task rooted.
Task.WaitAny(new[] { stopRecognition.Task });

// make the following call at some point to stop recognition.
// await recognizer.StopContinuousRecognitionAsync();

Mode de dictéeDictation mode

Quand vous utilisez la reconnaissance continue, vous pouvez activer le traitement de la dictée en utilisant la fonction « enable dictation » correspondante.When using continuous recognition, you can enable dictation processing by using the corresponding "enable dictation" function. Dans ce mode, l’instance de configuration vocale interprète les descriptions verbales de structures de phrase comme la ponctuation.This mode will cause the speech config instance to interpret word descriptions of sentence structures such as punctuation. Par exemple, l’énoncé « Habitez-vous en ville point d’interrogation » donne le texte « Habitez-vous en ville ? ».For example, the utterance "Do you live in town question mark" would be interpreted as the text "Do you live in town?".

Pour activer le mode dictée, utilisez la méthode EnableDictation sur votre SpeechConfig.To enable dictation mode, use the EnableDictation method on your SpeechConfig.

speechConfig.EnableDictation();

Changer la langue sourceChange source language

Une tâche courante pour la reconnaissance vocale consiste à spécifier la langue d’entrée (ou source).A common task for speech recognition is specifying the input (or source) language. Examinons comment choisir l’italien comme langue d’entrée.Let's take a look at how you would change the input language to Italian. Dans votre code, recherchez votre SpeechConfig, puis ajoutez cette ligne directement en dessous.In your code, find your SpeechConfig, then add this line directly below it.

speechConfig.SpeechRecognitionLanguage = "it-IT";

La propriété SpeechRecognitionLanguage attend une chaîne au format langue-paramètres régionaux.The SpeechRecognitionLanguage property expects a language-locale format string. Vous pouvez fournir n’importe quelle valeur figurant dans la colonne Paramètres régionaux dans la liste des paramètres régionaux/langues pris en charge.You can provide any value in the Locale column in the list of supported locales/languages.

Améliorer la justesse de la reconnaissanceImprove recognition accuracy

Les listes d’expressions permettent d’identifier des expressions connues dans les données audio, comme le nom d’une personne ou un lieu spécifique.Phrase Lists are used to identify known phrases in audio data, like a person's name or a specific location. En fournissant une liste d’expressions, vous améliorez le niveau de justesse de la reconnaissance vocale.By providing a list of phrases, you improve the accuracy of speech recognition.

Par exemple, si vous disposez d’une commande « Move to » et que parmi les destinations susceptibles d’être prononcées figurent « Ward », vous pouvez ajouter l’entrée « Move to Ward ».As an example, if you have a command "Move to" and a possible destination of "Ward" that may be spoken, you can add an entry of "Move to Ward". Ainsi, quand le contenu audio est reconnu, l’ajout de cette expression augmente la probabilité que « Move to Ward » sera reconnu et non « Move toward ».Adding a phrase will increase the probability that when the audio is recognized that "Move to Ward" will be recognized instead of "Move toward"

Il est possible d’ajouter des mots uniques ou des expressions entières à une liste d’expressions.Single words or complete phrases can be added to a Phrase List. Pendant le processus de reconnaissance, une entrée de la liste d’expressions est utilisée pour renforcer la reconnaissance des mots et des expressions de la liste, même lorsque les entrées apparaissent au milieu de l’énoncé.During recognition, an entry in a phrase list is used to boost recognition of the words and phrases in the list even when the entries appear in the middle of the utterance.

Important

La fonctionnalité Liste d’expressions est disponible pour les langues suivantes : en-US, de-DE, en-AU, en-CA, en-GB, es-ES, es-MX, fr-CA, fr-FR, it-IT, ja-JP, ko-KR, pt-BR, zh-CNThe Phrase List feature is available in the following languages: en-US, de-DE, en-AU, en-CA, en-GB, es-ES, es-MX, fr-CA, fr-FR, it-IT, ja-JP, ko-KR, pt-BR, zh-CN

Pour utiliser une liste d’expressions, commencez par créer un objet PhraseListGrammar, puis ajoutez des mots et des expressions spécifiques avec AddPhrase.To use a phrase list, first create a PhraseListGrammar object, then add specific words and phrases with AddPhrase.

Les modifications apportées à PhraseListGrammar prennent effet lors de la reconnaissance suivante ou après une reconnexion au service Speech.Any changes to PhraseListGrammar take effect on the next recognition or after a reconnection to the Speech service.

var phraseList = PhraseListGrammar.FromRecognizer(recognizer);
phraseList.AddPhrase("Supercalifragilisticexpialidocious");

Si vous devez effacer votre liste d’expressions :If you need to clear your phrase list:

phraseList.Clear();

Autres options pour améliorer la justesse de la reconnaissanceOther options to improve recognition accuracy

Les listes d’expressions ne sont qu’une option parmi d’autres permettant d’améliorer la justesse de la reconnaissance.Phrase lists are only one option to improve recognition accuracy. Vous pouvez également :You can also:

L’une des principales fonctionnalités du service de reconnaissance vocale est la possibilité de reconnaître et de transcrire la voix humaine (souvent appelée « reconnaissance vocale »).One of the core features of the Speech service is the ability to recognize and transcribe human speech (often referred to as speech-to-text). Dans ce guide de démarrage rapide, vous allez apprendre à utiliser le SDK de reconnaissance vocale dans vos applications et produits afin d’effectuer une conversion de voix en texte de qualité.In this quickstart, you learn how to use the Speech SDK in your apps and products to perform high-quality speech-to-text conversion.

Passer aux exemples sur GitHubSkip to samples on GitHub

Si vous souhaitez passer directement à l’exemple de code, consultez les exemples de démarrage rapide C++ sur GitHub.If you want to skip straight to sample code, see the C++ quickstart samples on GitHub.

PrérequisPrerequisites

Cet article part du principe que vous disposez d’un compte Azure et d’un abonnement au service Speech.This article assumes that you have an Azure account and Speech service subscription. Si vous n’avez pas de compte et d’abonnement, essayez le service Speech gratuitement.If you don't have an account and subscription, try the Speech service for free.

Installer le Kit de développement logiciel (SDK) SpeechInstall the Speech SDK

Avant de pouvoir faire quoi que ce soit, vous devez installer le SDK Speech.Before you can do anything, you'll need to install the Speech SDK. Suivez les instructions ci-dessous, en fonction de votre plateforme :Depending on your platform, use the following instructions:

Créer une configuration SpeechCreate a speech configuration

Pour appeler le service Speech à l’aide du SDK Speech, vous devez créer une classe SpeechConfig.To call the Speech service using the Speech SDK, you need to create a SpeechConfig. Celle-ci comprend des informations sur votre abonnement, telles que votre clé et la région, le point de terminaison, l’hôte ou le jeton d’autorisation associés.This class includes information about your subscription, like your key and associated region, endpoint, host, or authorization token. Créez une SpeechConfig à l’aide de votre clé et de votre région.Create a SpeechConfig by using your key and region. Consultez la page Rechercher les clés et la région pour rechercher votre paire clé-région.See the Find keys and region page to find your key-region pair.

using namespace std;
using namespace Microsoft::CognitiveServices::Speech;

auto config = SpeechConfig::FromSubscription("<paste-your-subscription-key>", "<paste-your-region>");

Vous pouvez initialiser une SpeechConfig de plusieurs autres façons :There are a few other ways that you can initialize a SpeechConfig:

  • Avec un point de terminaison : transmettez un point de terminaison de service Speech.With an endpoint: pass in a Speech service endpoint. Une clé ou un jeton d’autorisation est facultatif.A key or authorization token is optional.
  • Avec un hôte : transmettez une adresse d’hôte.With a host: pass in a host address. Une clé ou un jeton d’autorisation est facultatif.A key or authorization token is optional.
  • Avec un jeton d’autorisation : transmettez un jeton d’autorisation et la région associée.With an authorization token: pass in an authorization token and the associated region.

Notes

Quand vous procédez à une reconnaissance vocale, une synthèse vocale, une traduction ou une reconnaissance intentionnelle, vous devez toujours créer une configuration.Regardless of whether you're performing speech recognition, speech synthesis, translation, or intent recognition, you'll always create a configuration.

Reconnaître la voix provenant d’un microphoneRecognize from microphone

Pour reconnaître la voix à l’aide du microphone de votre appareil, créez une AudioConfig en utilisant FromDefaultMicrophoneInput().To recognize speech using your device microphone, create an AudioConfig using FromDefaultMicrophoneInput(). Initialisez ensuite un SpeechRecognizer, en transmettant vos audioConfig et config.Then initialize a SpeechRecognizer, passing your audioConfig and config.

using namespace Microsoft::CognitiveServices::Speech::Audio;

auto audioConfig = AudioConfig::FromDefaultMicrophoneInput();
auto recognizer = SpeechRecognizer::FromConfig(config, audioConfig);

cout << "Speak into your microphone." << std::endl;
auto result = recognizer->RecognizeOnceAsync().get();
cout << "RECOGNIZED: Text=" << result->Text << std::endl;

Si vous souhaitez utiliser un périphérique d’entrée audio spécifique, vous devez spécifier son ID dans l’AudioConfig. Découvrez comment obtenir l’ID de votre périphérique d’entrée audio.Learn how to get the device ID for your audio input device.

Reconnaître la voix à partir d’un fichierRecognize from file

Si vous souhaitez reconnaître la voix à partir d’un fichier audio au lieu d’utiliser un microphone, vous devez quand même créer un objet AudioConfig.If you want to recognize speech from an audio file instead of using a microphone, you still need to create an AudioConfig. Toutefois, quand vous créez l’objet AudioConfig, au lieu d’appeler FromDefaultMicrophoneInput(), vous appelez FromWavFileInput() et transmettez le chemin du fichier.However, when you create the AudioConfig, instead of calling FromDefaultMicrophoneInput(), you call FromWavFileInput() and pass the file path.

using namespace Microsoft::CognitiveServices::Speech::Audio;

auto audioInput = AudioConfig::FromWavFileInput("YourAudioFile.wav");
auto recognizer = SpeechRecognizer::FromConfig(config, audioInput);

auto result = recognizer->RecognizeOnceAsync().get();
cout << "RECOGNIZED: Text=" << result->Text << std::endl;

Reconnaissance vocaleRecognize speech

La classe SpeechRecognizer pour le SDK Speech pour C++ expose quelques méthodes que vous pouvez utiliser pour la reconnaissance vocale.The Recognizer class for the Speech SDK for C++ exposes a few methods that you can use for speech recognition.

Reconnaissance uniqueSingle-shot recognition

La reconnaissance unique reconnaît de manière asynchrone un énoncé unique.Single-shot recognition asynchronously recognizes a single utterance. La fin d’un énoncé unique est déterminée par la détection du silence à la fin, ou après que 15 secondes d’audio ont été traitées.The end of a single utterance is determined by listening for silence at the end or until a maximum of 15 seconds of audio is processed. Voici un exemple de reconnaissance asynchrone unique à l’aide de RecognizeOnceAsync :Here's an example of asynchronous single-shot recognition using RecognizeOnceAsync:

auto result = recognizer->RecognizeOnceAsync().get();

Vous devrez écrire du code pour gérer le résultat.You'll need to write some code to handle the result. Cet exemple évalue result->Reason :This sample evaluates the result->Reason:

  • Imprime le résultat de la reconnaissance : ResultReason::RecognizedSpeechPrints the recognition result: ResultReason::RecognizedSpeech
  • S’il n’existe aucune correspondance de reconnaissance, informez l’utilisateur : ResultReason::NoMatchIf there is no recognition match, inform the user: ResultReason::NoMatch
  • Si une erreur se produit, imprimez le message d’erreur : ResultReason::CanceledIf an error is encountered, print the error message: ResultReason::Canceled
switch (result->Reason)
{
    case ResultReason::RecognizedSpeech:
        cout << "We recognized: " << result->Text << std::endl;
        break;
    case ResultReason::NoMatch:
        cout << "NOMATCH: Speech could not be recognized." << std::endl;
        break;
    case ResultReason::Canceled:
        {
            auto cancellation = CancellationDetails::FromResult(result);
            cout << "CANCELED: Reason=" << (int)cancellation->Reason << std::endl;
    
            if (cancellation->Reason == CancellationReason::Error) {
                cout << "CANCELED: ErrorCode= " << (int)cancellation->ErrorCode << std::endl;
                cout << "CANCELED: ErrorDetails=" << cancellation->ErrorDetails << std::endl;
                cout << "CANCELED: Did you update the subscription info?" << std::endl;
            }
        }
        break;
    default:
        break;
}

Reconnaissance continueContinuous recognition

La reconnaissance continue est un peu plus complexe que la reconnaissance unique.Continuous recognition is a bit more involved than single-shot recognition. Pour obtenir les résultats de la reconnaissance, vous devez vous abonner aux événements Recognizing, Recognized et Canceled.It requires you to subscribe to the Recognizing, Recognized, and Canceled events to get the recognition results. Pour arrêter la reconnaissance, vous devez appeler StopContinuousRecognitionAsync.To stop recognition, you must call StopContinuousRecognitionAsync. Voici un exemple de reconnaissance continue sur un fichier d’entrée audio.Here's an example of how continuous recognition is performed on an audio input file.

Commençons par définir l’entrée et initialiser un SpeechRecognizer :Let's start by defining the input and initializing a SpeechRecognizer:

auto audioInput = AudioConfig::FromWavFileInput("YourAudioFile.wav");
auto recognizer = SpeechRecognizer::FromConfig(config, audioInput);

Ensuite, nous allons créer une variable pour gérer l’état de la reconnaissance vocale.Next, let's create a variable to manage the state of speech recognition. Pour commencer, nous déclarons promise<void> parce qu’au début de la reconnaissance, nous pouvons supposer sans risque qu’elle n’est pas terminée.To start, we'll declare a promise<void>, since at the start of recognition we can safely assume that it's not finished.

promise<void> recognitionEnd;

Nous allons nous abonner aux événements envoyés à partir du SpeechRecognizer.We'll subscribe to the events sent from the SpeechRecognizer.

  • Recognizing : signal pour les événements contenant des résultats de reconnaissance intermédiaires.Recognizing: Signal for events containing intermediate recognition results.
  • Recognized : signal pour les événements contenant des résultats de reconnaissance finaux (indiquant une tentative de reconnaissance réussie).Recognized: Signal for events containing final recognition results (indicating a successful recognition attempt).
  • SessionStopped : signal pour les événements indiquant la fin d’une session de reconnaissance (opération).SessionStopped: Signal for events indicating the end of a recognition session (operation).
  • Canceled : signal pour les événements contenant des résultats de reconnaissance annulés (indiquant une tentative de reconnaissance qui a été annulée suite une requête d’annulation directe ou à un échec de transport ou de protocole).Canceled: Signal for events containing canceled recognition results (indicating a recognition attempt that was canceled as a result or a direct cancellation request or, alternatively, a transport or protocol failure).
recognizer->Recognizing.Connect([](const SpeechRecognitionEventArgs& e)
    {
        cout << "Recognizing:" << e.Result->Text << std::endl;
    });

recognizer->Recognized.Connect([](const SpeechRecognitionEventArgs& e)
    {
        if (e.Result->Reason == ResultReason::RecognizedSpeech)
        {
            cout << "RECOGNIZED: Text=" << e.Result->Text 
                 << " (text could not be translated)" << std::endl;
        }
        else if (e.Result->Reason == ResultReason::NoMatch)
        {
            cout << "NOMATCH: Speech could not be recognized." << std::endl;
        }
    });

recognizer->Canceled.Connect([&recognitionEnd](const SpeechRecognitionCanceledEventArgs& e)
    {
        cout << "CANCELED: Reason=" << (int)e.Reason << std::endl;
        if (e.Reason == CancellationReason::Error)
        {
            cout << "CANCELED: ErrorCode=" << (int)e.ErrorCode << "\n"
                 << "CANCELED: ErrorDetails=" << e.ErrorDetails << "\n"
                 << "CANCELED: Did you update the subscription info?" << std::endl;

            recognitionEnd.set_value(); // Notify to stop recognition.
        }
    });

recognizer->SessionStopped.Connect([&recognitionEnd](const SessionEventArgs& e)
    {
        cout << "Session stopped.";
        recognitionEnd.set_value(); // Notify to stop recognition.
    });

Tout étant configuré, nous pouvons maintenant appeler StopContinuousRecognitionAsync.With everything set up, we can call StopContinuousRecognitionAsync.

// Starts continuous recognition. Uses StopContinuousRecognitionAsync() to stop recognition.
recognizer->StartContinuousRecognitionAsync().get();

// Waits for recognition end.
recognitionEnd.get_future().get();

// Stops recognition.
recognizer->StopContinuousRecognitionAsync().get();

Mode de dictéeDictation mode

Quand vous utilisez la reconnaissance continue, vous pouvez activer le traitement de la dictée en utilisant la fonction « enable dictation » correspondante.When using continuous recognition, you can enable dictation processing by using the corresponding "enable dictation" function. Dans ce mode, l’instance de configuration vocale interprète les descriptions verbales de structures de phrase comme la ponctuation.This mode will cause the speech config instance to interpret word descriptions of sentence structures such as punctuation. Par exemple, l’énoncé « Habitez-vous en ville point d’interrogation » donne le texte « Habitez-vous en ville ? ».For example, the utterance "Do you live in town question mark" would be interpreted as the text "Do you live in town?".

Pour activer le mode dictée, utilisez la méthode EnableDictation sur votre SpeechConfig.To enable dictation mode, use the EnableDictation method on your SpeechConfig.

config->EnableDictation();

Changer la langue sourceChange source language

Une tâche courante pour la reconnaissance vocale consiste à spécifier la langue d’entrée (ou source).A common task for speech recognition is specifying the input (or source) language. Examinons comment choisir l’allemand comme langue d’entrée.Let's take a look at how you would change the input language to German. Dans votre code, recherchez votre SpeechConfig, puis ajoutez cette ligne directement en dessous.In your code, find your SpeechConfig, then add this line directly below it.

config->SetSpeechRecognitionLanguage("de-DE");

SetSpeechRecognitionLanguage est un paramètre qui prend une chaîne comme argument.SetSpeechRecognitionLanguage is a parameter that takes a string as an argument. Vous pouvez fournir n’importe quelle valeur figurant dans la liste des paramètres régionaux/langues pris en charge.You can provide any value in the list of supported locales/languages.

Améliorer la justesse de la reconnaissanceImprove recognition accuracy

Les listes d’expressions permettent d’identifier des expressions connues dans les données audio, comme le nom d’une personne ou un lieu spécifique.Phrase Lists are used to identify known phrases in audio data, like a person's name or a specific location. En fournissant une liste d’expressions, vous améliorez le niveau de justesse de la reconnaissance vocale.By providing a list of phrases, you improve the accuracy of speech recognition.

Par exemple, si vous disposez d’une commande « Move to » et que parmi les destinations susceptibles d’être prononcées figurent « Ward », vous pouvez ajouter l’entrée « Move to Ward ».As an example, if you have a command "Move to" and a possible destination of "Ward" that may be spoken, you can add an entry of "Move to Ward". Ainsi, quand le contenu audio est reconnu, l’ajout de cette expression augmente la probabilité que « Move to Ward » sera reconnu et non « Move toward ».Adding a phrase will increase the probability that when the audio is recognized that "Move to Ward" will be recognized instead of "Move toward"

Il est possible d’ajouter des mots uniques ou des expressions entières à une liste d’expressions.Single words or complete phrases can be added to a Phrase List. Pendant le processus de reconnaissance, une entrée de la liste d’expressions est utilisée pour renforcer la reconnaissance des mots et des expressions de la liste, même lorsque les entrées apparaissent au milieu de l’énoncé.During recognition, an entry in a phrase list is used to boost recognition of the words and phrases in the list even when the entries appear in the middle of the utterance.

Important

La fonctionnalité Liste d’expressions est disponible pour les langues suivantes : en-US, de-DE, en-AU, en-CA, en-GB, es-ES, es-MX, fr-CA, fr-FR, it-IT, ja-JP, ko-KR, pt-BR, zh-CNThe Phrase List feature is available in the following languages: en-US, de-DE, en-AU, en-CA, en-GB, es-ES, es-MX, fr-CA, fr-FR, it-IT, ja-JP, ko-KR, pt-BR, zh-CN

Pour utiliser une liste d’expressions, commencez par créer un objet PhraseListGrammar, puis ajoutez des mots et des expressions spécifiques avec AddPhrase.To use a phrase list, first create a PhraseListGrammar object, then add specific words and phrases with AddPhrase.

Les modifications apportées à PhraseListGrammar prennent effet lors de la reconnaissance suivante ou après une reconnexion au service Speech.Any changes to PhraseListGrammar take effect on the next recognition or after a reconnection to the Speech service.

auto phraseListGrammar = PhraseListGrammar::FromRecognizer(recognizer);
phraseListGrammar->AddPhrase("Supercalifragilisticexpialidocious");

Si vous devez effacer votre liste d’expressions :If you need to clear your phrase list:

phraseListGrammar->Clear();

Autres options pour améliorer la justesse de la reconnaissanceOther options to improve recognition accuracy

Les listes d’expressions ne sont qu’une option parmi d’autres permettant d’améliorer la justesse de la reconnaissance.Phrase lists are only one option to improve recognition accuracy. Vous pouvez également :You can also:

L’une des principales fonctionnalités du service de reconnaissance vocale est la possibilité de reconnaître et de transcrire la voix humaine (souvent appelée « reconnaissance vocale »).One of the core features of the Speech service is the ability to recognize and transcribe human speech (often referred to as speech-to-text). Dans ce guide de démarrage rapide, vous allez apprendre à utiliser le SDK de reconnaissance vocale dans vos applications et produits afin d’effectuer une conversion de voix en texte de qualité.In this quickstart, you learn how to use the Speech SDK in your apps and products to perform high-quality speech-to-text conversion.

Passer aux exemples sur GitHubSkip to samples on GitHub

Si vous souhaitez passer directement à l’exemple de code, consultez les exemples de démarrage rapide Go sur GitHub.If you want to skip straight to sample code, see the Go quickstart samples on GitHub.

PrérequisPrerequisites

Cet article part du principe que vous disposez d’un compte Azure et d’un abonnement au service Speech.This article assumes that you have an Azure account and Speech service subscription. Si vous n’avez pas de compte et d’abonnement, essayez le service Speech gratuitement.If you don't have an account and subscription, try the Speech service for free.

Installer le Kit de développement logiciel (SDK) SpeechInstall the Speech SDK

Avant de pouvoir faire quoi que ce soit, vous devez installer le kit SDK Speech pour Go.Before you can do anything, you'll need to install the Speech SDK for Go.

Reconnaissance vocale à partir du microphoneSpeech-to-text from microphone

Utilisez l’exemple de code suivant pour exécuter la reconnaissance vocale à partir de votre microphone d’appareil par défaut.Use the following code sample to run speech recognition from your default device microphone. Remplacez les variables subscription et region par vos clés d’abonnement et de région.Replace the variables subscription and region with your subscription and region keys. L’exécution du script démarre une session de reconnaissance sur votre microphone par défaut et le texte de sortie.Running the script will start a recognition session on your default microphone and output text.

package main

import (
    "bufio"
    "fmt"
    "os"

    "github.com/Microsoft/cognitive-services-speech-sdk-go/audio"
    "github.com/Microsoft/cognitive-services-speech-sdk-go/speech"
)

func sessionStartedHandler(event speech.SessionEventArgs) {
    defer event.Close()
    fmt.Println("Session Started (ID=", event.SessionID, ")")
}

func sessionStoppedHandler(event speech.SessionEventArgs) {
    defer event.Close()
    fmt.Println("Session Stopped (ID=", event.SessionID, ")")
}

func recognizingHandler(event speech.SpeechRecognitionEventArgs) {
    defer event.Close()
    fmt.Println("Recognizing:", event.Result.Text)
}

func recognizedHandler(event speech.SpeechRecognitionEventArgs) {
    defer event.Close()
    fmt.Println("Recognized:", event.Result.Text)
}

func cancelledHandler(event speech.SpeechRecognitionCanceledEventArgs) {
    defer event.Close()
    fmt.Println("Received a cancellation: ", event.ErrorDetails)
}

func main() {
    subscription :=  "YOUR_SUBSCRIPTION_KEY"
    region := "YOUR_SUBSCRIPTIONKEY_REGION"

    audioConfig, err := audio.NewAudioConfigFromDefaultMicrophoneInput()
    if err != nil {
        fmt.Println("Got an error: ", err)
        return
    }
    defer audioConfig.Close()
    config, err := speech.NewSpeechConfigFromSubscription(subscription, region)
    if err != nil {
        fmt.Println("Got an error: ", err)
        return
    }
    defer config.Close()
    speechRecognizer, err := speech.NewSpeechRecognizerFromConfig(config, audioConfig)
    if err != nil {
        fmt.Println("Got an error: ", err)
        return
    }
    defer speechRecognizer.Close()
    speechRecognizer.SessionStarted(sessionStartedHandler)
    speechRecognizer.SessionStopped(sessionStoppedHandler)
    speechRecognizer.Recognizing(recognizingHandler)
    speechRecognizer.Recognized(recognizedHandler)
    speechRecognizer.Canceled(cancelledHandler)
    speechRecognizer.StartContinuousRecognitionAsync()
    defer speechRecognizer.StopContinuousRecognitionAsync()
    bufio.NewReader(os.Stdin).ReadBytes('\n')
}

Exécutez les commandes suivantes pour créer un fichier go.mod lié aux composants hébergés sur GitHub.Run the following commands to create a go.mod file that links to components hosted on Github.

go mod init quickstart
go get github.com/Microsoft/cognitive-services-speech-sdk-go

Maintenant, générez et exécutez le code.Now build and run the code.

go build
go run quickstart

Consultez la documentation de référence pour obtenir des informations détaillées sur les classes SpeechConfig et SpeechRecognizer.See the reference docs for detailed information on the SpeechConfig and SpeechRecognizer classes.

Reconnaissance vocale à partir d’un fichier audioSpeech-to-text from audio file

Utilisez l’exemple suivant pour exécuter la reconnaissance vocale à partir d’un fichier audio.Use the following sample to run speech recognition from an audio file. Remplacez les variables subscription et region par vos clés d’abonnement et de région.Replace the variables subscription and region with your subscription and region keys. Remplacez également la variable file par un chemin vers un fichier .wav.Additionally, replace the variable file with a path to a .wav file. L’exécution du script effectue la reconnaissance vocale à partir du fichier et fournit en sortie le texte obtenu.Running the script will recognize speech from the file, and output the text result.

package main

import (
    "fmt"
    "time"

    "github.com/Microsoft/cognitive-services-speech-sdk-go/audio"
    "github.com/Microsoft/cognitive-services-speech-sdk-go/speech"
)

func main() {
    subscription :=  "YOUR_SUBSCRIPTION_KEY"
    region := "YOUR_SUBSCRIPTIONKEY_REGION"
    file := "path/to/file.wav"

    audioConfig, err := audio.NewAudioConfigFromWavFileInput(file)
    if err != nil {
        fmt.Println("Got an error: ", err)
        return
    }
    defer audioConfig.Close()
    config, err := speech.NewSpeechConfigFromSubscription(subscription, region)
    if err != nil {
        fmt.Println("Got an error: ", err)
        return
    }
    defer config.Close()
    speechRecognizer, err := speech.NewSpeechRecognizerFromConfig(config, audioConfig)
    if err != nil {
        fmt.Println("Got an error: ", err)
        return
    }
    defer speechRecognizer.Close()
    speechRecognizer.SessionStarted(func(event speech.SessionEventArgs) {
        defer event.Close()
        fmt.Println("Session Started (ID=", event.SessionID, ")")
    })
    speechRecognizer.SessionStopped(func(event speech.SessionEventArgs) {
        defer event.Close()
        fmt.Println("Session Stopped (ID=", event.SessionID, ")")
    })

    task := speechRecognizer.RecognizeOnceAsync()
    var outcome speech.SpeechRecognitionOutcome
    select {
    case outcome = <-task:
    case <-time.After(5 * time.Second):
        fmt.Println("Timed out")
        return
    }
    defer outcome.Close()
    if outcome.Error != nil {
        fmt.Println("Got an error: ", outcome.Error)
    }
    fmt.Println("Got a recognition!")
    fmt.Println(outcome.Result.Text)
}

Exécutez les commandes suivantes pour créer un fichier go.mod lié aux composants hébergés sur GitHub.Run the following commands to create a go.mod file that links to components hosted on Github.

go mod init quickstart
go get github.com/Microsoft/cognitive-services-speech-sdk-go

Maintenant, générez et exécutez le code.Now build and run the code.

go build
go run quickstart

Consultez la documentation de référence pour obtenir des informations détaillées sur les classes SpeechConfig et SpeechRecognizer.See the reference docs for detailed information on the SpeechConfig and SpeechRecognizer classes.

L’une des principales fonctionnalités du service de reconnaissance vocale est la possibilité de reconnaître et de transcrire la voix humaine (souvent appelée « reconnaissance vocale »).One of the core features of the Speech service is the ability to recognize and transcribe human speech (often referred to as speech-to-text). Dans ce guide de démarrage rapide, vous allez apprendre à utiliser le SDK de reconnaissance vocale dans vos applications et produits afin d’effectuer une conversion de voix en texte de qualité.In this quickstart, you learn how to use the Speech SDK in your apps and products to perform high-quality speech-to-text conversion.

Passer aux exemples sur GitHubSkip to samples on GitHub

Si vous souhaitez passer directement à l’exemple de code, consultez les exemples de démarrage rapide Java sur GitHub.If you want to skip straight to sample code, see the Java quickstart samples on GitHub.

PrérequisPrerequisites

Cet article part du principe que vous disposez d’un compte Azure et d’un abonnement au service Speech.This article assumes that you have an Azure account and Speech service subscription. Si vous n’avez pas de compte et d’abonnement, essayez le service Speech gratuitement.If you don't have an account and subscription, try the Speech service for free.

Installer le Kit de développement logiciel (SDK) SpeechInstall the Speech SDK

Avant de pouvoir faire quoi que ce soit, vous devez installer le SDK Speech.Before you can do anything, you'll need to install the Speech SDK. Suivez les instructions ci-dessous, en fonction de votre plateforme :Depending on your platform, use the following instructions:

Créer une configuration SpeechCreate a speech configuration

Pour appeler le service Speech à l’aide du SDK Speech, vous devez créer une classe SpeechConfig.To call the Speech service using the Speech SDK, you need to create a SpeechConfig. Celle-ci comprend des informations sur votre abonnement, telles que votre clé et la région, le point de terminaison, l’hôte ou le jeton d’autorisation associés.This class includes information about your subscription, like your key and associated region, endpoint, host, or authorization token. Créez une SpeechConfig à l’aide de votre clé et de votre région.Create a SpeechConfig by using your key and region. Consultez la page Rechercher les clés et la région pour rechercher votre paire clé-région.See the Find keys and region page to find your key-region pair.

import com.microsoft.cognitiveservices.speech.*;
import com.microsoft.cognitiveservices.speech.audio.AudioConfig;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;

public class Program {
    public static void main(String[] args) throws InterruptedException, ExecutionException {
        SpeechConfig speechConfig = SpeechConfig.fromSubscription("<paste-your-subscription-key>", "<paste-your-region>");
    }
}

Vous pouvez initialiser une SpeechConfig de plusieurs autres façons :There are a few other ways that you can initialize a SpeechConfig:

  • Avec un point de terminaison : transmettez un point de terminaison de service Speech.With an endpoint: pass in a Speech service endpoint. Une clé ou un jeton d’autorisation est facultatif.A key or authorization token is optional.
  • Avec un hôte : transmettez une adresse d’hôte.With a host: pass in a host address. Une clé ou un jeton d’autorisation est facultatif.A key or authorization token is optional.
  • Avec un jeton d’autorisation : transmettez un jeton d’autorisation et la région associée.With an authorization token: pass in an authorization token and the associated region.

Notes

Quand vous procédez à une reconnaissance vocale, une synthèse vocale, une traduction ou une reconnaissance intentionnelle, vous devez toujours créer une configuration.Regardless of whether you're performing speech recognition, speech synthesis, translation, or intent recognition, you'll always create a configuration.

Reconnaître la voix provenant d’un microphoneRecognize from microphone

Pour reconnaître la voix à l’aide du microphone de votre appareil, créez une AudioConfig en utilisant fromDefaultMicrophoneInput().To recognize speech using your device microphone, create an AudioConfig using fromDefaultMicrophoneInput(). Initialisez ensuite un SpeechRecognizer, en transmettant vos audioConfig et config.Then initialize a SpeechRecognizer, passing your audioConfig and config.

import com.microsoft.cognitiveservices.speech.*;
import com.microsoft.cognitiveservices.speech.audio.AudioConfig;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;

public class Program {
    public static void main(String[] args) throws InterruptedException, ExecutionException {
        SpeechConfig speechConfig = SpeechConfig.fromSubscription("<paste-your-subscription-key>", "<paste-your-region>");
        fromMic(speechConfig);
    }

    public static void fromMic(SpeechConfig speechConfig) throws InterruptedException, ExecutionException {
        AudioConfig audioConfig = AudioConfig.fromDefaultMicrophoneInput();
        SpeechRecognizer recognizer = new SpeechRecognizer(speechConfig, audioConfig);

        System.out.println("Speak into your microphone.");
        Future<SpeechRecognitionResult> task = recognizer.recognizeOnceAsync();
        SpeechRecognitionResult result = task.get();
        System.out.println("RECOGNIZED: Text=" + result.getText());
    }
}

Si vous souhaitez utiliser un périphérique d’entrée audio spécifique, vous devez spécifier son ID dans l’AudioConfig. Découvrez comment obtenir l’ID de votre périphérique d’entrée audio.Learn how to get the device ID for your audio input device.

Reconnaître la voix à partir d’un fichierRecognize from file

Si vous souhaitez reconnaître la voix à partir d’un fichier audio au lieu d’utiliser un microphone, vous devez quand même créer un objet AudioConfig.If you want to recognize speech from an audio file instead of using a microphone, you still need to create an AudioConfig. Toutefois, quand vous créez l’objet AudioConfig, au lieu d’appeler fromDefaultMicrophoneInput(), appelez fromWavFileInput() et transmettez le chemin du fichier.However, when you create the AudioConfig, instead of calling fromDefaultMicrophoneInput(), call fromWavFileInput() and pass the file path.

import com.microsoft.cognitiveservices.speech.*;
import com.microsoft.cognitiveservices.speech.audio.AudioConfig;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;

public class Program {
    public static void main(String[] args) throws InterruptedException, ExecutionException {
        SpeechConfig speechConfig = SpeechConfig.fromSubscription("<paste-your-subscription-key>", "<paste-your-region>");
        fromFile(speechConfig);
    }

    public static void fromFile(SpeechConfig speechConfig) throws InterruptedException, ExecutionException {
        AudioConfig audioConfig = AudioConfig.fromWavFileInput("YourAudioFile.wav");
        SpeechRecognizer recognizer = new SpeechRecognizer(speechConfig, audioConfig);
        
        Future<SpeechRecognitionResult> task = recognizer.recognizeOnceAsync();
        SpeechRecognitionResult result = task.get();
        System.out.println("RECOGNIZED: Text=" + result.getText());
    }
}

Gestion des erreursError handling

Les exemples précédents récupèrent simplement le texte reconnu à l’aide de result.getText(), mais pour gérer les erreurs et autres réponses, vous devez écrire du code afin de gérer le résultat.The previous examples simply get the recognized text using result.getText(), but to handle errors and other responses, you'll need to write some code to handle the result. L’exemple suivant évalue result.getReason() et :The following example evaluates result.getReason() and:

  • Imprime le résultat de la reconnaissance : ResultReason.RecognizedSpeechPrints the recognition result: ResultReason.RecognizedSpeech
  • S’il n’existe aucune correspondance de reconnaissance, informez l’utilisateur : ResultReason.NoMatchIf there is no recognition match, inform the user: ResultReason.NoMatch
  • Si une erreur se produit, imprimez le message d’erreur : ResultReason.CanceledIf an error is encountered, print the error message: ResultReason.Canceled
switch (result.getReason()) {
    case ResultReason.RecognizedSpeech:
        System.out.println("We recognized: " + result.getText());
        exitCode = 0;
        break;
    case ResultReason.NoMatch:
        System.out.println("NOMATCH: Speech could not be recognized.");
        break;
    case ResultReason.Canceled: {
            CancellationDetails cancellation = CancellationDetails.fromResult(result);
            System.out.println("CANCELED: Reason=" + cancellation.getReason());

            if (cancellation.getReason() == CancellationReason.Error) {
                System.out.println("CANCELED: ErrorCode=" + cancellation.getErrorCode());
                System.out.println("CANCELED: ErrorDetails=" + cancellation.getErrorDetails());
                System.out.println("CANCELED: Did you update the subscription info?");
            }
        }
        break;
}

Reconnaissance continueContinuous recognition

Les exemples précédents utilisent la reconnaissance unique, qui reconnaît un énoncé unique.The previous examples use single-shot recognition, which recognizes a single utterance. La fin d’un énoncé unique est déterminée par la détection du silence à la fin, ou après que 15 secondes d’audio ont été traitées.The end of a single utterance is determined by listening for silence at the end or until a maximum of 15 seconds of audio is processed.

En revanche, la reconnaissance continue est utilisée quand vous souhaitez contrôler à quel moment arrêter la reconnaissance.In contrast, continuous recognition is used when you want to control when to stop recognizing. Pour obtenir les résultats de la reconnaissance, vous devez vous abonner aux événements recognizing, recognized et canceled.It requires you to subscribe to the recognizing, recognized, and canceled events to get the recognition results. Pour arrêter la reconnaissance, vous devez appeler stopContinuousRecognitionAsync.To stop recognition, you must call stopContinuousRecognitionAsync. Voici un exemple de reconnaissance continue sur un fichier d’entrée audio.Here's an example of how continuous recognition is performed on an audio input file.

Commençons par définir l’entrée et initialiser un SpeechRecognizer :Let's start by defining the input and initializing a SpeechRecognizer:

AudioConfig audioConfig = AudioConfig.fromWavFileInput("YourAudioFile.wav");
SpeechRecognizer recognizer = new SpeechRecognizer(config, audioConfig);

Ensuite, nous allons créer une variable pour gérer l’état de la reconnaissance vocale.Next, let's create a variable to manage the state of speech recognition. Pour commencer, nous allons déclarer un Semaphore au niveau de l’étendue de la classe.To start, we'll declare a Semaphore at the class scope.

private static Semaphore stopTranslationWithFileSemaphore;

Nous allons nous abonner aux événements envoyés à partir du SpeechRecognizer.We'll subscribe to the events sent from the SpeechRecognizer.

  • recognizing : signal pour les événements contenant des résultats de reconnaissance intermédiaires.recognizing: Signal for events containing intermediate recognition results.
  • recognized : signal pour les événements contenant des résultats de reconnaissance finaux (indiquant une tentative de reconnaissance réussie).recognized: Signal for events containing final recognition results (indicating a successful recognition attempt).
  • sessionStopped : signal pour les événements indiquant la fin d’une session de reconnaissance (opération).sessionStopped: Signal for events indicating the end of a recognition session (operation).
  • canceled : signal pour les événements contenant des résultats de reconnaissance annulés (indiquant une tentative de reconnaissance qui a été annulée suite une requête d’annulation directe ou à un échec de transport ou de protocole).canceled: Signal for events containing canceled recognition results (indicating a recognition attempt that was canceled as a result or a direct cancellation request or, alternatively, a transport or protocol failure).
// First initialize the semaphore.
stopTranslationWithFileSemaphore = new Semaphore(0);

recognizer.recognizing.addEventListener((s, e) -> {
    System.out.println("RECOGNIZING: Text=" + e.getResult().getText());
});

recognizer.recognized.addEventListener((s, e) -> {
    if (e.getResult().getReason() == ResultReason.RecognizedSpeech) {
        System.out.println("RECOGNIZED: Text=" + e.getResult().getText());
    }
    else if (e.getResult().getReason() == ResultReason.NoMatch) {
        System.out.println("NOMATCH: Speech could not be recognized.");
    }
});

recognizer.canceled.addEventListener((s, e) -> {
    System.out.println("CANCELED: Reason=" + e.getReason());

    if (e.getReason() == CancellationReason.Error) {
        System.out.println("CANCELED: ErrorCode=" + e.getErrorCode());
        System.out.println("CANCELED: ErrorDetails=" + e.getErrorDetails());
        System.out.println("CANCELED: Did you update the subscription info?");
    }

    stopTranslationWithFileSemaphore.release();
});

recognizer.sessionStopped.addEventListener((s, e) -> {
    System.out.println("\n    Session stopped event.");
    stopTranslationWithFileSemaphore.release();
});

Tout étant configuré, nous pouvons maintenant appeler startContinuousRecognitionAsync.With everything set up, we can call startContinuousRecognitionAsync.

// Starts continuous recognition. Uses StopContinuousRecognitionAsync() to stop recognition.
recognizer.startContinuousRecognitionAsync().get();

// Waits for completion.
stopTranslationWithFileSemaphore.acquire();

// Stops recognition.
recognizer.stopContinuousRecognitionAsync().get();

Mode de dictéeDictation mode

Quand vous utilisez la reconnaissance continue, vous pouvez activer le traitement de la dictée en utilisant la fonction « enable dictation » correspondante.When using continuous recognition, you can enable dictation processing by using the corresponding "enable dictation" function. Dans ce mode, l’instance de configuration vocale interprète les descriptions verbales de structures de phrase comme la ponctuation.This mode will cause the speech config instance to interpret word descriptions of sentence structures such as punctuation. Par exemple, l’énoncé « Habitez-vous en ville point d’interrogation » donne le texte « Habitez-vous en ville ? ».For example, the utterance "Do you live in town question mark" would be interpreted as the text "Do you live in town?".

Pour activer le mode dictée, utilisez la méthode enableDictation sur votre SpeechConfig.To enable dictation mode, use the enableDictation method on your SpeechConfig.

config.enableDictation();

Changer la langue sourceChange source language

Une tâche courante pour la reconnaissance vocale consiste à spécifier la langue d’entrée (ou source).A common task for speech recognition is specifying the input (or source) language. Examinons comment choisir le français comme langue d’entrée.Let's take a look at how you would change the input language to French. Dans votre code, recherchez votre SpeechConfig, puis ajoutez cette ligne directement en dessous.In your code, find your SpeechConfig, then add this line directly below it.

config.setSpeechRecognitionLanguage("fr-FR");

setSpeechRecognitionLanguage est un paramètre qui prend une chaîne comme argument.setSpeechRecognitionLanguage is a parameter that takes a string as an argument. Vous pouvez fournir n’importe quelle valeur figurant dans la liste des paramètres régionaux/langues pris en charge.You can provide any value in the list of supported locales/languages.

Améliorer la justesse de la reconnaissanceImprove recognition accuracy

Les listes d’expressions permettent d’identifier des expressions connues dans les données audio, comme le nom d’une personne ou un lieu spécifique.Phrase Lists are used to identify known phrases in audio data, like a person's name or a specific location. En fournissant une liste d’expressions, vous améliorez le niveau de justesse de la reconnaissance vocale.By providing a list of phrases, you improve the accuracy of speech recognition.

Par exemple, si vous disposez d’une commande « Move to » et que parmi les destinations susceptibles d’être prononcées figurent « Ward », vous pouvez ajouter l’entrée « Move to Ward ».As an example, if you have a command "Move to" and a possible destination of "Ward" that may be spoken, you can add an entry of "Move to Ward". Ainsi, quand le contenu audio est reconnu, l’ajout de cette expression augmente la probabilité que « Move to Ward » sera reconnu et non « Move toward ».Adding a phrase will increase the probability that when the audio is recognized that "Move to Ward" will be recognized instead of "Move toward"

Il est possible d’ajouter des mots uniques ou des expressions entières à une liste d’expressions.Single words or complete phrases can be added to a Phrase List. Pendant le processus de reconnaissance, une entrée de la liste d’expressions est utilisée pour renforcer la reconnaissance des mots et des expressions de la liste, même lorsque les entrées apparaissent au milieu de l’énoncé.During recognition, an entry in a phrase list is used to boost recognition of the words and phrases in the list even when the entries appear in the middle of the utterance.

Important

La fonctionnalité Liste d’expressions est disponible pour les langues suivantes : en-US, de-DE, en-AU, en-CA, en-GB, es-ES, es-MX, fr-CA, fr-FR, it-IT, ja-JP, ko-KR, pt-BR, zh-CNThe Phrase List feature is available in the following languages: en-US, de-DE, en-AU, en-CA, en-GB, es-ES, es-MX, fr-CA, fr-FR, it-IT, ja-JP, ko-KR, pt-BR, zh-CN

Pour utiliser une liste d’expressions, commencez par créer un objet PhraseListGrammar, puis ajoutez des mots et des expressions spécifiques avec AddPhrase.To use a phrase list, first create a PhraseListGrammar object, then add specific words and phrases with AddPhrase.

Les modifications apportées à PhraseListGrammar prennent effet lors de la reconnaissance suivante ou après une reconnexion au service Speech.Any changes to PhraseListGrammar take effect on the next recognition or after a reconnection to the Speech service.

PhraseListGrammar phraseList = PhraseListGrammar.fromRecognizer(recognizer);
phraseList.addPhrase("Supercalifragilisticexpialidocious");

Si vous devez effacer votre liste d’expressions :If you need to clear your phrase list:

phraseList.clear();

Autres options pour améliorer la justesse de la reconnaissanceOther options to improve recognition accuracy

Les listes d’expressions ne sont qu’une option parmi d’autres permettant d’améliorer la justesse de la reconnaissance.Phrase lists are only one option to improve recognition accuracy. Vous pouvez également :You can also:

L’une des principales fonctionnalités du service de reconnaissance vocale est la possibilité de reconnaître et de transcrire la voix humaine (souvent appelée « reconnaissance vocale »).One of the core features of the Speech service is the ability to recognize and transcribe human speech (often referred to as speech-to-text). Dans ce guide de démarrage rapide, vous allez apprendre à utiliser le SDK de reconnaissance vocale dans vos applications et produits afin d’effectuer une conversion de voix en texte de qualité.In this quickstart, you learn how to use the Speech SDK in your apps and products to perform high-quality speech-to-text conversion.

Passer aux exemples sur GitHubSkip to samples on GitHub

Si vous souhaitez passer directement à l’exemple de code, consultez les exemples de démarrage rapide JavaScript sur GitHub.If you want to skip straight to sample code, see the JavaScript quickstart samples on GitHub.

Vous pouvez également consulter l’exemple React pour apprendre à utiliser le SDK Speech dans un environnement basé sur un navigateur.Alternatively, see the React sample to learn how to use the Speech SDK in a browser-based environment.

PrérequisPrerequisites

Cet article part du principe que vous disposez d’un compte Azure et d’un abonnement au service Speech.This article assumes that you have an Azure account and Speech service subscription. Si vous n’avez pas de compte et d’abonnement, essayez le service Speech gratuitement.If you don't have an account and subscription, try the Speech service for free.

Installer le Kit de développement logiciel (SDK) SpeechInstall the Speech SDK

Avant de pouvoir faire quoi que ce soit, vous devez installer le SDK Speech pour Node.js.Before you can do anything, you need to install the Speech SDK for Node.js. Si vous voulez simplement le nom du package pour effectuer l’installation, exécutez npm install microsoft-cognitiveservices-speech-sdk.If you just want the package name to install, run npm install microsoft-cognitiveservices-speech-sdk. Pour obtenir des instructions d’installation, consultez l’article de démarrage rapide.For guided installation instructions, see the get started article.

Utilisez l’instruction require suivante pour importer le SDK.Use the following require statement to import the SDK.

const sdk = require("microsoft-cognitiveservices-speech-sdk");

Pour plus d’informations sur require, consultez la documentation sur require.For more information on require, see the require documentation.

Créer une configuration SpeechCreate a speech configuration

Pour appeler le service Speech à l’aide du SDK Speech, vous devez créer une classe SpeechConfig.To call the Speech service using the Speech SDK, you need to create a SpeechConfig. Celle-ci comprend des informations sur votre abonnement, telles que votre clé et la région, le point de terminaison, l’hôte ou le jeton d’autorisation associés.This class includes information about your subscription, like your key and associated region, endpoint, host, or authorization token. Créez une SpeechConfig à l’aide de votre clé et de votre région.Create a SpeechConfig using your key and region. Consultez la page Rechercher les clés et la région pour rechercher votre paire clé-région.See the Find keys and region page to find your key-region pair.

const speechConfig = sdk.SpeechConfig.fromSubscription("<paste-your-subscription-key>", "<paste-your-region>");

Vous pouvez initialiser une SpeechConfig de plusieurs autres façons :There are a few other ways that you can initialize a SpeechConfig:

  • Avec un point de terminaison : transmettez un point de terminaison de service Speech.With an endpoint: pass in a Speech service endpoint. Une clé ou un jeton d’autorisation est facultatif.A key or authorization token is optional.
  • Avec un hôte : transmettez une adresse d’hôte.With a host: pass in a host address. Une clé ou un jeton d’autorisation est facultatif.A key or authorization token is optional.
  • Avec un jeton d’autorisation : transmettez un jeton d’autorisation et la région associée.With an authorization token: pass in an authorization token and the associated region.

Notes

Quand vous procédez à une reconnaissance vocale, une synthèse vocale, une traduction ou une reconnaissance intentionnelle, vous devez toujours créer une configuration.Regardless of whether you're performing speech recognition, speech synthesis, translation, or intent recognition, you'll always create a configuration.

Reconnaître la voix provenant d’un microphone (navigateur uniquement)Recognize from microphone (Browser only)

La reconnaissance de la parole à partir d’un microphone n’est pas prise en charge dans Node.js. Elle est uniquement prise en charge dans un environnement JavaScript basé sur un navigateur.Recognizing speech from a microphone is not supported in Node.js, and is only supported in a browser-based JavaScript environment. Consultez l’exemple React sur GitHub pour voir l’implémentation de la reconnaissance vocale à partir d’un microphone.See the React sample on GitHub to see the speech-to-text from microphone implementation.

Notes

Si vous souhaitez utiliser un périphérique d’entrée audio spécifique, vous devez spécifier son ID dans l’AudioConfig.If you want to use a specific audio input device, you need to specify the device ID in the AudioConfig. Découvrez comment obtenir l’ID de votre périphérique d’entrée audio.Learn how to get the device ID for your audio input device.

Reconnaître la voix à partir d’un fichierRecognize from file

Pour reconnaître le message d’un fichier audio, créez un AudioConfig à l’aide de fromWavFileInput() qui accepte un objet Buffer.To recognize speech from an audio file, create an AudioConfig using fromWavFileInput() which accepts a Buffer object. Initialisez ensuite un SpeechRecognizer, en transmettant vos audioConfig et speechConfig.Then initialize a SpeechRecognizer, passing your audioConfig and speechConfig.

const fs = require('fs');
const sdk = require("microsoft-cognitiveservices-speech-sdk");
const speechConfig = sdk.SpeechConfig.fromSubscription("<paste-your-subscription-key>", "<paste-your-region>");

function fromFile() {
    let audioConfig = sdk.AudioConfig.fromWavFileInput(fs.readFileSync("YourAudioFile.wav"));
    let recognizer = new sdk.SpeechRecognizer(speechConfig, audioConfig);

    recognizer.recognizeOnceAsync(result => {
        console.log(`RECOGNIZED: Text=${result.text}`);
        recognizer.close();
    });
}
fromFile();

Reconnaître la voix à partir d’un flux en mémoireRecognize from in-memory stream

Dans de nombreux cas d’usage, il est probable que vos données audio proviennent d’un stockage d’objets blob, ou qu’elles soient déjà en mémoire comme un ArrayBuffer ou une structure de données brutes similaire.For many use-cases, it is likely your audio data will be coming from blob storage, or otherwise already be in-memory as an ArrayBuffer or similar raw data structure. Le code suivant :The following code:

  • crée un flux d’envoi (push) à l’aide de createPushStream() ;Creates a push stream using createPushStream().
  • lit un fichier .wav à l’aide d’un fs.createReadStream à des fins de démonstration, mais si vous avez déjà des données audio dans un ArrayBuffer, vous pouvez passer directement à l’écriture du contenu dans le flux d’entrée ;Reads a .wav file using fs.createReadStream for demonstration purposes, but if you already have audio data in an ArrayBuffer, you can skip directly to writing the content to the input stream.
  • crée une configuration audio à l’aide du flux d’envoi (push).Creates an audio config using the push stream.
const fs = require('fs');
const sdk = require("microsoft-cognitiveservices-speech-sdk");
const speechConfig = sdk.SpeechConfig.fromSubscription("<paste-your-subscription-key>", "<paste-your-region>");

function fromStream() {
    let pushStream = sdk.AudioInputStream.createPushStream();

    fs.createReadStream("YourAudioFile.wav").on('data', function(arrayBuffer) {
        pushStream.write(arrayBuffer.slice());
    }).on('end', function() {
        pushStream.close();
    });
 
    let audioConfig = sdk.AudioConfig.fromStreamInput(pushStream);
    let recognizer = new sdk.SpeechRecognizer(speechConfig, audioConfig);
    recognizer.recognizeOnceAsync(result => {
        console.log(`RECOGNIZED: Text=${result.text}`);
        recognizer.close();
    });
}
fromStream();

L’utilisation d’un flux d’envoi comme entrée suppose que les données audio sont au format PCM brut (par exemple, les en-têtes sont ignorés).Using a push stream as input assumes that the audio data is a raw PCM, e.g. skipping any headers. L’API fonctionne toujours dans certains cas si l’en-tête n’a pas été ignoré, mais pour obtenir les meilleurs résultats, envisagez d’implémenter une logique permettant de lire les en-têtes afin que fs démarre au début des données audio.The API will still work in certain cases if the header has not been skipped, but for the best results consider implementing logic to read off the headers so the fs starts at the start of the audio data.

Gestion des erreursError handling

Les exemples précédents récupèrent simplement le texte reconnu de result.text, mais pour gérer les erreurs et autres réponses, vous devez écrire du code afin de gérer le résultat.The previous examples simply get the recognized text from result.text, but to handle errors and other responses, you'll need to write some code to handle the result. Le code suivant évalue la propriété result.reason et :The following code evaluates the result.reason property and:

  • Imprime le résultat de la reconnaissance : ResultReason.RecognizedSpeechPrints the recognition result: ResultReason.RecognizedSpeech
  • S’il n’existe aucune correspondance de reconnaissance, informez l’utilisateur : ResultReason.NoMatchIf there is no recognition match, inform the user: ResultReason.NoMatch
  • Si une erreur se produit, imprimez le message d’erreur : ResultReason.CanceledIf an error is encountered, print the error message: ResultReason.Canceled
switch (result.reason) {
    case ResultReason.RecognizedSpeech:
        console.log(`RECOGNIZED: Text=${result.text}`);
        break;
    case ResultReason.NoMatch:
        console.log("NOMATCH: Speech could not be recognized.");
        break;
    case ResultReason.Canceled:
        const cancellation = CancellationDetails.fromResult(result);
        console.log(`CANCELED: Reason=${cancellation.reason}`);

        if (cancellation.reason == CancellationReason.Error) {
            console.log(`CANCELED: ErrorCode=${cancellation.ErrorCode}`);
            console.log(`CANCELED: ErrorDetails=${cancellation.errorDetails}`);
            console.log("CANCELED: Did you update the subscription info?");
        }
        break;
    }

Reconnaissance continueContinuous recognition

Les exemples précédents utilisent la reconnaissance unique, qui reconnaît un énoncé unique.The previous examples use single-shot recognition, which recognizes a single utterance. La fin d’un énoncé unique est déterminée par la détection du silence à la fin, ou après que 15 secondes d’audio ont été traitées.The end of a single utterance is determined by listening for silence at the end or until a maximum of 15 seconds of audio is processed.

En revanche, la reconnaissance continue est utilisée quand vous souhaitez contrôler à quel moment arrêter la reconnaissance.In contrast, continuous recognition is used when you want to control when to stop recognizing. Pour obtenir les résultats de la reconnaissance, vous devez vous abonner aux événements Recognizing, Recognized et Canceled.It requires you to subscribe to the Recognizing, Recognized, and Canceled events to get the recognition results. Pour arrêter la reconnaissance, vous devez appeler stopContinuousRecognitionAsync.To stop recognition, you must call stopContinuousRecognitionAsync. Voici un exemple de reconnaissance continue sur un fichier d’entrée audio.Here's an example of how continuous recognition is performed on an audio input file.

Commencez par définir l’entrée et initialiser un SpeechRecognizer :Start by defining the input and initializing a SpeechRecognizer:

const recognizer = new sdk.SpeechRecognizer(speechConfig, audioConfig);

Ensuite, abonnez-vous aux événements envoyés à partir du SpeechRecognizer.Next, subscribe to the events sent from the SpeechRecognizer.

  • recognizing : signal pour les événements contenant des résultats de reconnaissance intermédiaires.recognizing: Signal for events containing intermediate recognition results.
  • recognized : signal pour les événements contenant des résultats de reconnaissance finaux (indiquant une tentative de reconnaissance réussie).recognized: Signal for events containing final recognition results (indicating a successful recognition attempt).
  • sessionStopped : signal pour les événements indiquant la fin d’une session de reconnaissance (opération).sessionStopped: Signal for events indicating the end of a recognition session (operation).
  • canceled : signal pour les événements contenant des résultats de reconnaissance annulés (indiquant une tentative de reconnaissance qui a été annulée suite une requête d’annulation directe ou à un échec de transport ou de protocole).canceled: Signal for events containing canceled recognition results (indicating a recognition attempt that was canceled as a result or a direct cancellation request or, alternatively, a transport or protocol failure).
recognizer.recognizing = (s, e) => {
    console.log(`RECOGNIZING: Text=${e.result.text}`);
};

recognizer.recognized = (s, e) => {
    if (e.result.reason == ResultReason.RecognizedSpeech) {
        console.log(`RECOGNIZED: Text=${e.result.text}`);
    }
    else if (e.result.reason == ResultReason.NoMatch) {
        console.log("NOMATCH: Speech could not be recognized.");
    }
};

recognizer.canceled = (s, e) => {
    console.log(`CANCELED: Reason=${e.reason}`);

    if (e.reason == CancellationReason.Error) {
        console.log(`"CANCELED: ErrorCode=${e.errorCode}`);
        console.log(`"CANCELED: ErrorDetails=${e.errorDetails}`);
        console.log("CANCELED: Did you update the subscription info?");
    }

    recognizer.stopContinuousRecognitionAsync();
};

recognizer.sessionStopped = (s, e) => {
    console.log("\n    Session stopped event.");
    recognizer.stopContinuousRecognitionAsync();
};

Quand tout est configuré, appelez startContinuousRecognitionAsync pour commencer la reconnaissance.With everything set up, call startContinuousRecognitionAsync to start recognizing.

recognizer.startContinuousRecognitionAsync();

// make the following call at some point to stop recognition.
// recognizer.StopContinuousRecognitionAsync();

Mode de dictéeDictation mode

Quand vous utilisez la reconnaissance continue, vous pouvez activer le traitement de la dictée en utilisant la fonction « enable dictation » correspondante.When using continuous recognition, you can enable dictation processing by using the corresponding "enable dictation" function. Dans ce mode, l’instance de configuration vocale interprète les descriptions verbales de structures de phrase comme la ponctuation.This mode will cause the speech config instance to interpret word descriptions of sentence structures such as punctuation. Par exemple, l’énoncé « Habitez-vous en ville point d’interrogation » donne le texte « Habitez-vous en ville ? ».For example, the utterance "Do you live in town question mark" would be interpreted as the text "Do you live in town?".

Pour activer le mode dictée, utilisez la méthode enableDictation sur votre SpeechConfig.To enable dictation mode, use the enableDictation method on your SpeechConfig.

speechConfig.enableDictation();

Changer la langue sourceChange source language

Une tâche courante pour la reconnaissance vocale consiste à spécifier la langue d’entrée (ou source).A common task for speech recognition is specifying the input (or source) language. Examinons comment choisir l’italien comme langue d’entrée.Let's take a look at how you would change the input language to Italian. Dans votre code, recherchez votre SpeechConfig, puis ajoutez cette ligne directement en dessous.In your code, find your SpeechConfig, then add this line directly below it.

speechConfig.speechRecognitionLanguage = "it-IT";

La propriété speechRecognitionLanguage attend une chaîne au format langue-paramètres régionaux.The speechRecognitionLanguage property expects a language-locale format string. Vous pouvez fournir n’importe quelle valeur figurant dans la colonne Paramètres régionaux dans la liste des paramètres régionaux/langues pris en charge.You can provide any value in the Locale column in the list of supported locales/languages.

Améliorer la justesse de la reconnaissanceImprove recognition accuracy

Les listes d’expressions permettent d’identifier des expressions connues dans les données audio, comme le nom d’une personne ou un lieu spécifique.Phrase Lists are used to identify known phrases in audio data, like a person's name or a specific location. En fournissant une liste d’expressions, vous améliorez le niveau de justesse de la reconnaissance vocale.By providing a list of phrases, you improve the accuracy of speech recognition.

Par exemple, si vous disposez d’une commande « Move to » et que parmi les destinations susceptibles d’être prononcées figurent « Ward », vous pouvez ajouter l’entrée « Move to Ward ».As an example, if you have a command "Move to" and a possible destination of "Ward" that may be spoken, you can add an entry of "Move to Ward". Ainsi, quand le contenu audio est reconnu, l’ajout de cette expression augmente la probabilité que « Move to Ward » sera reconnu et non « Move toward ».Adding a phrase will increase the probability that when the audio is recognized that "Move to Ward" will be recognized instead of "Move toward"

Il est possible d’ajouter des mots uniques ou des expressions entières à une liste d’expressions.Single words or complete phrases can be added to a Phrase List. Pendant le processus de reconnaissance, une entrée de la liste d’expressions est utilisée pour renforcer la reconnaissance des mots et des expressions de la liste, même lorsque les entrées apparaissent au milieu de l’énoncé.During recognition, an entry in a phrase list is used to boost recognition of the words and phrases in the list even when the entries appear in the middle of the utterance.

Important

La fonctionnalité Liste d’expressions est disponible pour les langues suivantes : en-US, de-DE, en-AU, en-CA, en-GB, es-ES, es-MX, fr-CA, fr-FR, it-IT, ja-JP, ko-KR, pt-BR, zh-CNThe Phrase List feature is available in the following languages: en-US, de-DE, en-AU, en-CA, en-GB, es-ES, es-MX, fr-CA, fr-FR, it-IT, ja-JP, ko-KR, pt-BR, zh-CN

Pour utiliser une liste d’expressions, commencez par créer un objet PhraseListGrammar, puis ajoutez des mots et des expressions spécifiques avec addPhrase.To use a phrase list, first create a PhraseListGrammar object, then add specific words and phrases with addPhrase.

Les modifications apportées à PhraseListGrammar prennent effet lors de la reconnaissance suivante ou après une reconnexion au service Speech.Any changes to PhraseListGrammar take effect on the next recognition or after a reconnection to the Speech service.

const phraseList = sdk.PhraseListGrammar.fromRecognizer(recognizer);
phraseList.addPhrase("Supercalifragilisticexpialidocious");

Si vous devez effacer votre liste d’expressions :If you need to clear your phrase list:

phraseList.clear();

Autres options pour améliorer la justesse de la reconnaissanceOther options to improve recognition accuracy

Les listes d’expressions ne sont qu’une option parmi d’autres permettant d’améliorer la justesse de la reconnaissance.Phrase lists are only one option to improve recognition accuracy. Vous pouvez également :You can also:

L’une des principales fonctionnalités du service de reconnaissance vocale est la possibilité de reconnaître et de transcrire la voix humaine (souvent appelée « reconnaissance vocale »).One of the core features of the Speech service is the ability to recognize and transcribe human speech (often referred to as speech-to-text). Dans cet exemple, vous allez apprendre à utiliser le SDK Speech dans vos applications et produits pour effectuer une conversion de parole en texte de qualité.In this sample, you learn how to use the Speech SDK in your apps and products to perform high-quality speech-to-text conversion.

Exemple React sur GitHubReact sample on GitHub

Accédez à l’exemple React sur GitHub pour apprendre à utiliser le SDK Speech dans un environnement JavaScript basé sur un navigateur.Go to the React sample on GitHub to learn how to use the Speech SDK in a browser-based JavaScript environment. Cet exemple présente des exemples de modèle de conception pour l’échange et la gestion des jetons d’authentification. Il montre également comment capturer du contenu audio à partir d’un microphone ou d’un fichier pour les conversions de parole en texte.This sample shows design pattern examples for authentication token exchange and management, and capturing audio from a microphone or file for speech-to-text conversions.

Les modèles de conception présentés dans le guide de démarrage rapide Node.js peuvent également être utilisés dans un environnement de navigateur.Additionally, the design patterns used in the Node.js quickstart can also be used in a browser environment.

Vous pouvez transcrire un discours en texte à l’aide du kit SDK Speech pour Swift et Objective-C.You can transcribe speech into text using the Speech SDK for Swift and Objective-C.

PrérequisPrerequisites

Les exemples suivants partent du principe que vous disposez d’un compte Azure et d’un abonnement au service Speech.The following samples assume that you have an Azure account and Speech service subscription. Si vous n’avez pas de compte et d’abonnement, essayez le service Speech gratuitement.If you don't have an account and subscription, try the Speech service for free.

Installer le Kit de développement logiciel (SDK) Speech et les exemplesInstall Speech SDK and samples

Le kit de développement logiciel (SDK) Speech de Cognitive Services contient des exemples écrits en Swift et Objective-C pour iOS et Mac.The Cognitive Services Speech SDK contains samples written in in Swift and Objective-C for iOS and Mac. Cliquez sur un lien pour afficher les instructions d’installation de chaque exemple :Click a link to see installation instructions for each sample:

Nous fournissons également des Informations de référence sur le kit de développement logiciel (SDK) Speech en ligne pour Objective-C.We also provide an online Speech SDK for Objective-C Reference.

L’une des principales fonctionnalités du service de reconnaissance vocale est la possibilité de reconnaître et de transcrire la voix humaine (souvent appelée « reconnaissance vocale »).One of the core features of the Speech service is the ability to recognize and transcribe human speech (often referred to as speech-to-text). Dans ce guide de démarrage rapide, vous allez apprendre à utiliser le SDK de reconnaissance vocale dans vos applications et produits afin d’effectuer une conversion de voix en texte de qualité.In this quickstart, you learn how to use the Speech SDK in your apps and products to perform high-quality speech-to-text conversion.

Passer aux exemples sur GitHubSkip to samples on GitHub

Si vous souhaitez passer directement à l’exemple de code, consultez les exemples de démarrage rapide Python sur GitHub.If you want to skip straight to sample code, see the Python quickstart samples on GitHub.

PrérequisPrerequisites

Cet article suppose :This article assumes:

Installer et importer le SDK SpeechInstall and import the Speech SDK

Avant de pouvoir faire quoi que ce soit, vous devez installer le SDK Speech.Before you can do anything, you'll need to install the Speech SDK.

pip install azure-cognitiveservices-speech

Si vous utilisez macOS et rencontrez des problèmes d’installation, vous devrez peut-être exécuter cette commande en premier.If you're on macOS and run into install issues, you may need to run this command first.

python3 -m pip install --upgrade pip

Une fois le SDK Speech installé, importez-le dans votre projet Python.After the Speech SDK is installed, import it into your Python project.

import azure.cognitiveservices.speech as speechsdk

Créer une configuration SpeechCreate a speech configuration

Pour appeler le service Speech à l’aide du SDK Speech, vous devez créer une classe SpeechConfig.To call the Speech service using the Speech SDK, you need to create a SpeechConfig. Celle-ci comprend des informations sur votre abonnement, telles que votre clé et la région, le point de terminaison, l’hôte ou le jeton d’autorisation associés.This class includes information about your subscription, like your key and associated region, endpoint, host, or authorization token. Créez une SpeechConfig à l’aide de votre clé et de votre région.Create a SpeechConfig using your key and region. Consultez la page Rechercher les clés et la région pour rechercher votre paire clé-région.See the Find keys and region page to find your key-region pair.

speech_config = speechsdk.SpeechConfig(subscription="<paste-your-subscription-key>", region="<paste-your-region>")

Vous pouvez initialiser une SpeechConfig de plusieurs autres façons :There are a few other ways that you can initialize a SpeechConfig:

  • Avec un point de terminaison : transmettez un point de terminaison de service Speech.With an endpoint: pass in a Speech service endpoint. Une clé ou un jeton d’autorisation est facultatif.A key or authorization token is optional.
  • Avec un hôte : transmettez une adresse d’hôte.With a host: pass in a host address. Une clé ou un jeton d’autorisation est facultatif.A key or authorization token is optional.
  • Avec un jeton d’autorisation : transmettez un jeton d’autorisation et la région associée.With an authorization token: pass in an authorization token and the associated region.

Notes

Quand vous procédez à une reconnaissance vocale, une synthèse vocale, une traduction ou une reconnaissance intentionnelle, vous devez toujours créer une configuration.Regardless of whether you're performing speech recognition, speech synthesis, translation, or intent recognition, you'll always create a configuration.

Reconnaître la voix provenant d’un microphoneRecognize from microphone

Pour reconnaître la voix à l’aide du microphone de votre appareil, créez simplement un SpeechRecognizer sans transmettre de AudioConfig et transmettez votre speech_config.To recognize speech using your device microphone, simply create a SpeechRecognizer without passing an AudioConfig, and pass your speech_config.

import azure.cognitiveservices.speech as speechsdk

def from_mic():
    speech_config = speechsdk.SpeechConfig(subscription="<paste-your-subscription-key>", region="<paste-your-region>")
    speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config)
    
    print("Speak into your microphone.")
    result = speech_recognizer.recognize_once_async().get()
    print(result.text)

from_mic()

Si vous souhaitez utiliser un périphérique d’entrée audio spécifique, vous devez spécifier son ID dans une AudioConfig et le transmettre au paramètre audio_config du constructeur SpeechRecognizer.If you want to use a specific audio input device, you need to specify the device ID in an AudioConfig, and pass it to the SpeechRecognizer constructor's audio_config param. Découvrez comment obtenir l’ID de votre périphérique d’entrée audio.Learn how to get the device ID for your audio input device.

Reconnaître la voix à partir d’un fichierRecognize from file

Si vous souhaitez reconnaître la voix à partir d’un fichier audio au lieu d’utiliser un microphone, créez un objet AudioConfig et utilisez le paramètre filename.If you want to recognize speech from an audio file instead of using a microphone, create an AudioConfig and use the filename parameter.

import azure.cognitiveservices.speech as speechsdk

def from_file():
    speech_config = speechsdk.SpeechConfig(subscription="<paste-your-subscription-key>", region="<paste-your-region>")
    audio_input = speechsdk.AudioConfig(filename="your_file_name.wav")
    speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_input)
    
    result = speech_recognizer.recognize_once_async().get()
    print(result.text)

from_file()

Gestion des erreursError handling

Les exemples précédents récupèrent simplement le texte reconnu de result.text, mais pour gérer les erreurs et autres réponses, vous devez écrire du code afin de gérer le résultat.The previous examples simply get the recognized text from result.text, but to handle errors and other responses, you'll need to write some code to handle the result. Le code suivant évalue la propriété result.reason et :The following code evaluates the result.reason property and:

  • Imprime le résultat de la reconnaissance : speechsdk.ResultReason.RecognizedSpeechPrints the recognition result: speechsdk.ResultReason.RecognizedSpeech
  • S’il n’existe aucune correspondance de reconnaissance, informez l’utilisateur : speechsdk.ResultReason.NoMatch If there is no recognition match, inform the user: speechsdk.ResultReason.NoMatch
  • Si une erreur se produit, imprimez le message d’erreur : speechsdk.ResultReason.CanceledIf an error is encountered, print the error message: speechsdk.ResultReason.Canceled
if result.reason == speechsdk.ResultReason.RecognizedSpeech:
    print("Recognized: {}".format(result.text))
elif result.reason == speechsdk.ResultReason.NoMatch:
    print("No speech could be recognized: {}".format(result.no_match_details))
elif result.reason == speechsdk.ResultReason.Canceled:
    cancellation_details = result.cancellation_details
    print("Speech Recognition canceled: {}".format(cancellation_details.reason))
    if cancellation_details.reason == speechsdk.CancellationReason.Error:
        print("Error details: {}".format(cancellation_details.error_details))

Reconnaissance continueContinuous recognition

Les exemples précédents utilisent la reconnaissance unique, qui reconnaît un énoncé unique.The previous examples use single-shot recognition, which recognizes a single utterance. La fin d’un énoncé unique est déterminée par la détection du silence à la fin, ou après que 15 secondes d’audio ont été traitées.The end of a single utterance is determined by listening for silence at the end or until a maximum of 15 seconds of audio is processed.

En revanche, la reconnaissance continue est utilisée quand vous souhaitez contrôler à quel moment arrêter la reconnaissance.In contrast, continuous recognition is used when you want to control when to stop recognizing. Vous êtes obligé de vous connecter à EventSignal pour obtenir les résultats de la reconnaissance. Pour arrêter la reconnaissance, vous devez appeler stop_continuous_recognition() ou stop_continuous_recognition().It requires you to connect to the EventSignal to get the recognition results, and to stop recognition, you must call stop_continuous_recognition() or stop_continuous_recognition(). Voici un exemple de reconnaissance continue sur un fichier d’entrée audio.Here's an example of how continuous recognition is performed on an audio input file.

Commençons par définir l’entrée et initialiser un SpeechRecognizer :Let's start by defining the input and initializing a SpeechRecognizer:

audio_config = speechsdk.audio.AudioConfig(filename=weatherfilename)
speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_config)

Ensuite, nous allons créer une variable pour gérer l’état de la reconnaissance vocale.Next, let's create a variable to manage the state of speech recognition. Pour commencer, nous allons lui affecter la valeur False, car au début de la reconnaissance nous pouvons supposer sans risque qu’elle n’est pas terminée.To start, we'll set this to False, since at the start of recognition we can safely assume that it's not finished.

done = False

Maintenant, nous allons créer un rappel pour arrêter la reconnaissance continue lors de la réception d’un evt.Now, we're going to create a callback to stop continuous recognition when an evt is received. Il y a quelques éléments à garder à l’esprit.There's a few things to keep in mind.

  • Lors de la réception d’un evt, le message evt est imprimé.When an evt is received, the evt message is printed.
  • Après la réception d’un evt, stop_continuous_recognition() est appelé pour arrêter la reconnaissance.After an evt is received, stop_continuous_recognition() is called to stop recognition.
  • L’état de la reconnaissance devient True.The recognition state is changed to True.
def stop_cb(evt):
    print('CLOSING on {}'.format(evt))
    speech_recognizer.stop_continuous_recognition()
    nonlocal done
    done = True

Cet exemple de code montre comment connecter des rappels aux événements envoyés à partir du SpeechRecognizer.This code sample shows how to connect callbacks to events sent from the SpeechRecognizer.

  • recognizing : signal pour les événements contenant des résultats de reconnaissance intermédiaires.recognizing: Signal for events containing intermediate recognition results.
  • recognized : signal pour les événements contenant des résultats de reconnaissance finaux (indiquant une tentative de reconnaissance réussie).recognized: Signal for events containing final recognition results (indicating a successful recognition attempt).
  • session_started : signal pour les événements indiquant le début d’une session de reconnaissance (opération).session_started: Signal for events indicating the start of a recognition session (operation).
  • session_stopped : signal pour les événements indiquant la fin d’une session de reconnaissance (opération).session_stopped: Signal for events indicating the end of a recognition session (operation).
  • canceled : signal pour les événements contenant des résultats de reconnaissance annulés (indiquant une tentative de reconnaissance qui a été annulée suite une requête d’annulation directe ou à un échec de transport ou de protocole).canceled: Signal for events containing canceled recognition results (indicating a recognition attempt that was canceled as a result or a direct cancellation request or, alternatively, a transport or protocol failure).
speech_recognizer.recognizing.connect(lambda evt: print('RECOGNIZING: {}'.format(evt)))
speech_recognizer.recognized.connect(lambda evt: print('RECOGNIZED: {}'.format(evt)))
speech_recognizer.session_started.connect(lambda evt: print('SESSION STARTED: {}'.format(evt)))
speech_recognizer.session_stopped.connect(lambda evt: print('SESSION STOPPED {}'.format(evt)))
speech_recognizer.canceled.connect(lambda evt: print('CANCELED {}'.format(evt)))

speech_recognizer.session_stopped.connect(stop_cb)
speech_recognizer.canceled.connect(stop_cb)

Tout étant configuré, nous pouvons maintenant appeler start_continuous_recognition().With everything set up, we can call start_continuous_recognition().

speech_recognizer.start_continuous_recognition()
while not done:
    time.sleep(.5)

Mode de dictéeDictation mode

Quand vous utilisez la reconnaissance continue, vous pouvez activer le traitement de la dictée en utilisant la fonction « enable dictation » correspondante.When using continuous recognition, you can enable dictation processing by using the corresponding "enable dictation" function. Dans ce mode, l’instance de configuration vocale interprète les descriptions verbales de structures de phrase comme la ponctuation.This mode will cause the speech config instance to interpret word descriptions of sentence structures such as punctuation. Par exemple, l’énoncé « Habitez-vous en ville point d’interrogation » donne le texte « Habitez-vous en ville ? ».For example, the utterance "Do you live in town question mark" would be interpreted as the text "Do you live in town?".

Pour activer le mode dictée, utilisez la méthode enable_dictation() sur votre SpeechConfig.To enable dictation mode, use the enable_dictation() method on your SpeechConfig.

SpeechConfig.enable_dictation()

Changer la langue sourceChange source language

Une tâche courante pour la reconnaissance vocale consiste à spécifier la langue d’entrée (ou source).A common task for speech recognition is specifying the input (or source) language. Examinons comment choisir l’allemand comme langue d’entrée.Let's take a look at how you would change the input language to German. Dans votre code, recherchez votre SpeechConfig, puis ajoutez cette ligne directement en dessous.In your code, find your SpeechConfig, then add this line directly below it.

speech_config.speech_recognition_language="de-DE"

speech_recognition_language est un paramètre qui prend une chaîne comme argument.speech_recognition_language is a parameter that takes a string as an argument. Vous pouvez fournir n’importe quelle valeur figurant dans la liste des paramètres régionaux/langues pris en charge.You can provide any value in the list of supported locales/languages.

Améliorer la justesse de la reconnaissanceImprove recognition accuracy

Les listes d’expressions permettent d’identifier des expressions connues dans les données audio, comme le nom d’une personne ou un lieu spécifique.Phrase Lists are used to identify known phrases in audio data, like a person's name or a specific location. En fournissant une liste d’expressions, vous améliorez le niveau de justesse de la reconnaissance vocale.By providing a list of phrases, you improve the accuracy of speech recognition.

Par exemple, si vous disposez d’une commande « Move to » et que parmi les destinations susceptibles d’être prononcées figurent « Ward », vous pouvez ajouter l’entrée « Move to Ward ».As an example, if you have a command "Move to" and a possible destination of "Ward" that may be spoken, you can add an entry of "Move to Ward". Ainsi, quand le contenu audio est reconnu, l’ajout de cette expression augmente la probabilité que « Move to Ward » sera reconnu et non « Move toward ».Adding a phrase will increase the probability that when the audio is recognized that "Move to Ward" will be recognized instead of "Move toward"

Il est possible d’ajouter des mots uniques ou des expressions entières à une liste d’expressions.Single words or complete phrases can be added to a Phrase List. Pendant le processus de reconnaissance, une entrée de la liste d’expressions est utilisée pour renforcer la reconnaissance des mots et des expressions de la liste, même lorsque les entrées apparaissent au milieu de l’énoncé.During recognition, an entry in a phrase list is used to boost recognition of the words and phrases in the list even when the entries appear in the middle of the utterance.

Important

La fonctionnalité Liste d’expressions est disponible pour les langues suivantes : en-US, de-DE, en-AU, en-CA, en-GB, es-ES, es-MX, fr-CA, fr-FR, it-IT, ja-JP, ko-KR, pt-BR, zh-CNThe Phrase List feature is available in the following languages: en-US, de-DE, en-AU, en-CA, en-GB, es-ES, es-MX, fr-CA, fr-FR, it-IT, ja-JP, ko-KR, pt-BR, zh-CN

Pour utiliser une liste d’expressions, commencez par créer un objet PhraseListGrammar, puis ajoutez des mots et des expressions spécifiques avec addPhrase.To use a phrase list, first create a PhraseListGrammar object, then add specific words and phrases with addPhrase.

Les modifications apportées à PhraseListGrammar prennent effet lors de la reconnaissance suivante ou après une reconnexion au service Speech.Any changes to PhraseListGrammar take effect on the next recognition or after a reconnection to the Speech service.

phrase_list_grammar = speechsdk.PhraseListGrammar.from_recognizer(reco)
phrase_list_grammar.addPhrase("Supercalifragilisticexpialidocious")

Si vous devez effacer votre liste d’expressions :If you need to clear your phrase list:

phrase_list_grammar.clear()

Autres options pour améliorer la justesse de la reconnaissanceOther options to improve recognition accuracy

Les listes d’expressions ne sont qu’une option parmi d’autres permettant d’améliorer la justesse de la reconnaissance.Phrase lists are only one option to improve recognition accuracy. Vous pouvez également :You can also:

Dans ce guide de démarrage rapide, vous allez apprendre à convertir de la parole en texte à l’aide du service Speech et de cURL.In this quickstart, you learn how to convert speech to text using the Speech service and cURL.

Pour obtenir une vue d’ensemble des concepts de reconnaissance vocale, consultez l’article de présentation.For a high-level look at Speech-to-Text concepts, see the overview article.

PrérequisPrerequisites

Cet article part du principe que vous disposez d’un compte Azure et d’un abonnement au service Speech.This article assumes that you have an Azure account and Speech service subscription. Si vous n’avez pas de compte et d’abonnement, essayez le service Speech gratuitement.If you don't have an account and subscription, try the Speech service for free.

Convertir la parole en texteConvert speech to text

Depuis une invite de commandes, exécutez la commande suivante.At a command prompt, run the following command. Vous devrez insérer les valeurs suivantes dans la commande.You will need to insert the following values into the command.

  • Votre clé d’abonnement du service Speech.Your Speech service subscription key.
  • Votre région du service Speech.Your Speech service region.
  • Le chemin du fichier audio d’entrée.The input audio file path. Vous pouvez générer des fichiers audio en utilisant la synthèse vocale.You can generate audio files using text-to-speech.
curl --location --request POST 'https://INSERT_REGION_HERE.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?language=en-US' \
--header 'Ocp-Apim-Subscription-Key: INSERT_SUBSCRIPTION_KEY_HERE' \
--header 'Content-Type: audio/wav' \
--data-binary 'INSERT_AUDIO_FILE_PATH_HERE'

Vous devez recevoir une réponse semblable à la suivante.You should receive a response like the following one.

{
    "RecognitionStatus": "Success",
    "DisplayText": "My voice is my passport, verify me.",
    "Offset": 6600000,
    "Duration": 32100000
}

Pour plus d’informations, consultez les informations de référence sur l’API REST de reconnaissance vocale.For more information see the speech-to-text REST API reference.

L’une des principales fonctionnalités du service de reconnaissance vocale est la possibilité de reconnaître et de transcrire la voix humaine (souvent appelée « reconnaissance vocale »).One of the core features of the Speech service is the ability to recognize and transcribe human speech (often referred to as speech-to-text). Dans ce guide de démarrage rapide, vous allez apprendre à utiliser l’interface CLI Speech dans vos applications et produits afin d’effectuer une conversion de voix en texte de qualité.In this quickstart, you learn how to use the Speech CLI in your apps and products to perform high-quality speech-to-text conversion.

Télécharger et installerDownload and install

Procédez ainsi pour installer l’interface CLI Speech sur Windows :Follow these steps to install the Speech CLI on Windows:

  1. Sur Windows, vous avez besoin de Microsoft Redistributable Visual C++ pour Visual Studio 2019 pour votre plateforme.On Windows, you need the Microsoft Visual C++ Redistributable for Visual Studio 2019 for your platform. La première installation peut demander i, redémarrage.Installing this for the first time may require a restart.

  2. Installez le SDK .NET Core 3.1.Install .NET Core 3.1 SDK.

  3. Installez l’interface CLI Speech à l’aide de NuGet en entrant cette commande :Install the Speech CLI using NuGet by entering this command:

    dotnet tool install --global Microsoft.CognitiveServices.Speech.CLI --version 1.15.0
    

Tapez spx pour afficher l’aide de l’interface CLI Speech.Type spx to see help for the Speech CLI.

Notes

En guise d’alternative à NuGet, vous pouvez télécharger et extraire l’archive zip de l’interface CLI Speech, rechercher et extraire votre plateforme à partir du répertoire spx-zips et ajouter le chemin spx à la variable PATH de votre système.As an alternative to NuGet, you can download and extract the Speech CLI zip archive, find and extract your platform from the spx-zips directory, and add the spx path to your system PATH variable.

Limitations des policesFont limitations

Sur Windows, l’interface CLI de Speech peut afficher uniquement les polices disponibles à l’invite de commandes sur l’ordinateur local.On Windows, the Speech CLI can only show fonts available to the command prompt on the local computer. Le Terminal Windows prend en charge toutes les polices produites de manière interactive par l’interface CLI de Speech.Windows Terminal supports all fonts produced interactively by the Speech CLI.

Si la sortie est effectuée dans un fichier, un éditeur de texte tel que le Bloc-notes ou un navigateur web tel que Microsoft Edge peut également afficher toutes les polices.If you output to a file, a text editor like Notepad or a web browser like Microsoft Edge can also show all fonts.

Création d’une configuration d’abonnementCreate subscription config

Pour pouvoir utiliser l’interface CLI Speech, vous devez entrer votre clé d’abonnement et votre identificateur de région Speech.To start using the Speech CLI, you need to enter your Speech subscription key and region identifier. Pour obtenir ces informations d’identification, suivez les étapes indiquées dans Essayer le service Speech gratuitement.Get these credentials by following steps in Try the Speech service for free. Une fois que vous avez récupéré votre clé d’abonnement et votre identificateur de la région (par exemple,Once you have your subscription key and region identifier (ex. eastus, westus), exécutez les commandes suivantes.eastus, westus), run the following commands.

spx config @key --set SUBSCRIPTION-KEY
spx config @region --set REGION

L’authentification de votre abonnement est maintenant stockée pour les futures demandes SPX.Your subscription authentication is now stored for future SPX requests. Si vous devez supprimer l’une de ces valeurs stockées, exécutez spx config @region --clear ou spx config @key --clear.If you need to remove either of these stored values, run spx config @region --clear or spx config @key --clear.

Reconnaissance vocale à partir du microphoneSpeech-to-text from microphone

Branchez et allumez le microphone de votre PC, puis désactivez toutes les applications qui peuvent également utiliser le microphone.Plug in and turn on your PC microphone, and turn off any apps that might also use the microphone. Certains ordinateurs disposent d’un microphone intégré, tandis que d’autres nécessitent la configuration d’un appareil Bluetooth.Some computers have a built-in microphone, while others require configuration of a Bluetooth device.

Vous êtes maintenant prêt à exécuter l’interface CLI Speech pour reconnaître la voix à partir de votre microphone.Now you're ready to run the Speech CLI to recognize speech from your microphone. À partir de la ligne de commande, accédez au répertoire qui contient le fichier binaire de l’interface CLI Speech et exécutez la commande suivante.From the command line, change to the directory that contains the Speech CLI binary file, and run the following command.

spx recognize --microphone

Notes

La valeur par défaut de l’interface CLI Speech est Anglais.The Speech CLI defaults to English. Vous pouvez choisir une autre langue dans la table Reconnaissance vocale.You can choose a different language from the Speech-to-text table. Par exemple, ajoutez --source de-DE pour reconnaître de la voix en allemand.For example, add --source de-DE to recognize German speech.

Parlez dans le microphone et vous verrez la transcription de vos mots en texte en temps réel.Speak into the microphone, and you see transcription of your words into text in real-time. L’interface CLI Speech s’arrête après une période de silence, ou lorsque vous appuyez sur Ctrl-C.The Speech CLI will stop after a period of silence, or when you press ctrl-C.

Reconnaissance vocale à partir d’un fichier audioSpeech-to-text from audio file

L’interface CLI Speech peut reconnaître la voix dans de nombreux formats de fichier et dans des langages naturels.The Speech CLI can recognize speech in many file formats and natural languages. Dans cet exemple, vous pouvez utiliser un fichier WAV (16 kHz ou 8 kHz, 16 bits et PCM mono) qui contient de la voix en anglais.In this example, you can use any WAV file (16kHz or 8kHz, 16-bit, and mono PCM) that contains English speech. Sinon, si vous souhaitez un exemple rapide, téléchargez le fichier whatstheweatherlike.wav et copiez-le dans le même répertoire que le fichier binaire de l’interface CLI Speech.Or if you want a quick sample, download the whatstheweatherlike.wav file and copy it to the same directory as the Speech CLI binary file.

Vous êtes maintenant prêt à exécuter l’interface CLI Speech pour reconnaître la voix trouvée dans le fichier audio en exécutant la commande suivante.Now you're ready to run the Speech CLI to recognize speech found in the audio file by running the following command.

spx recognize --file whatstheweatherlike.wav

Notes

La valeur par défaut de l’interface CLI Speech est Anglais.The Speech CLI defaults to English. Vous pouvez choisir une autre langue dans la table Reconnaissance vocale.You can choose a different language from the Speech-to-text table. Par exemple, ajoutez --source de-DE pour reconnaître de la voix en allemand.For example, add --source de-DE to recognize German speech.

L’interface CLI Speech affiche une transcription textuelle de la voix à l’écran.The Speech CLI will show a text transcription of the speech on the screen.

Étapes suivantesNext steps