A diktálás használatának első lépéseiGet started with speech-to-text

A beszédfelismerési szolgáltatás egyik fő funkciója az emberi beszéd (más néven beszéd – szöveg) felismerése és átírása.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). Ebből a rövid útmutatóból megtudhatja, hogyan használhatja a Speech SDK-t az alkalmazásaiban és termékeiben a kiváló minőségű beszéd-szöveg átalakítás elvégzéséhez.In this quickstart, you learn how to use the Speech SDK in your apps and products to perform high-quality speech-to-text conversion.

Ugrás a mintákra a GitHubonSkip to samples on GitHub

Ha közvetlenül a mintakód kihagyását szeretné kihagyni, tekintse meg a C# gyors példákat a githubon.If you want to skip straight to sample code, see the C# quickstart samples on GitHub.

ElőfeltételekPrerequisites

Ez a cikk azt feltételezi, hogy rendelkezik Azure-fiókkal és Speech Service-előfizetéssel.This article assumes that you have an Azure account and Speech service subscription. Ha nem rendelkezik fiókkal és előfizetéssel, próbálja ki ingyenesen a Speech szolgáltatást.If you don't have an account and subscription, try the Speech service for free.

A Speech SDK telepítéseInstall the Speech SDK

Ha csak a csomag nevét szeretné megkezdeni, futtassa a parancsot Install-Package Microsoft.CognitiveServices.Speech a NuGet-konzolon.If you just want the package name to get started, run Install-Package Microsoft.CognitiveServices.Speech in the NuGet console.

A platformra vonatkozó telepítési utasításokért tekintse meg az alábbi hivatkozásokat:For platform-specific installation instructions, see the following links:

Beszédfelismerési konfiguráció létrehozásaCreate a speech configuration

A beszédfelismerési szolgáltatás a Speech SDK használatával történő meghívásához létre kell hoznia egy SpeechConfig .To call the Speech service using the Speech SDK, you need to create a SpeechConfig. Ez az osztály az előfizetésével kapcsolatos információkat tartalmaz, például a kulcsot és a társított régiót, végpontot, gazdagépet vagy engedélyezési jogkivonatot.This class includes information about your subscription, like your key and associated region, endpoint, host, or authorization token. Hozzon létre egy SpeechConfig -t a kulcs és a régió használatával.Create a SpeechConfig by using your key and region. A kulcsok és régiók keresése lapon találja meg a kulcs-régió párokat.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>");
    }
}

Néhány más módon is elvégezhető a következők inicializálása SpeechConfig :There are a few other ways that you can initialize a SpeechConfig:

  • Egy végponttal: pass a Speech Service-végponton.With an endpoint: pass in a Speech service endpoint. Kulcs-vagy engedélyezési jogkivonat nem kötelező.A key or authorization token is optional.
  • Gazdagép esetén: adjon meg egy gazdagép-címeket.With a host: pass in a host address. Kulcs-vagy engedélyezési jogkivonat nem kötelező.A key or authorization token is optional.
  • Engedélyezési jogkivonattal: adjon meg egy engedélyezési jogkivonatot és a hozzá tartozó régiót.With an authorization token: pass in an authorization token and the associated region.

Megjegyzés

Függetlenül attól, hogy elvégezte-e a beszédfelismerést, a beszédfelismerést, a fordítást vagy a szándék felismerését, mindig hozzon létre egy konfigurációt.Regardless of whether you're performing speech recognition, speech synthesis, translation, or intent recognition, you'll always create a configuration.

Felismerés mikrofonbólRecognize from microphone

Ha az eszköz mikrofonját használva szeretné felismerni a beszédfelismerést, hozzon létre egy AudioConfig használatával FromDefaultMicrophoneInput() .To recognize speech using your device microphone, create an AudioConfig using FromDefaultMicrophoneInput(). Ezután inicializálja a t SpeechRecognizer , és adja át a audioConfig és a 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);
    }
}

Ha egy adott hangbeviteli eszközt szeretne használni, meg kell adnia az eszköz azonosítóját a következőben: AudioConfig .If you want to use a specific audio input device, you need to specify the device ID in the AudioConfig. Ismerje meg , hogyan kérheti le az eszköz azonosítóját a hangbemeneti eszközhöz.Learn how to get the device ID for your audio input device.

Felismerés fájlbólRecognize from file

Ha mikrofon helyett hangfájlból szeretné felismerni a beszédet, továbbra is létre kell hoznia egy elemet AudioConfig .If you want to recognize speech from an audio file instead of a microphone, you still need to create an AudioConfig. A AudioConfig hívása helyett azonban a FromDefaultMicrophoneInput() FromWavFileInput() fájl elérési útját kell meghívnia és átadnia.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);
    }
}

Felismerés a memóriában lévő adatfolyambólRecognize from in-memory stream

Sok felhasználási eset esetében valószínű, hogy a hangadatok a blob Storage-ból fognak származni, vagy más módon már a memóriában lévő byte[] vagy hasonló nyers adatstruktúraként vannak tárolva.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. Az alábbi példa a a PushAudioInputStream használatával ismeri fel a beszédet, amely lényegében egy absztrakt memória.The following example uses a PushAudioInputStream to recognize speech, which is essentially an abstracted memory stream. A mintakód a következő műveleteket végzi el:The sample code does the following:

  • Nyers hangadatokat (PCM) ír a PushAudioInputStream függvény használatával Write() , amely fogadja a következőt: byte[] .Writes raw audio data (PCM) to the PushAudioInputStream using the Write() function, which accepts a byte[].
  • Egy fájl beolvasása .wav FileReader bemutató céljára, de ha már rendelkezik hangadatokkal a-ben byte[] , kihagyhatja a tartalmat a bemeneti adatfolyamba.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.
  • Az alapértelmezett formátum: 16 bites, 16khz monó PCM.The default format is 16 bit, 16khz mono PCM. A formátum testreszabásához átadhat egy AudioStreamFormat objektumot CreatePushStream() a statikus függvény használatára 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);
    }
}

A leküldéses adatfolyamok bemenetként való használata azt feltételezi, hogy a hangadatok egy nyers PCM, például a fejlécek kihagyása.Using a push stream as input assumes that the audio data is a raw PCM, e.g. skipping any headers. Az API bizonyos esetekben továbbra is működni fog, ha a fejléc nem lett kihagyva, de a legjobb eredmény érdekében érdemes lehet a fejlécek olvasására kiolvasni a logikát, hogy az a byte[] hangadatok kezdetekor induljon el.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.

HibakezelésError handling

Az előző példákban egyszerűen lekérheti a felismert szöveget result.text , de a hibák és más válaszok kezeléséhez meg kell írnia egy kódot az eredmény kezeléséhez.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. A következő kód kiértékeli a result.Reason tulajdonságot, és:The following code evaluates the result.Reason property and:

  • Kinyomtatja az eredmények felismerésének eredményét: ResultReason.RecognizedSpeechPrints the recognition result: ResultReason.RecognizedSpeech
  • Ha nincs felismerési egyezés, tájékoztassa a felhasználót: ResultReason.NoMatchIf there is no recognition match, inform the user: ResultReason.NoMatch
  • Ha hiba történt, nyomtassa ki a hibaüzenetet: 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;
}

Folyamatos felismerésContinuous recognition

Az előző példákban a single-shot felismerést használjuk, amely egyetlen Kimondás.The previous examples use single-shot recognition, which recognizes a single utterance. Az egyetlen kiírás végének meghatározása úgy történik, hogy a csendet figyeli a végén, vagy legfeljebb 15 másodperces hangot dolgoz fel.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.

Ezzel szemben a folyamatos felismerést akkor kell használni, ha meg szeretné határozni , hogy mikor kell leállítani a felismerést.In contrast, continuous recognition is used when you want to control when to stop recognizing. Recognizing Recognized A felismerési eredmények beszerzéséhez elő kell fizetnie a, a és az Canceled eseményekre.It requires you to subscribe to the Recognizing, Recognized, and Canceled events to get the recognition results. Az felismerés leállításához hívja meg a következőt: StopContinuousRecognitionAsync .To stop recognition, you must call StopContinuousRecognitionAsync. Íme egy példa arra, hogyan történik a folyamatos felismerés egy hangbemeneti fájlon.Here's an example of how continuous recognition is performed on an audio input file.

Először határozza meg a bemenetet, és inicializálja a SpeechRecognizer következőket:Start by defining the input and initializing a SpeechRecognizer:

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

Ezután hozzon létre egy TaskCompletionSource<int> -t a beszédfelismerés állapotának kezeléséhez.Then create a TaskCompletionSource<int> to manage the state of speech recognition.

var stopRecognition = new TaskCompletionSource<int>();

Ezután fizessen elő a által elküldett eseményekre SpeechRecognizer .Next, subscribe to the events sent from the SpeechRecognizer.

  • Recognizing: A köztes felismerési eredményeket tartalmazó események jelzése.Recognizing: Signal for events containing intermediate recognition results.
  • Recognized: A végső felismerési eredményeket tartalmazó események jelzése (sikeres felismerési kísérletet jelezve).Recognized: Signal for events containing final recognition results (indicating a successful recognition attempt).
  • SessionStopped: Az elismerési munkamenet végét jelző események jelzése (művelet).SessionStopped: Signal for events indicating the end of a recognition session (operation).
  • Canceled: A megszakított felismerési eredményeket tartalmazó események jelzése (olyan felismerési kísérletet jelez, amelyet a rendszer az eredmény vagy a közvetlen törlési kérelem miatt megszakított, vagy ha egy átviteli vagy protokollhiba történt).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);
};

Az összes beállítása StartContinuousRecognitionAsync után hívja meg az felismerést.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();

Diktálási módDictation mode

Folyamatos felismerés használatakor engedélyezheti a diktálás feldolgozását a megfelelő "diktálás engedélyezése" funkció használatával.When using continuous recognition, you can enable dictation processing by using the corresponding "enable dictation" function. Ez a mód azt eredményezi, hogy a beszédfelismerési konfigurációs példány értelmezi a mondatok (például a központozás) szövegének leírását.This mode will cause the speech config instance to interpret word descriptions of sentence structures such as punctuation. A "Do You Live in Town kérdőjel" kifejezés például "a városban él?" szöveget fogja értelmezni.For example, the utterance "Do you live in town question mark" would be interpreted as the text "Do you live in town?".

A diktálási mód engedélyezéséhez használja a EnableDictation metódust a alkalmazásban SpeechConfig .To enable dictation mode, use the EnableDictation method on your SpeechConfig.

speechConfig.EnableDictation();

Forrás nyelvének módosításaChange source language

A beszédfelismerés általános feladata, hogy megadja a bemeneti (vagy a forrás) nyelvet.A common task for speech recognition is specifying the input (or source) language. Vessünk egy pillantást arra, hogyan változtathatja meg a szövegbeviteli nyelvet az olasz nyelvre.Let's take a look at how you would change the input language to Italian. A kódban keresse meg SpeechConfig , majd adja hozzá ezt a sort közvetlenül alatta.In your code, find your SpeechConfig, then add this line directly below it.

speechConfig.SpeechRecognitionLanguage = "it-IT";

A SpeechRecognitionLanguage tulajdonság nyelvi területi beállítású karakterláncot vár.The SpeechRecognitionLanguage property expects a language-locale format string. A területi beállítások oszlopban bármilyen értéket megadhat a támogatott területi beállítások/nyelveklistájában.You can provide any value in the Locale column in the list of supported locales/languages.

Az elismerés pontosságának javításaImprove recognition accuracy

A kifejezések listája a hangadatokban található ismert kifejezések azonosítására szolgál, például egy személy nevéhez vagy egy adott helyhez.Phrase Lists are used to identify known phrases in audio data, like a person's name or a specific location. A kifejezések listájának megadásával javíthatja a beszédfelismerés pontosságát.By providing a list of phrases, you improve the accuracy of speech recognition.

Ha például a "Move to" parancs és a "Ward" lehetséges célpontja látható, akkor hozzáadhat egy "Áthelyezés a kórterembe" bejegyzést.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". Egy kifejezés hozzáadásával nő a valószínűsége annak, hogy ha a hang felismerése felismerte, hogy az "Áthelyezés a kórterembe" lehetőség fel lesz ismerve a "költözés felé" helyett.Adding a phrase will increase the probability that when the audio is recognized that "Move to Ward" will be recognized instead of "Move toward"

Az egyes szavak vagy teljes kifejezések hozzáadhatók egy kifejezési listához.Single words or complete phrases can be added to a Phrase List. Az elismerés során a rendszer a mondatok listájában szereplő szavak és kifejezések felismerését fokozza, még akkor is, ha a bejegyzések a teljes szöveg közepén jelennek meg.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.

Fontos

A kifejezések listázása funkció a következő nyelveken érhető el: 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

A kifejezések listájának használatához először hozzon létre egy PhraseListGrammar objektumot, majd adjon hozzá konkrét szavakat és kifejezéseket a következővel: AddPhrase .To use a phrase list, first create a PhraseListGrammar object, then add specific words and phrases with AddPhrase.

A PhraseListGrammar következő felismerés vagy a beszédfelismerési szolgáltatás újrakapcsolódása után a módosítások érvénybe lépnek.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");

Ha törölnie kell a kifejezések listáját:If you need to clear your phrase list:

phraseList.Clear();

Egyéb lehetőségek az elismerés pontosságának növeléséhezOther options to improve recognition accuracy

A kifejezések listája csak egyetlen lehetőség az elismerés pontosságának javítására.Phrase lists are only one option to improve recognition accuracy. További lehetőségek:You can also:

A beszédfelismerési szolgáltatás egyik fő funkciója az emberi beszéd (más néven beszéd – szöveg) felismerése és átírása.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). Ebből a rövid útmutatóból megtudhatja, hogyan használhatja a Speech SDK-t az alkalmazásaiban és termékeiben a kiváló minőségű beszéd-szöveg átalakítás elvégzéséhez.In this quickstart, you learn how to use the Speech SDK in your apps and products to perform high-quality speech-to-text conversion.

Ugrás a mintákra a GitHubonSkip to samples on GitHub

Ha közvetlenül a mintakód kihagyását szeretné kihagyni, tekintse meg a C++ gyors üzembe helyezési mintákat a githubon.If you want to skip straight to sample code, see the C++ quickstart samples on GitHub.

ElőfeltételekPrerequisites

Ez a cikk azt feltételezi, hogy rendelkezik Azure-fiókkal és Speech Service-előfizetéssel.This article assumes that you have an Azure account and Speech service subscription. Ha nem rendelkezik fiókkal és előfizetéssel, próbálja ki ingyenesen a Speech szolgáltatást.If you don't have an account and subscription, try the Speech service for free.

A Speech SDK telepítéseInstall the Speech SDK

Mielőtt bármit elvégezhet, telepítenie kell a Speech SDK-t.Before you can do anything, you'll need to install the Speech SDK. A platformtól függően kövesse az alábbi utasításokat:Depending on your platform, use the following instructions:

Beszédfelismerési konfiguráció létrehozásaCreate a speech configuration

A beszédfelismerési szolgáltatás a Speech SDK használatával történő meghívásához létre kell hoznia egy SpeechConfig .To call the Speech service using the Speech SDK, you need to create a SpeechConfig. Ez az osztály az előfizetésével kapcsolatos információkat tartalmaz, például a kulcsot és a társított régiót, végpontot, gazdagépet vagy engedélyezési jogkivonatot.This class includes information about your subscription, like your key and associated region, endpoint, host, or authorization token. Hozzon létre egy SpeechConfig -t a kulcs és a régió használatával.Create a SpeechConfig by using your key and region. A kulcsok és régiók keresése lapon találja meg a kulcs-régió párokat.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>");

Néhány más módon is elvégezhető a következők inicializálása SpeechConfig :There are a few other ways that you can initialize a SpeechConfig:

  • Egy végponttal: pass a Speech Service-végponton.With an endpoint: pass in a Speech service endpoint. Kulcs-vagy engedélyezési jogkivonat nem kötelező.A key or authorization token is optional.
  • Gazdagép esetén: adjon meg egy gazdagép-címeket.With a host: pass in a host address. Kulcs-vagy engedélyezési jogkivonat nem kötelező.A key or authorization token is optional.
  • Engedélyezési jogkivonattal: adjon meg egy engedélyezési jogkivonatot és a hozzá tartozó régiót.With an authorization token: pass in an authorization token and the associated region.

Megjegyzés

Függetlenül attól, hogy elvégezte-e a beszédfelismerést, a beszédfelismerést, a fordítást vagy a szándék felismerését, mindig hozzon létre egy konfigurációt.Regardless of whether you're performing speech recognition, speech synthesis, translation, or intent recognition, you'll always create a configuration.

Felismerés mikrofonbólRecognize from microphone

Ha az eszköz mikrofonját használva szeretné felismerni a beszédfelismerést, hozzon létre egy AudioConfig használatával FromDefaultMicrophoneInput() .To recognize speech using your device microphone, create an AudioConfig using FromDefaultMicrophoneInput(). Ezután inicializálja a t SpeechRecognizer , és adja át a audioConfig és a 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;

Ha egy adott hangbeviteli eszközt szeretne használni, meg kell adnia az eszköz azonosítóját a következőben: AudioConfig . Ismerje meg , hogyan kérheti le az eszköz azonosítóját a hangbemeneti eszközhöz.Learn how to get the device ID for your audio input device.

Felismerés fájlbólRecognize from file

Ha mikrofon használata helyett hangfájlból szeretné felismerni a beszédet, akkor továbbra is létre kell hoznia egy elemet AudioConfig .If you want to recognize speech from an audio file instead of using a microphone, you still need to create an AudioConfig. A AudioConfig hívása helyett azonban a FromDefaultMicrophoneInput() FromWavFileInput() fájl elérési útját kell meghívnia és átadnia.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;

Beszéd felismeréseRecognize speech

A C++ Speech SDK felismerési osztálya a beszédfelismeréshez használható néhány módszert.The Recognizer class for the Speech SDK for C++ exposes a few methods that you can use for speech recognition.

Egyszeri felvétel felismeréseSingle-shot recognition

Az egyszeres felvételes felismerés aszinkron módon felismeri a teljes kilépést.Single-shot recognition asynchronously recognizes a single utterance. Az egyetlen kiírás végének meghatározása úgy történik, hogy a csendet figyeli a végén, vagy legfeljebb 15 másodperces hangot dolgoz fel.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. Íme egy példa az aszinkron egyszeri felvételre a használatával RecognizeOnceAsync :Here's an example of asynchronous single-shot recognition using RecognizeOnceAsync:

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

Az eredmény kezeléséhez meg kell írnia egy kódot.You'll need to write some code to handle the result. Ez a példa a következőket értékeli ki result->Reason :This sample evaluates the result->Reason:

  • Kinyomtatja az eredmények felismerésének eredményét: ResultReason::RecognizedSpeechPrints the recognition result: ResultReason::RecognizedSpeech
  • Ha nincs felismerési egyezés, tájékoztassa a felhasználót: ResultReason::NoMatchIf there is no recognition match, inform the user: ResultReason::NoMatch
  • Ha hiba történt, nyomtassa ki a hibaüzenetet: 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;
}

Folyamatos felismerésContinuous recognition

A folyamatos felismerés valamivel többet vesz igénybe, mint a single-shot felismerés.Continuous recognition is a bit more involved than single-shot recognition. Recognizing Recognized A felismerési eredmények beszerzéséhez elő kell fizetnie a, a és az Canceled eseményekre.It requires you to subscribe to the Recognizing, Recognized, and Canceled events to get the recognition results. Az felismerés leállításához hívnia kell a StopContinuousRecognitionAsync.To stop recognition, you must call StopContinuousRecognitionAsync. Íme egy példa arra, hogyan történik a folyamatos felismerés egy hangbemeneti fájlon.Here's an example of how continuous recognition is performed on an audio input file.

Első lépésként definiáljuk a bemenetet, és inicializáljuk a SpeechRecognizer következőket:Let's start by defining the input and initializing a SpeechRecognizer:

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

Ezután hozzon létre egy változót a beszédfelismerés állapotának kezeléséhez.Next, let's create a variable to manage the state of speech recognition. A kezdéshez bejelentjük a promise<void> -t, mivel az elismerés megkezdése után nyugodtan feltételezhetjük, hogy nem fejeződött be.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;

A szolgáltatásból érkező eseményekre fogunk előfizetni SpeechRecognizer .We'll subscribe to the events sent from the SpeechRecognizer.

  • Recognizing: A köztes felismerési eredményeket tartalmazó események jelzése.Recognizing: Signal for events containing intermediate recognition results.
  • Recognized: A végső felismerési eredményeket tartalmazó események jelzése (sikeres felismerési kísérletet jelezve).Recognized: Signal for events containing final recognition results (indicating a successful recognition attempt).
  • SessionStopped: Az elismerési munkamenet végét jelző események jelzése (művelet).SessionStopped: Signal for events indicating the end of a recognition session (operation).
  • Canceled: A megszakított felismerési eredményeket tartalmazó események jelzése (olyan felismerési kísérletet jelez, amelyet a rendszer az eredmény vagy a közvetlen törlési kérelem miatt megszakított, vagy ha egy átviteli vagy protokollhiba történt).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.
    });

Minden beállítással meghívhatjuk 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();

Diktálási módDictation mode

Folyamatos felismerés használatakor engedélyezheti a diktálás feldolgozását a megfelelő "diktálás engedélyezése" funkció használatával.When using continuous recognition, you can enable dictation processing by using the corresponding "enable dictation" function. Ez a mód azt eredményezi, hogy a beszédfelismerési konfigurációs példány értelmezi a mondatok (például a központozás) szövegének leírását.This mode will cause the speech config instance to interpret word descriptions of sentence structures such as punctuation. A "Do You Live in Town kérdőjel" kifejezés például "a városban él?" szöveget fogja értelmezni.For example, the utterance "Do you live in town question mark" would be interpreted as the text "Do you live in town?".

A diktálási mód engedélyezéséhez használja a EnableDictation metódust a alkalmazásban SpeechConfig .To enable dictation mode, use the EnableDictation method on your SpeechConfig.

config->EnableDictation();

Forrás nyelvének módosításaChange source language

A beszédfelismerés általános feladata, hogy megadja a bemeneti (vagy a forrás) nyelvet.A common task for speech recognition is specifying the input (or source) language. Vessünk egy pillantást arra, hogyan változtathatja meg a szövegbeviteli nyelvet németre.Let's take a look at how you would change the input language to German. A kódban keresse meg SpeechConfig , majd adja hozzá ezt a sort közvetlenül alatta.In your code, find your SpeechConfig, then add this line directly below it.

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

SetSpeechRecognitionLanguage egy paraméter, amely argumentumként karakterláncot vesz fel.SetSpeechRecognitionLanguage is a parameter that takes a string as an argument. A támogatott területi beállítások/nyelveklistájában bármilyen értéket megadhat.You can provide any value in the list of supported locales/languages.

Az elismerés pontosságának javításaImprove recognition accuracy

A kifejezések listája a hangadatokban található ismert kifejezések azonosítására szolgál, például egy személy nevéhez vagy egy adott helyhez.Phrase Lists are used to identify known phrases in audio data, like a person's name or a specific location. A kifejezések listájának megadásával javíthatja a beszédfelismerés pontosságát.By providing a list of phrases, you improve the accuracy of speech recognition.

Ha például a "Move to" parancs és a "Ward" lehetséges célpontja látható, akkor hozzáadhat egy "Áthelyezés a kórterembe" bejegyzést.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". Egy kifejezés hozzáadásával nő a valószínűsége annak, hogy ha a hang felismerése felismerte, hogy az "Áthelyezés a kórterembe" lehetőség fel lesz ismerve a "költözés felé" helyett.Adding a phrase will increase the probability that when the audio is recognized that "Move to Ward" will be recognized instead of "Move toward"

Az egyes szavak vagy teljes kifejezések hozzáadhatók egy kifejezési listához.Single words or complete phrases can be added to a Phrase List. Az elismerés során a rendszer a mondatok listájában szereplő szavak és kifejezések felismerését fokozza, még akkor is, ha a bejegyzések a teljes szöveg közepén jelennek meg.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.

Fontos

A kifejezések listázása funkció a következő nyelveken érhető el: 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

A kifejezések listájának használatához először hozzon létre egy PhraseListGrammar objektumot, majd adjon hozzá konkrét szavakat és kifejezéseket a következővel: AddPhrase .To use a phrase list, first create a PhraseListGrammar object, then add specific words and phrases with AddPhrase.

A PhraseListGrammar következő felismerés vagy a beszédfelismerési szolgáltatás újrakapcsolódása után a módosítások érvénybe lépnek.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");

Ha törölnie kell a kifejezések listáját:If you need to clear your phrase list:

phraseListGrammar->Clear();

Egyéb lehetőségek az elismerés pontosságának növeléséhezOther options to improve recognition accuracy

A kifejezések listája csak egyetlen lehetőség az elismerés pontosságának javítására.Phrase lists are only one option to improve recognition accuracy. További lehetőségek:You can also:

A beszédfelismerési szolgáltatás egyik fő funkciója az emberi beszéd (más néven beszéd – szöveg) felismerése és átírása.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). Ebből a rövid útmutatóból megtudhatja, hogyan használhatja a Speech SDK-t az alkalmazásaiban és termékeiben a kiváló minőségű beszéd-szöveg átalakítás elvégzéséhez.In this quickstart, you learn how to use the Speech SDK in your apps and products to perform high-quality speech-to-text conversion.

Ugrás a mintákra a GitHubonSkip to samples on GitHub

Ha közvetlenül a mintakód kihagyását szeretné kihagyni, tekintse meg a Gyorsindítás példák a githubon című részt.If you want to skip straight to sample code, see the Go quickstart samples on GitHub.

ElőfeltételekPrerequisites

Ez a cikk azt feltételezi, hogy rendelkezik Azure-fiókkal és Speech Service-előfizetéssel.This article assumes that you have an Azure account and Speech service subscription. Ha nem rendelkezik fiókkal és előfizetéssel, próbálja ki ingyenesen a Speech szolgáltatást.If you don't have an account and subscription, try the Speech service for free.

A Speech SDK telepítéseInstall the Speech SDK

Mielőtt bármit elvégezhet, telepítenie kell a Go-hoz készült SPEECH SDK-t.Before you can do anything, you'll need to install the Speech SDK for Go.

Beszéd – szöveg a mikrofonbólSpeech-to-text from microphone

Az alábbi mintakód használatával futtathatja a beszédfelismerést az alapértelmezett eszköz mikrofonból.Use the following code sample to run speech recognition from your default device microphone. Cserélje le a változókat subscription és az region előfizetéssel és a régió kulcsaival.Replace the variables subscription and region with your subscription and region keys. A szkript futtatásával elindít egy felismerési munkamenetet az alapértelmezett mikrofonon és a kimeneti szövegen.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')
}

A következő parancsok futtatásával hozzon létre egy go. mod fájlt, amely a githubon üzemeltetett összetevőkre hivatkozik.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

Most hozza létre és futtassa a kódot.Now build and run the code.

go build
go run quickstart

A SpeechConfig és osztályokkal kapcsolatos részletes információkért tekintse meg a dokumentációs dokumentációt SpeechRecognizer .See the reference docs for detailed information on the SpeechConfig and SpeechRecognizer classes.

Beszéd és szöveg közötti hangfájlbólSpeech-to-text from audio file

A következő minta használatával futtasson beszédfelismerést egy hangfájlból.Use the following sample to run speech recognition from an audio file. Cserélje le a változókat subscription és az region előfizetéssel és a régió kulcsaival.Replace the variables subscription and region with your subscription and region keys. Továbbá cserélje le a változót egy file . wav-fájl elérési útjára.Additionally, replace the variable file with a path to a .wav file. A szkript futtatása felismeri a fájl beszédét, és kiírja a szöveg eredményét.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)
}

A következő parancsok futtatásával hozzon létre egy go. mod fájlt, amely a githubon üzemeltetett összetevőkre hivatkozik.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

Most hozza létre és futtassa a kódot.Now build and run the code.

go build
go run quickstart

A SpeechConfig és osztályokkal kapcsolatos részletes információkért tekintse meg a dokumentációs dokumentációt SpeechRecognizer .See the reference docs for detailed information on the SpeechConfig and SpeechRecognizer classes.

A beszédfelismerési szolgáltatás egyik fő funkciója az emberi beszéd (más néven beszéd – szöveg) felismerése és átírása.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). Ebből a rövid útmutatóból megtudhatja, hogyan használhatja a Speech SDK-t az alkalmazásaiban és termékeiben a kiváló minőségű beszéd-szöveg átalakítás elvégzéséhez.In this quickstart, you learn how to use the Speech SDK in your apps and products to perform high-quality speech-to-text conversion.

Ugrás a mintákra a GitHubonSkip to samples on GitHub

Ha egyenesen a mintakód kihagyása mellett szeretne kiugrani, tekintse meg a Java-gyors üzembe helyezési mintákat a githubon.If you want to skip straight to sample code, see the Java quickstart samples on GitHub.

ElőfeltételekPrerequisites

Ez a cikk azt feltételezi, hogy rendelkezik Azure-fiókkal és Speech Service-előfizetéssel.This article assumes that you have an Azure account and Speech service subscription. Ha nem rendelkezik fiókkal és előfizetéssel, próbálja ki ingyenesen a Speech szolgáltatást.If you don't have an account and subscription, try the Speech service for free.

A Speech SDK telepítéseInstall the Speech SDK

Mielőtt bármit elvégezhet, telepítenie kell a Speech SDK-t.Before you can do anything, you'll need to install the Speech SDK. A platformtól függően kövesse az alábbi utasításokat:Depending on your platform, use the following instructions:

Beszédfelismerési konfiguráció létrehozásaCreate a speech configuration

A beszédfelismerési szolgáltatás a Speech SDK használatával történő meghívásához létre kell hoznia egy SpeechConfig .To call the Speech service using the Speech SDK, you need to create a SpeechConfig. Ez az osztály az előfizetésével kapcsolatos információkat tartalmaz, például a kulcsot és a társított régiót, végpontot, gazdagépet vagy engedélyezési jogkivonatot.This class includes information about your subscription, like your key and associated region, endpoint, host, or authorization token. Hozzon létre egy SpeechConfig -t a kulcs és a régió használatával.Create a SpeechConfig by using your key and region. A kulcsok és régiók keresése lapon találja meg a kulcs-régió párokat.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>");
    }
}

Néhány más módon is elvégezhető a következők inicializálása SpeechConfig :There are a few other ways that you can initialize a SpeechConfig:

  • Egy végponttal: pass a Speech Service-végponton.With an endpoint: pass in a Speech service endpoint. Kulcs-vagy engedélyezési jogkivonat nem kötelező.A key or authorization token is optional.
  • Gazdagép esetén: adjon meg egy gazdagép-címeket.With a host: pass in a host address. Kulcs-vagy engedélyezési jogkivonat nem kötelező.A key or authorization token is optional.
  • Engedélyezési jogkivonattal: adjon meg egy engedélyezési jogkivonatot és a hozzá tartozó régiót.With an authorization token: pass in an authorization token and the associated region.

Megjegyzés

Függetlenül attól, hogy elvégezte-e a beszédfelismerést, a beszédfelismerést, a fordítást vagy a szándék felismerését, mindig hozzon létre egy konfigurációt.Regardless of whether you're performing speech recognition, speech synthesis, translation, or intent recognition, you'll always create a configuration.

Felismerés mikrofonbólRecognize from microphone

Ha az eszköz mikrofonját használva szeretné felismerni a beszédfelismerést, hozzon létre egy AudioConfig használatával fromDefaultMicrophoneInput() .To recognize speech using your device microphone, create an AudioConfig using fromDefaultMicrophoneInput(). Ezután inicializálja a t SpeechRecognizer , és adja át a audioConfig és a 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());
    }
}

Ha egy adott hangbeviteli eszközt szeretne használni, meg kell adnia az eszköz azonosítóját a következőben: AudioConfig . Ismerje meg , hogyan kérheti le az eszköz azonosítóját a hangbemeneti eszközhöz.Learn how to get the device ID for your audio input device.

Felismerés fájlbólRecognize from file

Ha mikrofon használata helyett hangfájlból szeretné felismerni a beszédet, akkor továbbra is létre kell hoznia egy elemet AudioConfig .If you want to recognize speech from an audio file instead of using a microphone, you still need to create an AudioConfig. Ha azonban létrehozza a-t, a hívása AudioConfig helyett fromDefaultMicrophoneInput() hívja meg fromWavFileInput() a fájlt, és adja át a fájl elérési útját.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());
    }
}

HibakezelésError handling

Az előző példákban egyszerűen lekérheti a felismert szöveget a használatával result.getText() , de a hibák és más válaszok kezeléséhez meg kell írnia egy kódot az eredmény kezeléséhez.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. A következő példa a és a következőket értékeli ki result.getReason() :The following example evaluates result.getReason() and:

  • Kinyomtatja az eredmények felismerésének eredményét: ResultReason.RecognizedSpeechPrints the recognition result: ResultReason.RecognizedSpeech
  • Ha nincs felismerési egyezés, tájékoztassa a felhasználót: ResultReason.NoMatchIf there is no recognition match, inform the user: ResultReason.NoMatch
  • Ha hiba történt, nyomtassa ki a hibaüzenetet: 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;
}

Folyamatos felismerésContinuous recognition

Az előző példákban a single-shot felismerést használjuk, amely egyetlen Kimondás.The previous examples use single-shot recognition, which recognizes a single utterance. Az egyetlen kiírás végének meghatározása úgy történik, hogy a csendet figyeli a végén, vagy legfeljebb 15 másodperces hangot dolgoz fel.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.

Ezzel szemben a folyamatos felismerést akkor kell használni, ha meg szeretné határozni , hogy mikor kell leállítani a felismerést.In contrast, continuous recognition is used when you want to control when to stop recognizing. recognizing recognized A felismerési eredmények beszerzéséhez elő kell fizetnie a, a és az canceled eseményekre.It requires you to subscribe to the recognizing, recognized, and canceled events to get the recognition results. Az felismerés leállításához hívja meg a következőt: stopContinuousRecognitionAsync .To stop recognition, you must call stopContinuousRecognitionAsync. Íme egy példa arra, hogyan történik a folyamatos felismerés egy hangbemeneti fájlon.Here's an example of how continuous recognition is performed on an audio input file.

Első lépésként definiáljuk a bemenetet, és inicializáljuk a SpeechRecognizer következőket:Let's start by defining the input and initializing a SpeechRecognizer:

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

Ezután hozzon létre egy változót a beszédfelismerés állapotának kezeléséhez.Next, let's create a variable to manage the state of speech recognition. Először deklaráljuk a Semaphore osztály hatókörét.To start, we'll declare a Semaphore at the class scope.

private static Semaphore stopTranslationWithFileSemaphore;

A szolgáltatásból érkező eseményekre fogunk előfizetni SpeechRecognizer .We'll subscribe to the events sent from the SpeechRecognizer.

  • recognizing: A köztes felismerési eredményeket tartalmazó események jelzése.recognizing: Signal for events containing intermediate recognition results.
  • recognized: A végső felismerési eredményeket tartalmazó események jelzése (sikeres felismerési kísérletet jelezve).recognized: Signal for events containing final recognition results (indicating a successful recognition attempt).
  • sessionStopped: Az elismerési munkamenet végét jelző események jelzése (művelet).sessionStopped: Signal for events indicating the end of a recognition session (operation).
  • canceled: A megszakított felismerési eredményeket tartalmazó események jelzése (olyan felismerési kísérletet jelez, amelyet a rendszer az eredmény vagy a közvetlen törlési kérelem miatt megszakított, vagy ha egy átviteli vagy protokollhiba történt).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();
});

Minden beállítással meghívhatjuk 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();

Diktálási módDictation mode

Folyamatos felismerés használatakor engedélyezheti a diktálás feldolgozását a megfelelő "diktálás engedélyezése" funkció használatával.When using continuous recognition, you can enable dictation processing by using the corresponding "enable dictation" function. Ez a mód azt eredményezi, hogy a beszédfelismerési konfigurációs példány értelmezi a mondatok (például a központozás) szövegének leírását.This mode will cause the speech config instance to interpret word descriptions of sentence structures such as punctuation. A "Do You Live in Town kérdőjel" kifejezés például "a városban él?" szöveget fogja értelmezni.For example, the utterance "Do you live in town question mark" would be interpreted as the text "Do you live in town?".

A diktálási mód engedélyezéséhez használja a enableDictation metódust a alkalmazásban SpeechConfig .To enable dictation mode, use the enableDictation method on your SpeechConfig.

config.enableDictation();

Forrás nyelvének módosításaChange source language

A beszédfelismerés általános feladata, hogy megadja a bemeneti (vagy a forrás) nyelvet.A common task for speech recognition is specifying the input (or source) language. Vessünk egy pillantást arra, hogyan változtathatja meg a szövegbeviteli nyelvet franciára.Let's take a look at how you would change the input language to French. A kódban keresse meg SpeechConfig , majd adja hozzá ezt a sort közvetlenül alatta.In your code, find your SpeechConfig, then add this line directly below it.

config.setSpeechRecognitionLanguage("fr-FR");

setSpeechRecognitionLanguage egy paraméter, amely argumentumként karakterláncot vesz fel.setSpeechRecognitionLanguage is a parameter that takes a string as an argument. A támogatott területi beállítások/nyelveklistájában bármilyen értéket megadhat.You can provide any value in the list of supported locales/languages.

Az elismerés pontosságának javításaImprove recognition accuracy

A kifejezések listája a hangadatokban található ismert kifejezések azonosítására szolgál, például egy személy nevéhez vagy egy adott helyhez.Phrase Lists are used to identify known phrases in audio data, like a person's name or a specific location. A kifejezések listájának megadásával javíthatja a beszédfelismerés pontosságát.By providing a list of phrases, you improve the accuracy of speech recognition.

Ha például a "Move to" parancs és a "Ward" lehetséges célpontja látható, akkor hozzáadhat egy "Áthelyezés a kórterembe" bejegyzést.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". Egy kifejezés hozzáadásával nő a valószínűsége annak, hogy ha a hang felismerése felismerte, hogy az "Áthelyezés a kórterembe" lehetőség fel lesz ismerve a "költözés felé" helyett.Adding a phrase will increase the probability that when the audio is recognized that "Move to Ward" will be recognized instead of "Move toward"

Az egyes szavak vagy teljes kifejezések hozzáadhatók egy kifejezési listához.Single words or complete phrases can be added to a Phrase List. Az elismerés során a rendszer a mondatok listájában szereplő szavak és kifejezések felismerését fokozza, még akkor is, ha a bejegyzések a teljes szöveg közepén jelennek meg.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.

Fontos

A kifejezések listázása funkció a következő nyelveken érhető el: 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

A kifejezések listájának használatához először hozzon létre egy PhraseListGrammar objektumot, majd adjon hozzá konkrét szavakat és kifejezéseket a következővel: AddPhrase .To use a phrase list, first create a PhraseListGrammar object, then add specific words and phrases with AddPhrase.

A PhraseListGrammar következő felismerés vagy a beszédfelismerési szolgáltatás újrakapcsolódása után a módosítások érvénybe lépnek.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");

Ha törölnie kell a kifejezések listáját:If you need to clear your phrase list:

phraseList.clear();

Egyéb lehetőségek az elismerés pontosságának növeléséhezOther options to improve recognition accuracy

A kifejezések listája csak egyetlen lehetőség az elismerés pontosságának javítására.Phrase lists are only one option to improve recognition accuracy. További lehetőségek:You can also:

A beszédfelismerési szolgáltatás egyik fő funkciója az emberi beszéd (más néven beszéd – szöveg) felismerése és átírása.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). Ebből a rövid útmutatóból megtudhatja, hogyan használhatja a Speech SDK-t az alkalmazásaiban és termékeiben a kiváló minőségű beszéd-szöveg átalakítás elvégzéséhez.In this quickstart, you learn how to use the Speech SDK in your apps and products to perform high-quality speech-to-text conversion.

Ugrás a mintákra a GitHubonSkip to samples on GitHub

Ha közvetlenül a mintakód kihagyását szeretné kihagyni, tekintse meg a JavaScript gyors üzembe helyezési mintákat a githubon.If you want to skip straight to sample code, see the JavaScript quickstart samples on GitHub.

Azt is megtudhatja, hogyan használhatja a beszédfelismerési SDK -t egy böngészőalapú környezetben.Alternatively, see the React sample to learn how to use the Speech SDK in a browser-based environment.

ElőfeltételekPrerequisites

Ez a cikk azt feltételezi, hogy rendelkezik Azure-fiókkal és Speech Service-előfizetéssel.This article assumes that you have an Azure account and Speech service subscription. Ha nem rendelkezik fiókkal és előfizetéssel, próbálja ki ingyenesen a Speech szolgáltatást.If you don't have an account and subscription, try the Speech service for free.

A Speech SDK telepítéseInstall the Speech SDK

Mielőtt bármit elvégezhet, telepítenie kell a Node.js Speech SDK-t.Before you can do anything, you need to install the Speech SDK for Node.js. Ha csak a csomag nevét szeretné telepíteni, futtassa a parancsot npm install microsoft-cognitiveservices-speech-sdk .If you just want the package name to install, run npm install microsoft-cognitiveservices-speech-sdk. Az irányított telepítési utasításokért tekintse meg az első lépéseket ismertető cikket.For guided installation instructions, see the get started article.

requireAz SDK importálásához használja az alábbi utasítást.Use the following require statement to import the SDK.

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

A szolgáltatással kapcsolatos további információkért require tekintse meg a dokumentáció megkövetelésecímű témakört.For more information on require, see the require documentation.

Beszédfelismerési konfiguráció létrehozásaCreate a speech configuration

A beszédfelismerési szolgáltatás a Speech SDK használatával történő meghívásához létre kell hoznia egy SpeechConfig .To call the Speech service using the Speech SDK, you need to create a SpeechConfig. Ez az osztály az előfizetésével kapcsolatos információkat tartalmaz, például a kulcsot és a társított régiót, végpontot, gazdagépet vagy engedélyezési jogkivonatot.This class includes information about your subscription, like your key and associated region, endpoint, host, or authorization token. Hozzon létre egy SpeechConfig -t a kulcs és a régió használatával.Create a SpeechConfig using your key and region. A kulcsok és régiók keresése lapon találja meg a kulcs-régió párokat.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>");

Néhány más módon is elvégezhető a következők inicializálása SpeechConfig :There are a few other ways that you can initialize a SpeechConfig:

  • Egy végponttal: pass a Speech Service-végponton.With an endpoint: pass in a Speech service endpoint. Kulcs-vagy engedélyezési jogkivonat nem kötelező.A key or authorization token is optional.
  • Gazdagép esetén: adjon meg egy gazdagép-címeket.With a host: pass in a host address. Kulcs-vagy engedélyezési jogkivonat nem kötelező.A key or authorization token is optional.
  • Engedélyezési jogkivonattal: adjon meg egy engedélyezési jogkivonatot és a hozzá tartozó régiót.With an authorization token: pass in an authorization token and the associated region.

Megjegyzés

Függetlenül attól, hogy elvégezte-e a beszédfelismerést, a beszédfelismerést, a fordítást vagy a szándék felismerését, mindig hozzon létre egy konfigurációt.Regardless of whether you're performing speech recognition, speech synthesis, translation, or intent recognition, you'll always create a configuration.

Felismerés mikrofonból (csak böngésző)Recognize from microphone (Browser only)

A mikrofonból való beszéd felismerése nem támogatott a Node.jsban, és csak böngészőalapú JavaScript-környezetekben támogatott.Recognizing speech from a microphone is not supported in Node.js, and is only supported in a browser-based JavaScript environment. Tekintse meg amegjelenő példa a githubon című témakört.See the React sample on GitHub to see the speech-to-text from microphone implementation.

Megjegyzés

Ha egy adott hangbeviteli eszközt szeretne használni, meg kell adnia az eszköz azonosítóját a következőben: AudioConfig .If you want to use a specific audio input device, you need to specify the device ID in the AudioConfig. Ismerje meg , hogyan kérheti le az eszköz azonosítóját a hangbemeneti eszközhöz.Learn how to get the device ID for your audio input device.

Felismerés fájlbólRecognize from file

Egy hangfájlból származó beszéd felismeréséhez hozzon létre egy olyan AudioConfig alkalmazást, fromWavFileInput() amely egy objektumot fogad el Buffer .To recognize speech from an audio file, create an AudioConfig using fromWavFileInput() which accepts a Buffer object. Ezután inicializálja a t SpeechRecognizer , és adja át a audioConfig és a 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();

Felismerés a memóriában lévő adatfolyambólRecognize from in-memory stream

Sok felhasználási eset esetében valószínű, hogy a hangadatok a blob Storage-ból fognak származni, vagy más módon már a memóriában van, ArrayBuffer vagy hasonló nyers adatstruktúra.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. A következő kód:The following code:

  • Létrehoz egy leküldéses adatfolyamot a használatával createPushStream() .Creates a push stream using createPushStream().
  • Bemutató célra beolvas egy .wav fájlt fs.createReadStream , de ha már rendelkezik hangadatokkal ArrayBuffer , kihagyhatja közvetlenül a tartalmat a bemeneti adatfolyamba.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.
  • Létrehoz egy hang-konfigurációt a leküldéses adatfolyam használatával.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();

A leküldéses adatfolyamok bemenetként való használata azt feltételezi, hogy a hangadatok egy nyers PCM, például a fejlécek kihagyása.Using a push stream as input assumes that the audio data is a raw PCM, e.g. skipping any headers. Az API bizonyos esetekben továbbra is működni fog, ha a fejléc nem lett kihagyva, de a legjobb eredmény érdekében érdemes lehet a fejlécek olvasására kiolvasni a logikát, hogy az a fs hangadatok kezdetekor induljon el.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.

HibakezelésError handling

Az előző példákban egyszerűen lekérheti a felismert szöveget result.text , de a hibák és más válaszok kezeléséhez meg kell írnia egy kódot az eredmény kezeléséhez.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. A következő kód kiértékeli a result.reason tulajdonságot, és:The following code evaluates the result.reason property and:

  • Kinyomtatja az eredmények felismerésének eredményét: ResultReason.RecognizedSpeechPrints the recognition result: ResultReason.RecognizedSpeech
  • Ha nincs felismerési egyezés, tájékoztassa a felhasználót: ResultReason.NoMatchIf there is no recognition match, inform the user: ResultReason.NoMatch
  • Ha hiba történt, nyomtassa ki a hibaüzenetet: 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;
    }

Folyamatos felismerésContinuous recognition

Az előző példákban a single-shot felismerést használjuk, amely egyetlen Kimondás.The previous examples use single-shot recognition, which recognizes a single utterance. Az egyetlen kiírás végének meghatározása úgy történik, hogy a csendet figyeli a végén, vagy legfeljebb 15 másodperces hangot dolgoz fel.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.

Ezzel szemben a folyamatos felismerést akkor kell használni, ha meg szeretné határozni , hogy mikor kell leállítani a felismerést.In contrast, continuous recognition is used when you want to control when to stop recognizing. Recognizing Recognized A felismerési eredmények beszerzéséhez elő kell fizetnie a, a és az Canceled eseményekre.It requires you to subscribe to the Recognizing, Recognized, and Canceled events to get the recognition results. Az felismerés leállításához hívja meg a következőt: stopContinuousRecognitionAsync .To stop recognition, you must call stopContinuousRecognitionAsync. Íme egy példa arra, hogyan történik a folyamatos felismerés egy hangbemeneti fájlon.Here's an example of how continuous recognition is performed on an audio input file.

Először határozza meg a bemenetet, és inicializálja a SpeechRecognizer következőket:Start by defining the input and initializing a SpeechRecognizer:

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

Ezután fizessen elő a által elküldett eseményekre SpeechRecognizer .Next, subscribe to the events sent from the SpeechRecognizer.

  • recognizing: A köztes felismerési eredményeket tartalmazó események jelzése.recognizing: Signal for events containing intermediate recognition results.
  • recognized: A végső felismerési eredményeket tartalmazó események jelzése (sikeres felismerési kísérletet jelezve).recognized: Signal for events containing final recognition results (indicating a successful recognition attempt).
  • sessionStopped: Az elismerési munkamenet végét jelző események jelzése (művelet).sessionStopped: Signal for events indicating the end of a recognition session (operation).
  • canceled: A megszakított felismerési eredményeket tartalmazó események jelzése (olyan felismerési kísérletet jelez, amelyet a rendszer az eredmény vagy a közvetlen törlési kérelem miatt megszakított, vagy ha egy átviteli vagy protokollhiba történt).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();
};

Az összes beállítása startContinuousRecognitionAsync után hívja meg az felismerést.With everything set up, call startContinuousRecognitionAsync to start recognizing.

recognizer.startContinuousRecognitionAsync();

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

Diktálási módDictation mode

Folyamatos felismerés használatakor engedélyezheti a diktálás feldolgozását a megfelelő "diktálás engedélyezése" funkció használatával.When using continuous recognition, you can enable dictation processing by using the corresponding "enable dictation" function. Ez a mód azt eredményezi, hogy a beszédfelismerési konfigurációs példány értelmezi a mondatok (például a központozás) szövegének leírását.This mode will cause the speech config instance to interpret word descriptions of sentence structures such as punctuation. A "Do You Live in Town kérdőjel" kifejezés például "a városban él?" szöveget fogja értelmezni.For example, the utterance "Do you live in town question mark" would be interpreted as the text "Do you live in town?".

A diktálási mód engedélyezéséhez használja a enableDictation metódust a alkalmazásban SpeechConfig .To enable dictation mode, use the enableDictation method on your SpeechConfig.

speechConfig.enableDictation();

Forrás nyelvének módosításaChange source language

A beszédfelismerés általános feladata, hogy megadja a bemeneti (vagy a forrás) nyelvet.A common task for speech recognition is specifying the input (or source) language. Vessünk egy pillantást arra, hogyan változtathatja meg a szövegbeviteli nyelvet az olasz nyelvre.Let's take a look at how you would change the input language to Italian. A kódban keresse meg SpeechConfig , majd adja hozzá ezt a sort közvetlenül alatta.In your code, find your SpeechConfig, then add this line directly below it.

speechConfig.speechRecognitionLanguage = "it-IT";

A speechRecognitionLanguage tulajdonság nyelvi területi beállítású karakterláncot vár.The speechRecognitionLanguage property expects a language-locale format string. A területi beállítások oszlopban bármilyen értéket megadhat a támogatott területi beállítások/nyelveklistájában.You can provide any value in the Locale column in the list of supported locales/languages.

Az elismerés pontosságának javításaImprove recognition accuracy

A kifejezések listája a hangadatokban található ismert kifejezések azonosítására szolgál, például egy személy nevéhez vagy egy adott helyhez.Phrase Lists are used to identify known phrases in audio data, like a person's name or a specific location. A kifejezések listájának megadásával javíthatja a beszédfelismerés pontosságát.By providing a list of phrases, you improve the accuracy of speech recognition.

Ha például a "Move to" parancs és a "Ward" lehetséges célpontja látható, akkor hozzáadhat egy "Áthelyezés a kórterembe" bejegyzést.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". Egy kifejezés hozzáadásával nő a valószínűsége annak, hogy ha a hang felismerése felismerte, hogy az "Áthelyezés a kórterembe" lehetőség fel lesz ismerve a "költözés felé" helyett.Adding a phrase will increase the probability that when the audio is recognized that "Move to Ward" will be recognized instead of "Move toward"

Az egyes szavak vagy teljes kifejezések hozzáadhatók egy kifejezési listához.Single words or complete phrases can be added to a Phrase List. Az elismerés során a rendszer a mondatok listájában szereplő szavak és kifejezések felismerését fokozza, még akkor is, ha a bejegyzések a teljes szöveg közepén jelennek meg.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.

Fontos

A kifejezések listázása funkció a következő nyelveken érhető el: 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

A kifejezések listájának használatához először hozzon létre egy PhraseListGrammar objektumot, majd adjon hozzá konkrét szavakat és kifejezéseket a következővel: addPhrase .To use a phrase list, first create a PhraseListGrammar object, then add specific words and phrases with addPhrase.

A PhraseListGrammar következő felismerés vagy a beszédfelismerési szolgáltatás újrakapcsolódása után a módosítások érvénybe lépnek.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");

Ha törölnie kell a kifejezések listáját:If you need to clear your phrase list:

phraseList.clear();

Egyéb lehetőségek az elismerés pontosságának növeléséhezOther options to improve recognition accuracy

A kifejezések listája csak egyetlen lehetőség az elismerés pontosságának javítására.Phrase lists are only one option to improve recognition accuracy. További lehetőségek:You can also:

A beszédfelismerési szolgáltatás egyik fő funkciója az emberi beszéd (más néven beszéd – szöveg) felismerése és átírása.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). Ebből a példából megtudhatja, hogyan használhatja a Speech SDK-t alkalmazásaiban és termékeiben a kiváló minőségű beszéd-szöveg átalakítás elvégzéséhez.In this sample, you learn how to use the Speech SDK in your apps and products to perform high-quality speech-to-text conversion.

Példa a GitHubon való reagálásraReact sample on GitHub

A GitHubon megtudhatja, hogyan használhatja a SPEECH SDK-t egy böngészőalapú JavaScript-környezetben.Go to the React sample on GitHub to learn how to use the Speech SDK in a browser-based JavaScript environment. Ez a példa példákat mutat be a hitelesítési tokenek cseréjére és kezelésére, valamint a hanganyagnak a mikrofonból vagy a fájlból a beszéd – szöveg átalakítására való rögzítésére.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.

Emellett a Node.js rövid útmutatóban használt tervezési minták is használhatók egy böngészőbeli környezetben.Additionally, the design patterns used in the Node.js quickstart can also be used in a browser environment.

A beszédet szöveggé alakíthatja a Swift és Objective-C beszédfelismerési SDK használatával.You can transcribe speech into text using the Speech SDK for Swift and Objective-C.

ElőfeltételekPrerequisites

A következő minták feltételezik, hogy rendelkezik Azure-fiókkal és Speech Service-előfizetéssel.The following samples assume that you have an Azure account and Speech service subscription. Ha nem rendelkezik fiókkal és előfizetéssel, próbálja ki ingyenesen a Speech szolgáltatást.If you don't have an account and subscription, try the Speech service for free.

A Speech SDK és a Samples telepítéseInstall Speech SDK and samples

A Cognitive Services SPEECH SDK az iOS és a Mac rendszerhez készült Swift és Objective-C nyelven írt mintákat tartalmaz.The Cognitive Services Speech SDK contains samples written in in Swift and Objective-C for iOS and Mac. Egy hivatkozásra kattintva megtekintheti az egyes minták telepítési utasításait:Click a link to see installation instructions for each sample:

Az Objective-C-referenciához online SPEECH SDK-t is biztosítunk.We also provide an online Speech SDK for Objective-C Reference.

A beszédfelismerési szolgáltatás egyik fő funkciója az emberi beszéd (más néven beszéd – szöveg) felismerése és átírása.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). Ebből a rövid útmutatóból megtudhatja, hogyan használhatja a Speech SDK-t az alkalmazásaiban és termékeiben a kiváló minőségű beszéd-szöveg átalakítás elvégzéséhez.In this quickstart, you learn how to use the Speech SDK in your apps and products to perform high-quality speech-to-text conversion.

Ugrás a mintákra a GitHubonSkip to samples on GitHub

Ha közvetlenül a mintakód kihagyása mellett szeretne kiugrani, tekintse meg a Python gyors példákat a githubon.If you want to skip straight to sample code, see the Python quickstart samples on GitHub.

ElőfeltételekPrerequisites

Ez a cikk a következőket feltételezi:This article assumes:

A Speech SDK telepítése és importálásaInstall and import the Speech SDK

Mielőtt bármit elvégezhet, telepítenie kell a Speech SDK-t.Before you can do anything, you'll need to install the Speech SDK.

pip install azure-cognitiveservices-speech

Ha macOS rendszeren fut, és telepítési problémákba ütközik, előfordulhat, hogy először futtatnia kell ezt a parancsot.If you're on macOS and run into install issues, you may need to run this command first.

python3 -m pip install --upgrade pip

A Speech SDK telepítését követően importálja azt a Python-projektbe.After the Speech SDK is installed, import it into your Python project.

import azure.cognitiveservices.speech as speechsdk

Beszédfelismerési konfiguráció létrehozásaCreate a speech configuration

A beszédfelismerési szolgáltatás a Speech SDK használatával történő meghívásához létre kell hoznia egy SpeechConfig .To call the Speech service using the Speech SDK, you need to create a SpeechConfig. Ez az osztály az előfizetésével kapcsolatos információkat tartalmaz, például a kulcsot és a társított régiót, végpontot, gazdagépet vagy engedélyezési jogkivonatot.This class includes information about your subscription, like your key and associated region, endpoint, host, or authorization token. Hozzon létre egy SpeechConfig -t a kulcs és a régió használatával.Create a SpeechConfig using your key and region. A kulcsok és régiók keresése lapon találja meg a kulcs-régió párokat.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>")

Néhány más módon is elvégezhető a következők inicializálása SpeechConfig :There are a few other ways that you can initialize a SpeechConfig:

  • Egy végponttal: pass a Speech Service-végponton.With an endpoint: pass in a Speech service endpoint. Kulcs-vagy engedélyezési jogkivonat nem kötelező.A key or authorization token is optional.
  • Gazdagép esetén: adjon meg egy gazdagép-címeket.With a host: pass in a host address. Kulcs-vagy engedélyezési jogkivonat nem kötelező.A key or authorization token is optional.
  • Engedélyezési jogkivonattal: adjon meg egy engedélyezési jogkivonatot és a hozzá tartozó régiót.With an authorization token: pass in an authorization token and the associated region.

Megjegyzés

Függetlenül attól, hogy elvégezte-e a beszédfelismerést, a beszédfelismerést, a fordítást vagy a szándék felismerését, mindig hozzon létre egy konfigurációt.Regardless of whether you're performing speech recognition, speech synthesis, translation, or intent recognition, you'll always create a configuration.

Felismerés mikrofonbólRecognize from microphone

Ha a beszédfelismerést az eszköz mikrofonjának használatával szeretné felismerni, egyszerűen hozzon létre egy SpeechRecognizer -egy nélkül AudioConfig , és adja át a következőt: 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()

Ha egy adott hangbemeneti eszközt szeretne használni, meg kell adnia az eszköz azonosítóját AudioConfig , és át kell adnia a SpeechRecognizer konstruktor audio_config paraméterének.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. Ismerje meg , hogyan kérheti le az eszköz azonosítóját a hangbemeneti eszközhöz.Learn how to get the device ID for your audio input device.

Felismerés fájlbólRecognize from file

Ha mikrofon nélkül szeretné felismerni a hangfájlok beszédét, hozzon létre egy elemet, AudioConfig és használja a filename paramétert.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()

HibakezelésError handling

Az előző példákban egyszerűen lekérheti a felismert szöveget result.text , de a hibák és más válaszok kezeléséhez meg kell írnia egy kódot az eredmény kezeléséhez.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. A következő kód kiértékeli a result.reason tulajdonságot, és:The following code evaluates the result.reason property and:

  • Kinyomtatja az eredmények felismerésének eredményét: speechsdk.ResultReason.RecognizedSpeechPrints the recognition result: speechsdk.ResultReason.RecognizedSpeech
  • Ha nincs felismerési egyezés, tájékoztassa a felhasználót: speechsdk.ResultReason.NoMatch If there is no recognition match, inform the user: speechsdk.ResultReason.NoMatch
  • Ha hiba történt, nyomtassa ki a hibaüzenetet: 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))

Folyamatos felismerésContinuous recognition

Az előző példákban a single-shot felismerést használjuk, amely egyetlen Kimondás.The previous examples use single-shot recognition, which recognizes a single utterance. Az egyetlen kiírás végének meghatározása úgy történik, hogy a csendet figyeli a végén, vagy legfeljebb 15 másodperces hangot dolgoz fel.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.

Ezzel szemben a folyamatos felismerést akkor kell használni, ha meg szeretné határozni , hogy mikor kell leállítani a felismerést.In contrast, continuous recognition is used when you want to control when to stop recognizing. A szolgáltatáshoz való kapcsolódáshoz csatlakoznia kell az alkalmazáshoz EventSignal , és az elismerés leállításához meg kell hívnia stop_continuous_recognition () vagy 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(). Íme egy példa arra, hogyan történik a folyamatos felismerés egy hangbemeneti fájlon.Here's an example of how continuous recognition is performed on an audio input file.

Első lépésként definiáljuk a bemenetet, és inicializáljuk a SpeechRecognizer következőket: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)

Ezután hozzon létre egy változót a beszédfelismerés állapotának kezeléséhez.Next, let's create a variable to manage the state of speech recognition. A kezdéshez be kell állítani ezt a értékre False , mivel az elismerés elején nyugodtan feltételezhetjük, hogy nem fejeződött be.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

Most hozzunk létre egy visszahívást a folyamatos felismerés leállításához, amikor egy evt érkezik.Now, we're going to create a callback to stop continuous recognition when an evt is received. Van néhány dolog, amit érdemes szem előtt tartani.There's a few things to keep in mind.

  • evtA fogadásakor a rendszer evt kinyomtatja az üzenetet.When an evt is received, the evt message is printed.
  • A evt fogadása után stop_continuous_recognition () metódust kell hívni a felismerés leállítására.After an evt is received, stop_continuous_recognition() is called to stop recognition.
  • Az felismerési állapot a következőre módosul: 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

Ez a mintakód azt mutatja be, hogyan csatlakoztathatók a visszahívások a alkalmazásból eljuttatott eseményekhez SpeechRecognizer .This code sample shows how to connect callbacks to events sent from the SpeechRecognizer.

  • recognizing: A köztes felismerési eredményeket tartalmazó események jelzése.recognizing: Signal for events containing intermediate recognition results.
  • recognized: A végső felismerési eredményeket tartalmazó események jelzése (sikeres felismerési kísérletet jelezve).recognized: Signal for events containing final recognition results (indicating a successful recognition attempt).
  • session_started: Az elismerési munkamenet kezdetét jelző események jelzése (művelet).session_started: Signal for events indicating the start of a recognition session (operation).
  • session_stopped: Az elismerési munkamenet végét jelző események jelzése (művelet).session_stopped: Signal for events indicating the end of a recognition session (operation).
  • canceled: A megszakított felismerési eredményeket tartalmazó események jelzése (olyan felismerési kísérletet jelez, amelyet a rendszer az eredmény vagy a közvetlen törlési kérelem miatt megszakított, vagy ha egy átviteli vagy protokollhiba történt).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)

Minden beállítással meghívhatjuk start_continuous_recognition ().With everything set up, we can call start_continuous_recognition().

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

Diktálási módDictation mode

Folyamatos felismerés használatakor engedélyezheti a diktálás feldolgozását a megfelelő "diktálás engedélyezése" funkció használatával.When using continuous recognition, you can enable dictation processing by using the corresponding "enable dictation" function. Ez a mód azt eredményezi, hogy a beszédfelismerési konfigurációs példány értelmezi a mondatok (például a központozás) szövegének leírását.This mode will cause the speech config instance to interpret word descriptions of sentence structures such as punctuation. A "Do You Live in Town kérdőjel" kifejezés például "a városban él?" szöveget fogja értelmezni.For example, the utterance "Do you live in town question mark" would be interpreted as the text "Do you live in town?".

A diktálási mód engedélyezéséhez használja a enable_dictation() metódust a alkalmazásban SpeechConfig .To enable dictation mode, use the enable_dictation() method on your SpeechConfig.

SpeechConfig.enable_dictation()

Forrás nyelvének módosításaChange source language

A beszédfelismerés általános feladata, hogy megadja a bemeneti (vagy a forrás) nyelvet.A common task for speech recognition is specifying the input (or source) language. Vessünk egy pillantást arra, hogyan változtathatja meg a szövegbeviteli nyelvet németre.Let's take a look at how you would change the input language to German. A kódban keresse meg a SpeechConfig, majd adja hozzá közvetlenül a sort.In your code, find your SpeechConfig, then add this line directly below it.

speech_config.speech_recognition_language="de-DE"

speech_recognition_language egy paraméter, amely argumentumként karakterláncot vesz fel.speech_recognition_language is a parameter that takes a string as an argument. A támogatott területi beállítások/nyelveklistájában bármilyen értéket megadhat.You can provide any value in the list of supported locales/languages.

Az elismerés pontosságának javításaImprove recognition accuracy

A kifejezések listája a hangadatokban található ismert kifejezések azonosítására szolgál, például egy személy nevéhez vagy egy adott helyhez.Phrase Lists are used to identify known phrases in audio data, like a person's name or a specific location. A kifejezések listájának megadásával javíthatja a beszédfelismerés pontosságát.By providing a list of phrases, you improve the accuracy of speech recognition.

Ha például a "Move to" parancs és a "Ward" lehetséges célpontja látható, akkor hozzáadhat egy "Áthelyezés a kórterembe" bejegyzést.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". Egy kifejezés hozzáadásával nő a valószínűsége annak, hogy ha a hang felismerése felismerte, hogy az "Áthelyezés a kórterembe" lehetőség fel lesz ismerve a "költözés felé" helyett.Adding a phrase will increase the probability that when the audio is recognized that "Move to Ward" will be recognized instead of "Move toward"

Az egyes szavak vagy teljes kifejezések hozzáadhatók egy kifejezési listához.Single words or complete phrases can be added to a Phrase List. Az elismerés során a rendszer a mondatok listájában szereplő szavak és kifejezések felismerését fokozza, még akkor is, ha a bejegyzések a teljes szöveg közepén jelennek meg.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.

Fontos

A kifejezések listázása funkció a következő nyelveken érhető el: 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

A kifejezések listájának használatához először hozzon létre egy PhraseListGrammar objektumot, majd adjon hozzá konkrét szavakat és kifejezéseket a következővel: addPhrase .To use a phrase list, first create a PhraseListGrammar object, then add specific words and phrases with addPhrase.

A PhraseListGrammar következő felismerés vagy a beszédfelismerési szolgáltatás újrakapcsolódása után a módosítások érvénybe lépnek.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")

Ha törölnie kell a kifejezések listáját:If you need to clear your phrase list:

phrase_list_grammar.clear()

Egyéb lehetőségek az elismerés pontosságának növeléséhezOther options to improve recognition accuracy

A kifejezések listája csak egyetlen lehetőség az elismerés pontosságának javítására.Phrase lists are only one option to improve recognition accuracy. További lehetőségek:You can also:

Ebből a rövid útmutatóból megtudhatja, hogyan alakíthat át beszédet szöveggé a Speech Service és a cURL használatával.In this quickstart, you learn how to convert speech to text using the Speech service and cURL.

A beszédfelismerési fogalmakat ismertető cikkben tekintse meg az áttekintést ismertető cikket.For a high-level look at Speech-to-Text concepts, see the overview article.

ElőfeltételekPrerequisites

Ez a cikk azt feltételezi, hogy rendelkezik Azure-fiókkal és Speech Service-előfizetéssel.This article assumes that you have an Azure account and Speech service subscription. Ha nem rendelkezik fiókkal és előfizetéssel, próbálja ki ingyenesen a Speech szolgáltatást.If you don't have an account and subscription, try the Speech service for free.

Beszéd szöveggé alakításaConvert speech to text

A parancssorban futtassa a következő parancsot.At a command prompt, run the following command. A következő értékeket kell beszúrnia a parancsba.You will need to insert the following values into the command.

  • A beszédfelismerési szolgáltatás előfizetési kulcsa.Your Speech service subscription key.
  • A Speech Service-régió.Your Speech service region.
  • A bemeneti hangfájl elérési útjaThe input audio file path. Hangfájlokat a szöveg és a beszédközött is létrehozhat.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'

A következőhöz hasonló választ kell kapnia.You should receive a response like the following one.

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

További információért lásd a beszéd – szöveg REST API referenciát.For more information see the speech-to-text REST API reference.

A beszédfelismerési szolgáltatás egyik fő funkciója az emberi beszéd (más néven beszéd – szöveg) felismerése és átírása.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). Ebből a rövid útmutatóból megtudhatja, hogyan használhatja a Speech CLI-t az alkalmazásaiban és termékeiben a kiváló minőségű beszéd-szöveg átalakításhoz.In this quickstart, you learn how to use the Speech CLI in your apps and products to perform high-quality speech-to-text conversion.

Letöltés és telepítésDownload and install

Kövesse az alábbi lépéseket a Speech CLI Windows rendszeren történő telepítéséhez:Follow these steps to install the Speech CLI on Windows:

  1. Windows rendszeren a platformhoz a Microsoft Visual C++ terjeszthető változata szükséges a Visual Studio 2019 -hez.On Windows, you need the Microsoft Visual C++ Redistributable for Visual Studio 2019 for your platform. Ha először telepíti az elsőt, újraindításra lehet szükség.Installing this for the first time may require a restart.

  2. Telepítse a .net Core 3,1 SDK-t.Install .NET Core 3.1 SDK.

  3. Telepítse a Speech CLI-t a NuGet használatával a következő parancs megadásával:Install the Speech CLI using NuGet by entering this command:

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

spxA SPEECH parancssori felület súgójának megjelenítéséhez írja be a következőt:.Type spx to see help for the Speech CLI.

Megjegyzés

A NuGet alternatívájaként letöltheti és kicsomagolhatja a Speech CLI zip- archívumot, megkeresheti és kinyerheti a platformot a spx-zips címtárból, és hozzáadhatja a spx rendszerútvonal -változó elérési útját.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.

Betűkészletre vonatkozó korlátozásokFont limitations

Windows rendszeren a Speech CLI csak a parancssorban elérhető betűkészleteket jeleníti meg a helyi számítógépen.On Windows, the Speech CLI can only show fonts available to the command prompt on the local computer. A Windows Terminal a Speech CLI által interaktív módon létrehozott összes betűtípust támogatja.Windows Terminal supports all fonts produced interactively by the Speech CLI.

Ha fájlba, például egy Jegyzettömbbe vagy egy webböngészőbe (például a Microsoft Edge) küldi el a kimenetet, az összes betűtípust is megjelenítheti.If you output to a file, a text editor like Notepad or a web browser like Microsoft Edge can also show all fonts.

Előfizetés konfigurációjának létrehozásaCreate subscription config

A beszédfelismerési parancssori felület használatának megkezdéséhez meg kell adnia a beszédfelismerési előfizetési kulcsot és a régió azonosítóját.To start using the Speech CLI, you need to enter your Speech subscription key and region identifier. Szerezze be ezeket a hitelesítő adatokat a beszédfelismerési szolgáltatás ingyenes kipróbálásáhozszükséges lépések követésével.Get these credentials by following steps in Try the Speech service for free. Miután megtörtént az előfizetési kulcs és a régió azonosítója (pl.Once you have your subscription key and region identifier (ex. eastus, westus ) futtassa a következő parancsokat.eastus, westus), run the following commands.

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

Az előfizetés-hitelesítés mostantól a jövőbeli SPX-kérelmekhez van tárolva.Your subscription authentication is now stored for future SPX requests. Ha el kell távolítania a tárolt értékek valamelyikét, futtassa a vagy a parancsot spx config @region --clear spx config @key --clear .If you need to remove either of these stored values, run spx config @region --clear or spx config @key --clear.

Beszéd – szöveg a mikrofonbólSpeech-to-text from microphone

Csatlakoztassa a számítógépet, és kapcsolja be a PC-mikrofont, és kapcsolja ki a mikrofont is használó alkalmazásokat.Plug in and turn on your PC microphone, and turn off any apps that might also use the microphone. Egyes számítógépek beépített mikrofonnal rendelkeznek, míg mások a Bluetooth-eszközök konfigurációját igénylik.Some computers have a built-in microphone, while others require configuration of a Bluetooth device.

Most már készen áll a Speech CLI futtatására, hogy felismerje a beszédet a mikrofonból.Now you're ready to run the Speech CLI to recognize speech from your microphone. A parancssorban váltson arra a könyvtárra, amely tartalmazza a parancssori felület bináris fájlját, és futtassa a következő parancsot.From the command line, change to the directory that contains the Speech CLI binary file, and run the following command.

spx recognize --microphone

Megjegyzés

A Speech CLI alapértelmezett értéke az angol.The Speech CLI defaults to English. A beszéd-szöveg táblázatbólmás nyelvet is választhat.You can choose a different language from the Speech-to-text table. Adja meg például a következőt: --source de-DE a német beszéd felismerése.For example, add --source de-DE to recognize German speech.

Beszéljen a mikrofonba, és valós időben megtekintheti a szavainak szövegbe való átírását.Speak into the microphone, and you see transcription of your words into text in real-time. A Speech CLI egy adott időszak után leáll, vagy a CTRL-C billentyűkombináció lenyomása után.The Speech CLI will stop after a period of silence, or when you press ctrl-C.

Beszéd és szöveg közötti hangfájlbólSpeech-to-text from audio file

A Speech CLI számos fájlformátumban és természetes nyelven képes felismerni a beszédet.The Speech CLI can recognize speech in many file formats and natural languages. Ebben a példában bármilyen WAV-fájlt használhat (16kHz vagy 8kHz, 16 bites és monó PCM), amely angol nyelvű beszédet tartalmaz.In this example, you can use any WAV file (16kHz or 8kHz, 16-bit, and mono PCM) that contains English speech. Ha szeretne egy gyors mintát, töltse le a whatstheweatherlike. wav fájlt, és másolja a Speech CLI bináris fájllal megegyező könyvtárba.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.

Most már készen áll arra, hogy az alábbi parancs futtatásával felismerje a hangfájlban talált beszédet.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

Megjegyzés

A Speech CLI alapértelmezett értéke az angol.The Speech CLI defaults to English. A beszéd-szöveg táblázatbólmás nyelvet is választhat.You can choose a different language from the Speech-to-text table. Adja meg például a következőt: --source de-DE a német beszéd felismerése.For example, add --source de-DE to recognize German speech.

A Speech CLI a képernyőn megjelenő beszéd szövegének átírását jeleníti meg.The Speech CLI will show a text transcription of the speech on the screen.

Következő lépésekNext steps