Snabbstart: Känna igen tal i C++ på Linux med hjälp av Speech SDKQuickstart: Recognize speech in C++ on Linux by using the Speech SDK

Snabb Starter är också tillgängliga för text till tal.Quickstarts are also available for text-to-speech.

Om du vill kan du växla till ett annat programmeringsspråk och/eller miljö:If desired, switch to a different programming language and/or environment:

I den här artikeln skapar du ett C++ konsol program för Linux (Ubuntu 16,04, Ubuntu 18,04, Debian 9).In this article, you create a C++ console application for Linux (Ubuntu 16.04, Ubuntu 18.04, Debian 9). Du använder Cognitive Services Speech SDK för att transkribera tal till text i realtid från datorns mikrofon.You use the Cognitive Services Speech SDK to transcribe speech to text in real time from your PC's microphone. Programmet har skapat med Speech SDK för Linux och Linux-distributionens C++-kompilerare (till exempel g++).The application is built with the Speech SDK for Linux and your Linux distribution's C++ compiler (for example, g++).

FörutsättningarPrerequisites

Du behöver en prenumerations nyckel för tal tjänster för att slutföra den här snabb starten.You need a Speech Services subscription key to complete this Quickstart. Du kan skaffa en utan kostnad.You can get one for free. Mer information finns i testa tal tjänsterna kostnads fritt .See Try the Speech Services for free for details.

Installera Speech SDKInstall Speech SDK

Viktigt

När du väljer att ladda ned någon av Speech SDK för Cognitive Services-komponenterna på den här sidan accepterar du även dess licens.By downloading any of the Speech SDK for Azure Cognitive Services components on this page, you acknowledge its license. Se licensvillkoren för Microsoft-programvara för Speech SDK.See the Microsoft Software License Terms for the Speech SDK.

Speech SDK för Linux kan användas för att bygga både 64-bitars och 32-bitars program.The Speech SDK for Linux can be used to build both 64-bit and 32-bit applications. De nödvändiga biblioteken och huvudfilerna kan laddas ned som en tar-fil från https://aka.ms/csspeech/linuxbinary.The required libraries and header files can be downloaded as a tar file from https://aka.ms/csspeech/linuxbinary.

Ladda ned och installera SDK enligt följande:Download and install the SDK as follows:

  1. Kontrollera att SDK-beroenden är installerade.Make sure the SDK's dependencies are installed.

    • I Ubuntu:On Ubuntu:

      sudo apt-get update
      sudo apt-get install build-essential libssl1.0.0 libasound2 wget
      
    • På Debian 9:On Debian 9:

      sudo apt-get update
      sudo apt-get install build-essential libssl1.0.2 libasound2 wget
      
  2. Välj en katalog som Speech SDK-filerna ska extraheras till och ange miljövariabeln SPEECHSDK_ROOT så att den pekar på den katalogen.Choose a directory to which the Speech SDK files should be extracted, and set the SPEECHSDK_ROOT environment variable to point to that directory. Den här variabeln gör det enkelt att referera till katalogen i framtida kommandon.This variable makes it easy to refer to the directory in future commands. Exempel: Om du vill använda katalogen speechsdk i arbetskatalogen använder du ett kommando som liknar följande:For example, if you want to use the directory speechsdk in your home directory, use a command like the following:

    export SPEECHSDK_ROOT="$HOME/speechsdk"
    
  3. Skapa katalogen om den inte redan finns.Create the directory if it doesn't exist yet.

    mkdir -p "$SPEECHSDK_ROOT"
    
  4. Ladda ned och extrahera arkivet .tar.gz som innehåller Speech SDK-binärfilerna:Download and extract the .tar.gz archive containing the Speech SDK binaries:

    wget -O SpeechSDK-Linux.tar.gz https://aka.ms/csspeech/linuxbinary
    tar --strip 1 -xzf SpeechSDK-Linux.tar.gz -C "$SPEECHSDK_ROOT"
    
  5. Validera innehållet i toppnivåkatalogen i det extraherade paketet:Validate the contents of the top-level directory of the extracted package:

    ls -l "$SPEECHSDK_ROOT"
    

    Kataloglistan ska innehålla meddelande från tredje part och licensfiler, samt en include-katalog som innehåller huvudfiler (.h) och en lib-katalog som innehåller bibliotek.The directory listing should contain the third-party notice and license files, as well as an include directory containing header (.h) files and a lib directory containing libraries.

    PathPath BeskrivningDescription
    license.md LicensLicense
    ThirdPartyNotices.md Meddelanden från tredje part.Third-party notices.
    REDIST.txt Vidaredistribution meddelande.Redistribution notice.
    include Obligatoriska rubrikfiler för C och C++The required header files for C and C++
    lib/x64 Internt bibliotek för x64 krävs för att länka ditt programNative library for x64 required to link your application
    lib/x86 Internt bibliotek för x86 krävs för att länka ditt programNative library for x86 required to link your application

Lägg till exempelkodAdd sample code

  1. Skapa en C++-källfil med namnet helloworld.cpp och klistra in följande kod i den.Create a C++ source file named helloworld.cpp, and paste the following code into it.

    #include <iostream> // cin, cout
    #include <speechapi_cxx.h>
    
    using namespace std;
    using namespace Microsoft::CognitiveServices::Speech;
    
    void recognizeSpeech() {
        // Creates an instance of a speech config with specified subscription key and service region.
        // Replace with your own subscription key and service region (e.g., "westus").
        auto config = SpeechConfig::FromSubscription("YourSubscriptionKey", "YourServiceRegion");
    
        // Creates a speech recognizer
        auto recognizer = SpeechRecognizer::FromConfig(config);
        cout << "Say something...\n";
    
        // Starts speech recognition, and returns after a single utterance is recognized. 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.  The task returns the recognition text as result. 
        // Note: Since RecognizeOnceAsync() returns only a single utterance, it is suitable only for single
        // shot recognition like command or query. 
        // For long-running multi-utterance recognition, use StartContinuousRecognitionAsync() instead.
        auto result = recognizer->RecognizeOnceAsync().get();
    
        // Checks result.
        if (result->Reason == ResultReason::RecognizedSpeech) {
            cout << "We recognized: " << result->Text << std::endl;
        }
        else if (result->Reason == ResultReason::NoMatch) {
            cout << "NOMATCH: Speech could not be recognized." << std::endl;
        }
        else if (result->Reason == 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;
            }
        }
    }
    
    int main(int argc, char **argv) {
        setlocale(LC_ALL, "");
        recognizeSpeech();
        return 0;
    }
    
  2. Ersätt strängen YourSubscriptionKey med din prenumerations nyckel för tal tjänster i den nya filen.In this new file, replace the string YourSubscriptionKey with your Speech Services subscription key.

  3. Ersätt strängen YourServiceRegion med den region som är associerad med din prenumeration (till exempel westus för en kostnadsfri provprenumeration).Replace the string YourServiceRegion with the region associated with your subscription (for example, westus for the free trial subscription).

Skapa appenBuild the app

Anteckning

Se till att ange kommandon nedan som en enda kommandorad.Make sure to enter the commands below as a single command line. Det enklaste sättet att göra det är att kopiera kommandot med hjälp av kopieringsknappen bredvid varje kommando och klistra in den i gränssnittsprompten.The easiest way to do that is to copy the command by using the Copy button next to each command, and then paste it at your shell prompt.

  • Kör följande kommando för att skapa programmet i ett x64-system (64-bitars).On an x64 (64-bit) system, run the following command to build the application.

    g++ helloworld.cpp -o helloworld -I "$SPEECHSDK_ROOT/include/cxx_api" -I "$SPEECHSDK_ROOT/include/c_api" --std=c++14 -lpthread -lMicrosoft.CognitiveServices.Speech.core -L "$SPEECHSDK_ROOT/lib/x64" -l:libasound.so.2
    
  • Kör följande kommando för att skapa programmet i ett x86-system (32-bitars).On an x86 (32-bit) system, run the following command to build the application.

    g++ helloworld.cpp -o helloworld -I "$SPEECHSDK_ROOT/include/cxx_api" -I "$SPEECHSDK_ROOT/include/c_api" --std=c++14 -lpthread -lMicrosoft.CognitiveServices.Speech.core -L "$SPEECHSDK_ROOT/lib/x86" -l:libasound.so.2
    
  • Kör följande kommando i ett arm64 -system (64-bitars) för att skapa programmet.On an ARM64 (64-bit) system, run the following command to build the application.

    g++ helloworld.cpp -o helloworld -I "$SPEECHSDK_ROOT/include/cxx_api" -I "$SPEECHSDK_ROOT/include/c_api" --std=c++14 -lpthread -lMicrosoft.CognitiveServices.Speech.core -L "$SPEECHSDK_ROOT/lib/arm64" -l:libasound.so.2
    

Kör appenRun the app

  1. Konfigurera inläsarens bibliotekssökväg så att den pekar på Speech SDK-biblioteket.Configure the loader's library path to point to the Speech SDK library.

    • På ett x64-system (64-bitars) anger du följande kommando.On an x64 (64-bit) system, enter the following command.

      export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$SPEECHSDK_ROOT/lib/x64"
      
    • På ett x86-system (32-bitars) anger du följande kommando.On an x86 (32-bit) system, enter this command.

      export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$SPEECHSDK_ROOT/lib/x86"
      
    • I ett arm64 -system (64-bitars) anger du följande kommando.On an ARM64 (64-bit) system, enter the following command.

      export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$SPEECHSDK_ROOT/lib/arm64"
      
  2. Kör appen.Run the application.

    ./helloworld
    
  3. I konsolfönstret visas en uppmaning som ber dig säga något.In the console window, a prompt appears, requesting that you say something. Säg en engelsk fras eller en mening.Speak an English phrase or sentence. Ditt tal överförs till tal tjänsterna och skrivs till text som visas i samma fönster.Your speech is transmitted to the Speech Services and transcribed to text, which appears in the same window.

    Say something...
    We recognized: What's the weather like?
    

Nästa stegNext steps

Se ocksåSee also