快速入門:辨識語音並轉換成文字

GitHub 上的參考檔 | 套件 (NuGet) | 其他範例

在此快速入門中,您會建立並執行應用程式,以即時辨識和轉譯語音轉換文字。

提示

您可以在 Speech Studio 中嘗試即時語音轉換文字,而不需要註冊或撰寫任何程式碼。

若要改為以異步方式轉譯音訊檔案,請參閱 什麼是批次轉譯。 如果您不確定哪個語音轉換文字解決方案適合您,請參閱 什麼是語音轉換文字?

必要條件

  • Azure 訂用帳戶 - 免費建立一個訂用帳戶。
  • 在 Azure 入口網站上建立語音資源
  • 您的語音資源金鑰和區域。 部署語音資源之後,請選取 [移至資源 ] 以檢視和管理密鑰。 如需 Azure AI 服務資源的詳細資訊,請參閱取得資源的金鑰

設定環境

語音 SDK 可作為 NuGet 套件使用,並實作 .NET Standard 2.0。 您稍後會在本指南中安裝語音 SDK。 如需任何其他需求,請參閱 安裝語音 SDK

設定環境變數

您的應用程式必須經過驗證,才能存取 Azure AI 服務資源。 針對生產環境,請使用安全的方式來儲存和存取您的認證。 例如,取得 語音資源的金鑰 之後,請將它寫入執行應用程式的本機計算機上新的環境變數。

提示

請勿將金鑰直接包含在您的程式代碼中,且絕不會公開發佈。 如需更多驗證選項,請參閱 Azure AI 服務安全性,例如 Azure 金鑰保存庫

若要設定語音資源密鑰的環境變數,請開啟控制台視窗,並遵循作業系統和開發環境的指示。

  • 若要設定SPEECH_KEY環境變數,請將your-key取代為資源的其中一個密鑰。
  • 若要設定SPEECH_REGION環境變數,請將您的區域取代為您資源的其中一個區域。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

注意

如果您只需要存取目前控制台中的環境變數,您可以使用 來設定環境變數 set ,而不是 setx

新增環境變數之後,您可能需要重新啟動任何需要讀取環境變數的程式,包括主控台視窗。 例如,如果您使用 Visual Studio 作為編輯器,請在執行範例之前重新啟動 Visual Studio。

從麥克風辨識語音

請遵循下列步驟來建立主控台應用程式並安裝語音 SDK。

  1. 在您想要新項目的資料夾中開啟命令提示字元視窗。 執行此命令以使用 .NET CLI 建立主控台應用程式。

    dotnet new console
    

    此命令會在 您的項目目錄中建立Program.cs 檔案。

  2. 使用 .NET CLI 在您的新專案中安裝語音 SDK。

    dotnet add package Microsoft.CognitiveServices.Speech
    
  3. 使用下列程式碼取代 Program.cs 的內容:

    using System;
    using System.IO;
    using System.Threading.Tasks;
    using Microsoft.CognitiveServices.Speech;
    using Microsoft.CognitiveServices.Speech.Audio;
    
    class Program 
    {
        // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION"
        static string speechKey = Environment.GetEnvironmentVariable("SPEECH_KEY");
        static string speechRegion = Environment.GetEnvironmentVariable("SPEECH_REGION");
    
        static void OutputSpeechRecognitionResult(SpeechRecognitionResult speechRecognitionResult)
        {
            switch (speechRecognitionResult.Reason)
            {
                case ResultReason.RecognizedSpeech:
                    Console.WriteLine($"RECOGNIZED: Text={speechRecognitionResult.Text}");
                    break;
                case ResultReason.NoMatch:
                    Console.WriteLine($"NOMATCH: Speech could not be recognized.");
                    break;
                case ResultReason.Canceled:
                    var cancellation = CancellationDetails.FromResult(speechRecognitionResult);
                    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 set the speech resource key and region values?");
                    }
                    break;
            }
        }
    
        async static Task Main(string[] args)
        {
            var speechConfig = SpeechConfig.FromSubscription(speechKey, speechRegion);        
            speechConfig.SpeechRecognitionLanguage = "en-US";
    
            using var audioConfig = AudioConfig.FromDefaultMicrophoneInput();
            using var speechRecognizer = new SpeechRecognizer(speechConfig, audioConfig);
    
            Console.WriteLine("Speak into your microphone.");
            var speechRecognitionResult = await speechRecognizer.RecognizeOnceAsync();
            OutputSpeechRecognitionResult(speechRecognitionResult);
        }
    }
    
  4. 若要變更語音辨識語言,請將 取代 en-US 為另一種 支持的語言。 例如,用於 es-ES 西班牙文(西班牙)。 如果您未指定語言,則預設值為 en-US。 如需如何識別其中一種可能說出的多種語言的詳細資訊,請參閱 語言識別

  5. 執行新的主控台應用程式,從麥克風啟動語音辨識:

    dotnet run
    

    重要

    請確定您已設定 SPEECH_KEYSPEECH_REGION環境變數。 如果您未設定這些變數,範例會失敗並顯示錯誤訊息。

  6. 出現提示時,請與您的麥克風交談。 說話的內容應該會顯示為文字:

    Speak into your microphone.
    RECOGNIZED: Text=I'm excited to try speech to text.
    

備註

以下是一些其他考慮:

  • 此範例會 RecognizeOnceAsync 使用 作業來轉譯最多 30 秒的語句,或直到偵測到無聲為止。 如需較長音訊的連續辨識資訊,包括多語種交談,請參閱 如何辨識語音

  • 若要辨識來自音訊檔案的語音,請使用 FromWavFileInput 而非 FromDefaultMicrophoneInput

    using var audioConfig = AudioConfig.FromWavFileInput("YourAudioFile.wav");
    
  • 針對 MP4 等壓縮音訊檔案,請安裝 GStreamer 並使用 PullAudioInputStreamPushAudioInputStream。 如需詳細資訊,請參閱 如何使用壓縮的輸入音訊

清除資源

您可以使用 Azure 入口網站Azure 命令行介面 (CLI) 來移除您所建立的語音資源。

GitHub 上的參考檔 | 套件 (NuGet) | 其他範例

在此快速入門中,您會建立並執行應用程式,以即時辨識和轉譯語音轉換文字。

提示

您可以在 Speech Studio 中嘗試即時語音轉換文字,而不需要註冊或撰寫任何程式碼。

若要改為以異步方式轉譯音訊檔案,請參閱 什麼是批次轉譯。 如果您不確定哪個語音轉換文字解決方案適合您,請參閱 什麼是語音轉換文字?

必要條件

  • Azure 訂用帳戶 - 免費建立一個訂用帳戶。
  • 在 Azure 入口網站上建立語音資源
  • 您的語音資源金鑰和區域。 部署語音資源之後,請選取 [移至資源 ] 以檢視和管理密鑰。 如需 Azure AI 服務資源的詳細資訊,請參閱取得資源的金鑰

設定環境

語音 SDK 可作為 NuGet 套件使用,並實作 .NET Standard 2.0。 您稍後會在本指南中安裝語音 SDK。 如需其他需求,請參閱 安裝語音 SDK

設定環境變數

您的應用程式必須經過驗證,才能存取 Azure AI 服務資源。 針對生產環境,請使用安全的方式來儲存和存取您的認證。 例如,取得 語音資源的金鑰 之後,請將它寫入執行應用程式的本機計算機上新的環境變數。

提示

請勿將金鑰直接包含在您的程式代碼中,且絕不會公開發佈。 如需更多驗證選項,請參閱 Azure AI 服務安全性,例如 Azure 金鑰保存庫

若要設定語音資源密鑰的環境變數,請開啟控制台視窗,並遵循作業系統和開發環境的指示。

  • 若要設定SPEECH_KEY環境變數,請將your-key取代為資源的其中一個密鑰。
  • 若要設定SPEECH_REGION環境變數,請將您的區域取代為您資源的其中一個區域。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

注意

如果您只需要存取目前控制台中的環境變數,您可以使用 來設定環境變數 set ,而不是 setx

新增環境變數之後,您可能需要重新啟動任何需要讀取環境變數的程式,包括主控台視窗。 例如,如果您使用 Visual Studio 作為編輯器,請在執行範例之前重新啟動 Visual Studio。

從麥克風辨識語音

請遵循下列步驟來建立主控台應用程式並安裝語音 SDK。

  1. 在名為SpeechRecognition的Visual Studio Community建立新的 C++ 控制台專案。

  2. 選取 [工具>Nuget 封裝管理員> 封裝管理員 控制台]。封裝管理員 主控台中,執行此命令:

    Install-Package Microsoft.CognitiveServices.Speech
    
  3. 以下列程式碼取代 SpeechRecognition.cpp 的內容:

    #include <iostream> 
    #include <stdlib.h>
    #include <speechapi_cxx.h>
    
    using namespace Microsoft::CognitiveServices::Speech;
    using namespace Microsoft::CognitiveServices::Speech::Audio;
    
    std::string GetEnvironmentVariable(const char* name);
    
    int main()
    {
        // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION"
        auto speechKey = GetEnvironmentVariable("SPEECH_KEY");
        auto speechRegion = GetEnvironmentVariable("SPEECH_REGION");
    
        if ((size(speechKey) == 0) || (size(speechRegion) == 0)) {
            std::cout << "Please set both SPEECH_KEY and SPEECH_REGION environment variables." << std::endl;
            return -1;
        }
    
        auto speechConfig = SpeechConfig::FromSubscription(speechKey, speechRegion);
    
        speechConfig->SetSpeechRecognitionLanguage("en-US");
    
        auto audioConfig = AudioConfig::FromDefaultMicrophoneInput();
        auto speechRecognizer = SpeechRecognizer::FromConfig(speechConfig, audioConfig);
    
        std::cout << "Speak into your microphone.\n";
        auto result = speechRecognizer->RecognizeOnceAsync().get();
    
        if (result->Reason == ResultReason::RecognizedSpeech)
        {
            std::cout << "RECOGNIZED: Text=" << result->Text << std::endl;
        }
        else if (result->Reason == ResultReason::NoMatch)
        {
            std::cout << "NOMATCH: Speech could not be recognized." << std::endl;
        }
        else if (result->Reason == ResultReason::Canceled)
        {
            auto cancellation = CancellationDetails::FromResult(result);
            std::cout << "CANCELED: Reason=" << (int)cancellation->Reason << std::endl;
    
            if (cancellation->Reason == CancellationReason::Error)
            {
                std::cout << "CANCELED: ErrorCode=" << (int)cancellation->ErrorCode << std::endl;
                std::cout << "CANCELED: ErrorDetails=" << cancellation->ErrorDetails << std::endl;
                std::cout << "CANCELED: Did you set the speech resource key and region values?" << std::endl;
            }
        }
    }
    
    std::string GetEnvironmentVariable(const char* name)
    {
    #if defined(_MSC_VER)
        size_t requiredSize = 0;
        (void)getenv_s(&requiredSize, nullptr, 0, name);
        if (requiredSize == 0)
        {
            return "";
        }
        auto buffer = std::make_unique<char[]>(requiredSize);
        (void)getenv_s(&requiredSize, buffer.get(), requiredSize, name);
        return buffer.get();
    #else
        auto value = getenv(name);
        return value ? value : "";
    #endif
    }
    
  4. 若要變更語音辨識語言,請將 取代 en-US 為另一種 支持的語言。 例如,用於 es-ES 西班牙文(西班牙)。 如果您未指定語言,則預設值為 en-US。 如需如何識別其中一種可能說出的多種語言的詳細資訊,請參閱 語言識別

  5. 建置並執行 新的控制台應用程式,以從麥克風啟動語音辨識。

    重要

    請確定您已設定 SPEECH_KEYSPEECH_REGION環境變數。 如果您未設定這些變數,範例會失敗並顯示錯誤訊息。

  6. 出現提示時,請與您的麥克風交談。 說話的內容應該會顯示為文字:

    Speak into your microphone.
    RECOGNIZED: Text=I'm excited to try speech to text.
    

備註

以下是一些其他考慮:

  • 此範例會 RecognizeOnceAsync 使用 作業來轉譯最多 30 秒的語句,或直到偵測到無聲為止。 如需較長音訊的連續辨識資訊,包括多語種交談,請參閱 如何辨識語音

  • 若要辨識來自音訊檔案的語音,請使用 FromWavFileInput 而非 FromDefaultMicrophoneInput

    auto audioConfig = AudioConfig::FromWavFileInput("YourAudioFile.wav");
    
  • 針對 MP4 等壓縮音訊檔案,請安裝 GStreamer 並使用 PullAudioInputStreamPushAudioInputStream。 如需詳細資訊,請參閱 如何使用壓縮的輸入音訊

清除資源

您可以使用 Azure 入口網站Azure 命令行介面 (CLI) 來移除您所建立的語音資源。

GitHub 上的參考檔 | 套件 (Go) | 其他範例

在此快速入門中,您會建立並執行應用程式,以即時辨識和轉譯語音轉換文字。

提示

您可以在 Speech Studio 中嘗試即時語音轉換文字,而不需要註冊或撰寫任何程式碼。

若要改為以異步方式轉譯音訊檔案,請參閱 什麼是批次轉譯。 如果您不確定哪個語音轉換文字解決方案適合您,請參閱 什麼是語音轉換文字?

必要條件

  • Azure 訂用帳戶 - 免費建立一個訂用帳戶。
  • 在 Azure 入口網站上建立語音資源
  • 您的語音資源金鑰和區域。 部署語音資源之後,請選取 [移至資源 ] 以檢視和管理密鑰。 如需 Azure AI 服務資源的詳細資訊,請參閱取得資源的金鑰

設定環境

安裝適用於 Go 的語音 SDK。 如需需求和指示,請參閱 安裝語音 SDK

設定環境變數

您的應用程式必須經過驗證,才能存取 Azure AI 服務資源。 針對生產環境,請使用安全的方式來儲存和存取您的認證。 例如,取得 語音資源的金鑰 之後,請將它寫入執行應用程式的本機計算機上新的環境變數。

提示

請勿將金鑰直接包含在您的程式代碼中,且絕不會公開發佈。 如需更多驗證選項,請參閱 Azure AI 服務安全性,例如 Azure 金鑰保存庫

若要設定語音資源密鑰的環境變數,請開啟控制台視窗,並遵循作業系統和開發環境的指示。

  • 若要設定SPEECH_KEY環境變數,請將your-key取代為資源的其中一個密鑰。
  • 若要設定SPEECH_REGION環境變數,請將您的區域取代為您資源的其中一個區域。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

注意

如果您只需要存取目前控制台中的環境變數,您可以使用 來設定環境變數 set ,而不是 setx

新增環境變數之後,您可能需要重新啟動任何需要讀取環境變數的程式,包括主控台視窗。 例如,如果您使用 Visual Studio 作為編輯器,請在執行範例之前重新啟動 Visual Studio。

從麥克風辨識語音

請遵循下列步驟來建立 GO 模組。

  1. 在您想要新項目的資料夾中開啟命令提示字元視窗。 建立名為 speech-recognition.go的新檔案。

  2. 將下列程式代碼複製到 語音辨識.go

    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)
        fmt.Println("Did you set the speech resource key and region values?")
    }
    
    func main() {
        // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION"
        speechKey :=  os.Getenv("SPEECH_KEY")
        speechRegion := os.Getenv("SPEECH_REGION")
    
        audioConfig, err := audio.NewAudioConfigFromDefaultMicrophoneInput()
        if err != nil {
            fmt.Println("Got an error: ", err)
            return
        }
        defer audioConfig.Close()
        speechConfig, err := speech.NewSpeechConfigFromSubscription(speechKey, speechRegion)
        if err != nil {
            fmt.Println("Got an error: ", err)
            return
        }
        defer speechConfig.Close()
        speechRecognizer, err := speech.NewSpeechRecognizerFromConfig(speechConfig, 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')
    }
    
  3. 執行下列命令來建立 go.mod 檔案,以連結至 GitHub 上裝載的元件:

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

    重要

    請確定您已設定 SPEECH_KEYSPEECH_REGION環境變數。 如果您未設定這些變數,範例會失敗並顯示錯誤訊息。

  4. 建置並執行程式代碼:

    go build
    go run speech-recognition
    

清除資源

您可以使用 Azure 入口網站Azure 命令行介面 (CLI) 來移除您所建立的語音資源。

GitHub 上的參考檔 | 其他範例

在此快速入門中,您會建立並執行應用程式,以即時辨識和轉譯語音轉換文字。

提示

您可以在 Speech Studio 中嘗試即時語音轉換文字,而不需要註冊或撰寫任何程式碼。

若要改為以異步方式轉譯音訊檔案,請參閱 什麼是批次轉譯。 如果您不確定哪個語音轉換文字解決方案適合您,請參閱 什麼是語音轉換文字?

必要條件

  • Azure 訂用帳戶 - 免費建立一個訂用帳戶。
  • 在 Azure 入口網站上建立語音資源
  • 您的語音資源金鑰和區域。 部署語音資源之後,請選取 [移至資源 ] 以檢視和管理密鑰。 如需 Azure AI 服務資源的詳細資訊,請參閱取得資源的金鑰

設定環境

若要設定環境, 請安裝語音 SDK。 本快速入門中的範例適用於 Java 運行時間

  1. 安裝 Apache Maven。 然後執行 mvn -v 以確認安裝成功。

  2. 在專案的根目錄中建立新 pom.xml 檔案,並將下列程式代碼複製到其中:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.microsoft.cognitiveservices.speech.samples</groupId>
        <artifactId>quickstart-eclipse</artifactId>
        <version>1.0.0-SNAPSHOT</version>
        <build>
            <sourceDirectory>src</sourceDirectory>
            <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                <source>1.8</source>
                <target>1.8</target>
                </configuration>
            </plugin>
            </plugins>
        </build>
        <dependencies>
            <dependency>
            <groupId>com.microsoft.cognitiveservices.speech</groupId>
            <artifactId>client-sdk</artifactId>
            <version>1.35.0</version>
            </dependency>
        </dependencies>
    </project>
    
  3. 安裝語音 SDK 和相依性。

    mvn clean dependency:copy-dependencies
    

設定環境變數

您的應用程式必須經過驗證,才能存取 Azure AI 服務資源。 針對生產環境,請使用安全的方式來儲存和存取您的認證。 例如,取得 語音資源的金鑰 之後,請將它寫入執行應用程式的本機計算機上新的環境變數。

提示

請勿將金鑰直接包含在您的程式代碼中,且絕不會公開發佈。 如需更多驗證選項,請參閱 Azure AI 服務安全性,例如 Azure 金鑰保存庫

若要設定語音資源密鑰的環境變數,請開啟控制台視窗,並遵循作業系統和開發環境的指示。

  • 若要設定SPEECH_KEY環境變數,請將your-key取代為資源的其中一個密鑰。
  • 若要設定SPEECH_REGION環境變數,請將您的區域取代為您資源的其中一個區域。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

注意

如果您只需要存取目前控制台中的環境變數,您可以使用 來設定環境變數 set ,而不是 setx

新增環境變數之後,您可能需要重新啟動任何需要讀取環境變數的程式,包括主控台視窗。 例如,如果您使用 Visual Studio 作為編輯器,請在執行範例之前重新啟動 Visual Studio。

從麥克風辨識語音

請遵循下列步驟來建立語音辨識的主控台應用程式。

  1. 在相同的專案根目錄中,建立名為 SpeechRecognition.java 的新檔案。

  2. 將下列程式代碼複製到 SpeechRecognition.java

    import com.microsoft.cognitiveservices.speech.*;
    import com.microsoft.cognitiveservices.speech.audio.AudioConfig;
    
    import java.util.concurrent.ExecutionException;
    import java.util.concurrent.Future;
    
    public class SpeechRecognition {
        // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION"
        private static String speechKey = System.getenv("SPEECH_KEY");
        private static String speechRegion = System.getenv("SPEECH_REGION");
    
        public static void main(String[] args) throws InterruptedException, ExecutionException {
            SpeechConfig speechConfig = SpeechConfig.fromSubscription(speechKey, speechRegion);
            speechConfig.setSpeechRecognitionLanguage("en-US");
            recognizeFromMicrophone(speechConfig);
        }
    
        public static void recognizeFromMicrophone(SpeechConfig speechConfig) throws InterruptedException, ExecutionException {
            AudioConfig audioConfig = AudioConfig.fromDefaultMicrophoneInput();
            SpeechRecognizer speechRecognizer = new SpeechRecognizer(speechConfig, audioConfig);
    
            System.out.println("Speak into your microphone.");
            Future<SpeechRecognitionResult> task = speechRecognizer.recognizeOnceAsync();
            SpeechRecognitionResult speechRecognitionResult = task.get();
    
            if (speechRecognitionResult.getReason() == ResultReason.RecognizedSpeech) {
                System.out.println("RECOGNIZED: Text=" + speechRecognitionResult.getText());
            }
            else if (speechRecognitionResult.getReason() == ResultReason.NoMatch) {
                System.out.println("NOMATCH: Speech could not be recognized.");
            }
            else if (speechRecognitionResult.getReason() == ResultReason.Canceled) {
                CancellationDetails cancellation = CancellationDetails.fromResult(speechRecognitionResult);
                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 set the speech resource key and region values?");
                }
            }
    
            System.exit(0);
        }
    }
    
  3. 若要變更語音辨識語言,請將 取代 en-US 為另一種 支持的語言。 例如,用於 es-ES 西班牙文(西班牙)。 如果您未指定語言,則預設值為 en-US。 如需如何識別其中一種可能說出的多種語言的詳細資訊,請參閱 語言識別

  4. 執行新的主控台應用程式,從麥克風啟動語音辨識:

    javac SpeechRecognition.java -cp ".;target\dependency\*"
    java -cp ".;target\dependency\*" SpeechRecognition
    

    重要

    請確定您已設定 SPEECH_KEYSPEECH_REGION環境變數。 如果您未設定這些變數,範例會失敗並顯示錯誤訊息。

  5. 出現提示時,請與您的麥克風交談。 說話的內容應該會顯示為文字:

    Speak into your microphone.
    RECOGNIZED: Text=I'm excited to try speech to text.
    

備註

以下是一些其他考慮:

  • 此範例會 RecognizeOnceAsync 使用 作業來轉譯最多 30 秒的語句,或直到偵測到無聲為止。 如需較長音訊的連續辨識資訊,包括多語種交談,請參閱 如何辨識語音

  • 若要辨識來自音訊檔案的語音,請使用 fromWavFileInput 而非 fromDefaultMicrophoneInput

    AudioConfig audioConfig = AudioConfig.fromWavFileInput("YourAudioFile.wav");
    
  • 針對 MP4 等壓縮音訊檔案,請安裝 GStreamer 並使用 PullAudioInputStreamPushAudioInputStream。 如需詳細資訊,請參閱 如何使用壓縮的輸入音訊

清除資源

您可以使用 Azure 入口網站Azure 命令行介面 (CLI) 來移除您所建立的語音資源。

GitHub Library 原始程式碼上的參考文件 | 套件 (npm) | 其他範例 |

在此快速入門中,您會建立並執行應用程式,以即時辨識和轉譯語音轉換文字。

提示

您可以在 Speech Studio 中嘗試即時語音轉換文字,而不需要註冊或撰寫任何程式碼。

若要改為以異步方式轉譯音訊檔案,請參閱 什麼是批次轉譯。 如果您不確定哪個語音轉換文字解決方案適合您,請參閱 什麼是語音轉換文字?

必要條件

  • Azure 訂用帳戶 - 免費建立一個訂用帳戶。
  • 在 Azure 入口網站上建立語音資源
  • 您的語音資源金鑰和區域。 部署語音資源之後,請選取 [移至資源 ] 以檢視和管理密鑰。 如需 Azure AI 服務資源的詳細資訊,請參閱取得資源的金鑰

您也需要 本機電腦上的.wav 音訊檔案。 您可以使用自己的 .wav 檔案(最多 30 秒)或下載 https://crbn.us/whatstheweatherlike.wav 範例檔案。

設定環境

若要設定環境,請安裝適用於 JavaScript 的語音 SDK。 執行此命令︰npm install microsoft-cognitiveservices-speech-sdk。 如需引導式安裝指示,請參閱 安裝語音 SDK

設定環境變數

您的應用程式必須經過驗證,才能存取 Azure AI 服務資源。 針對生產環境,請使用安全的方式來儲存和存取您的認證。 例如,取得 語音資源的金鑰 之後,請將它寫入執行應用程式的本機計算機上新的環境變數。

提示

請勿將金鑰直接包含在您的程式代碼中,且絕不會公開發佈。 如需更多驗證選項,請參閱 Azure AI 服務安全性,例如 Azure 金鑰保存庫

若要設定語音資源密鑰的環境變數,請開啟控制台視窗,並遵循作業系統和開發環境的指示。

  • 若要設定SPEECH_KEY環境變數,請將your-key取代為資源的其中一個密鑰。
  • 若要設定SPEECH_REGION環境變數,請將您的區域取代為您資源的其中一個區域。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

注意

如果您只需要存取目前控制台中的環境變數,您可以使用 來設定環境變數 set ,而不是 setx

新增環境變數之後,您可能需要重新啟動任何需要讀取環境變數的程式,包括主控台視窗。 例如,如果您使用 Visual Studio 作為編輯器,請在執行範例之前重新啟動 Visual Studio。

從檔案辨識語音

請遵循下列步驟來建立Node.js控制台應用程式以進行語音識別。

  1. 開啟您想要新專案的命令提示字元視窗,然後建立名為 SpeechRecognition.js 的新檔案。

  2. 安裝適用於 JavaScript 的語音 SDK:

    npm install microsoft-cognitiveservices-speech-sdk
    
  3. 將下列程式代碼複製到 SpeechRecognition.js

    const fs = require("fs");
    const sdk = require("microsoft-cognitiveservices-speech-sdk");
    
    // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION"
    const speechConfig = sdk.SpeechConfig.fromSubscription(process.env.SPEECH_KEY, process.env.SPEECH_REGION);
    speechConfig.speechRecognitionLanguage = "en-US";
    
    function fromFile() {
        let audioConfig = sdk.AudioConfig.fromWavFileInput(fs.readFileSync("YourAudioFile.wav"));
        let speechRecognizer = new sdk.SpeechRecognizer(speechConfig, audioConfig);
    
        speechRecognizer.recognizeOnceAsync(result => {
            switch (result.reason) {
                case sdk.ResultReason.RecognizedSpeech:
                    console.log(`RECOGNIZED: Text=${result.text}`);
                    break;
                case sdk.ResultReason.NoMatch:
                    console.log("NOMATCH: Speech could not be recognized.");
                    break;
                case sdk.ResultReason.Canceled:
                    const cancellation = sdk.CancellationDetails.fromResult(result);
                    console.log(`CANCELED: Reason=${cancellation.reason}`);
    
                    if (cancellation.reason == sdk.CancellationReason.Error) {
                        console.log(`CANCELED: ErrorCode=${cancellation.ErrorCode}`);
                        console.log(`CANCELED: ErrorDetails=${cancellation.errorDetails}`);
                        console.log("CANCELED: Did you set the speech resource key and region values?");
                    }
                    break;
            }
            speechRecognizer.close();
        });
    }
    fromFile();
    
  4. SpeechRecognition.js 中,以您自己的.wav檔案取代 YourAudioFile.wav 此範例只會辨識來自.wav檔案的語音。 如需其他音訊格式的資訊,請參閱 如何使用壓縮的輸入音訊。 此範例最多支援 30 秒的音訊。

  5. 若要變更語音辨識語言,請將 取代 en-US 為另一種 支持的語言。 例如,用於 es-ES 西班牙文(西班牙)。 如果您未指定語言,則預設值為 en-US。 如需如何識別其中一種可能說出的多種語言的詳細資訊,請參閱 語言識別

  6. 執行新的主控台應用程式,從檔案啟動語音辨識:

    node.exe SpeechRecognition.js
    

    重要

    請確定您已設定 SPEECH_KEYSPEECH_REGION環境變數。 如果您未設定這些變數,範例會失敗並顯示錯誤訊息。

    音訊檔案中的語音應輸出為文字:

    RECOGNIZED: Text=I'm excited to try speech to text.
    

備註

此範例會 recognizeOnceAsync 使用 作業來轉譯最多 30 秒的語句,或直到偵測到無聲為止。 如需較長音訊的連續辨識資訊,包括多語種交談,請參閱 如何辨識語音

注意

Node.js不支援從麥克風辨識語音。 它只支援在瀏覽器型 JavaScript 環境中。 如需詳細資訊,請參閱 React 範例,以及 GitHub 上的從麥克風進行語音轉換文字實作

React 範例會顯示驗證令牌交換和管理的設計模式。 該範例也會顯示要進行語音轉換文字時從麥克風或檔案的音訊擷取。

清除資源

您可以使用 Azure 入口網站Azure 命令行介面 (CLI) 來移除您所建立的語音資源。

GitHub 上的參考檔 | 套件 (下載) | 其他範例

在此快速入門中,您會建立並執行應用程式,以即時辨識和轉譯語音轉換文字。

提示

您可以在 Speech Studio 中嘗試即時語音轉換文字,而不需要註冊或撰寫任何程式碼。

若要改為以異步方式轉譯音訊檔案,請參閱 什麼是批次轉譯。 如果您不確定哪個語音轉換文字解決方案適合您,請參閱 什麼是語音轉換文字?

必要條件

  • Azure 訂用帳戶 - 免費建立一個訂用帳戶。
  • 在 Azure 入口網站上建立語音資源
  • 您的語音資源金鑰和區域。 部署語音資源之後,請選取 [移至資源 ] 以檢視和管理密鑰。 如需 Azure AI 服務資源的詳細資訊,請參閱取得資源的金鑰

設定環境

適用於 Objective-C 的語音 SDK 會以架構套件組合的形式散發。 此架構同時支援 iOS 和 macOS 上的 Objective-C 和 Swift。

語音 SDK 可用於 Xcode 專案中做為 CocoaPod,或 直接 下載並手動連結。 本指南使用CocoaPod。 安裝CocoaPod相依性管理員,如其 安裝指示中所述。

設定環境變數

您的應用程式必須經過驗證,才能存取 Azure AI 服務資源。 針對生產環境,請使用安全的方式來儲存和存取您的認證。 例如,取得 語音資源的金鑰 之後,請將它寫入執行應用程式的本機計算機上新的環境變數。

提示

請勿將金鑰直接包含在您的程式代碼中,且絕不會公開發佈。 如需更多驗證選項,請參閱 Azure AI 服務安全性,例如 Azure 金鑰保存庫

若要設定語音資源密鑰的環境變數,請開啟控制台視窗,並遵循作業系統和開發環境的指示。

  • 若要設定SPEECH_KEY環境變數,請將your-key取代為資源的其中一個密鑰。
  • 若要設定SPEECH_REGION環境變數,請將您的區域取代為您資源的其中一個區域。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

注意

如果您只需要存取目前控制台中的環境變數,您可以使用 來設定環境變數 set ,而不是 setx

新增環境變數之後,您可能需要重新啟動任何需要讀取環境變數的程式,包括主控台視窗。 例如,如果您使用 Visual Studio 作為編輯器,請在執行範例之前重新啟動 Visual Studio。

從麥克風辨識語音

請遵循下列步驟在 macOS 應用程式中辨識語音。

  1. 複製 Azure-Samples/cognitive-services-speech-sdk 存放庫,以在 macOS 範例專案中從 Objective-C 中的麥克風取得辨識語音。 存放庫也有 iOS 範例。

  2. 在主控台視窗中,流覽至下載範例應用程式的 目錄 helloworld

  3. 執行 pod install 命令。 此命令會產生 Xcode helloworld.xcworkspace 工作區,其中包含範例應用程式和語音 SDK 作為相依性。

  4. helloworld.xcworkspace Xcode 中開啟工作區。

  5. 開啟名為 AppDelegate.m 的檔案,並找出 方法, buttonPressed 如下所示。

    - (void)buttonPressed:(NSButton *)button {
        // Creates an instance of a speech config with specified subscription key and service region.
        NSString *speechKey = [[[NSProcessInfo processInfo] environment] objectForKey:@"SPEECH_KEY"];
        NSString *serviceRegion = [[[NSProcessInfo processInfo] environment] objectForKey:@"SPEECH_REGION"];
    
        SPXAudioConfiguration *audioConfig = [[SPXAudioConfiguration alloc] initWithMicrophone:nil];
        SPXSpeechConfiguration *speechConfig = [[SPXSpeechConfiguration alloc] initWithSubscription:speechKey region:serviceRegion];
        SPXSpeechRecognizer *speechRecognizer = [[SPXSpeechRecognizer alloc] initWithSpeechConfiguration:speechConfig language:@"en-US" audioConfiguration:audioConfig];
    
        NSLog(@"Speak into your microphone.");
    
        SPXSpeechRecognitionResult *speechResult = [speechRecognizer recognizeOnce];
    
        // Checks result.
        if (SPXResultReason_Canceled == speechResult.reason) {
            SPXCancellationDetails *details = [[SPXCancellationDetails alloc] initFromCanceledRecognitionResult:speechResult];
            NSLog(@"Speech recognition was canceled: %@. Did you set the speech resource key and region values?", details.errorDetails);
            [self.label setStringValue:([NSString stringWithFormat:@"Canceled: %@", details.errorDetails])];
        } else if (SPXResultReason_RecognizedSpeech == speechResult.reason) {
            NSLog(@"Speech recognition result received: %@", speechResult.text);
            [self.label setStringValue:(speechResult.text)];
        } else {
            NSLog(@"There was an error.");
            [self.label setStringValue:(@"Speech Recognition Error")];
        }
    }
    
  6. AppDelegate.m 中,使用 您先前為語音資源密鑰和區域設定 的環境變數。

    NSString *speechKey = [[[NSProcessInfo processInfo] environment] objectForKey:@"SPEECH_KEY"];
    NSString *serviceRegion = [[[NSProcessInfo processInfo] environment] objectForKey:@"SPEECH_REGION"];
    
  7. 若要變更語音辨識語言,請將 取代 en-US 為另一種 支持的語言。 例如,用於 es-ES 西班牙文(西班牙)。 如果您未指定語言,則預設值為 en-US。 如需如何識別其中一種可能說出的多種語言的詳細資訊,請參閱 語言識別

  8. 若要顯示偵錯輸出,請選取 [檢視>偵錯區域>啟動主控台]。

  9. 若要建置並執行範例程式代碼,請從功能表中選取 [產品>執行],或選取 [播放] 按鈕。

重要

請確定您已設定 SPEECH_KEYSPEECH_REGION環境變數。 如果您未設定這些變數,範例會失敗並顯示錯誤訊息。

選取應用程式中的按鈕並說幾句話之後,您應該會看到您在畫面下半部發言的文字。 當您第一次執行應用程式時,會提示您授與應用程式存取計算機的麥克風。

備註

以下是一些其他考慮:

  • 此範例會 recognizeOnce 使用 作業來轉譯最多 30 秒的語句,或直到偵測到無聲為止。 如需較長音訊的連續辨識資訊,包括多語種交談,請參閱 如何辨識語音

  • 若要辨識來自音訊檔案的語音,請使用 initWithWavFileInput 而非 initWithMicrophone

    SPXAudioConfiguration *audioConfig = [[SPXAudioConfiguration alloc] initWithWavFileInput:YourAudioFile];
    

清除資源

您可以使用 Azure 入口網站Azure 命令行介面 (CLI) 來移除您所建立的語音資源。

GitHub 上的參考檔 | 套件 (下載) | 其他範例

在此快速入門中,您會建立並執行應用程式,以即時辨識和轉譯語音轉換文字。

提示

您可以在 Speech Studio 中嘗試即時語音轉換文字,而不需要註冊或撰寫任何程式碼。

若要改為以異步方式轉譯音訊檔案,請參閱 什麼是批次轉譯。 如果您不確定哪個語音轉換文字解決方案適合您,請參閱 什麼是語音轉換文字?

必要條件

  • Azure 訂用帳戶 - 免費建立一個訂用帳戶。
  • 在 Azure 入口網站上建立語音資源
  • 您的語音資源金鑰和區域。 部署語音資源之後,請選取 [移至資源 ] 以檢視和管理密鑰。 如需 Azure AI 服務資源的詳細資訊,請參閱取得資源的金鑰

設定環境

適用於 Swift 的語音 SDK 會以架構套件組合的形式散發。 此架構同時支援 iOS 和 macOS 上的 Objective-C 和 Swift。

語音 SDK 可用於 Xcode 專案中做為 CocoaPod,或 直接 下載並手動連結。 本指南使用CocoaPod。 安裝CocoaPod相依性管理員,如其 安裝指示中所述。

設定環境變數

您的應用程式必須經過驗證,才能存取 Azure AI 服務資源。 針對生產環境,請使用安全的方式來儲存和存取您的認證。 例如,取得 語音資源的金鑰 之後,請將它寫入執行應用程式的本機計算機上新的環境變數。

提示

請勿將金鑰直接包含在您的程式代碼中,且絕不會公開發佈。 如需更多驗證選項,請參閱 Azure AI 服務安全性,例如 Azure 金鑰保存庫

若要設定語音資源密鑰的環境變數,請開啟控制台視窗,並遵循作業系統和開發環境的指示。

  • 若要設定SPEECH_KEY環境變數,請將your-key取代為資源的其中一個密鑰。
  • 若要設定SPEECH_REGION環境變數,請將您的區域取代為您資源的其中一個區域。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

注意

如果您只需要存取目前控制台中的環境變數,您可以使用 來設定環境變數 set ,而不是 setx

新增環境變數之後,您可能需要重新啟動任何需要讀取環境變數的程式,包括主控台視窗。 例如,如果您使用 Visual Studio 作為編輯器,請在執行範例之前重新啟動 Visual Studio。

從麥克風辨識語音

請遵循下列步驟在 macOS 應用程式中辨識語音。

  1. 複製 Azure-Samples/cognitive-services-speech-sdk 存放庫,以在 macOS 範例專案中從 Swift 中的麥克風取得辨識語音。 存放庫也有 iOS 範例。

  2. 流覽至終端機中下載範例應用程式 (helloworld) 的目錄。

  3. 執行 pod install 命令。 此命令會產生 Xcode helloworld.xcworkspace 工作區,其中包含範例應用程式和語音 SDK 作為相依性。

  4. helloworld.xcworkspace Xcode 中開啟工作區。

  5. 開啟名為 AppDelegate.swiftapplicationDidFinishLaunching 檔案,並找出 和 recognizeFromMic 方法,如下所示。

    import Cocoa
    
    @NSApplicationMain
    class AppDelegate: NSObject, NSApplicationDelegate {
        var label: NSTextField!
        var fromMicButton: NSButton!
    
        var sub: String!
        var region: String!
    
        @IBOutlet weak var window: NSWindow!
    
        func applicationDidFinishLaunching(_ aNotification: Notification) {
            print("loading")
            // load subscription information
            sub = ProcessInfo.processInfo.environment["SPEECH_KEY"]
            region = ProcessInfo.processInfo.environment["SPEECH_REGION"]
    
            label = NSTextField(frame: NSRect(x: 100, y: 50, width: 200, height: 200))
            label.textColor = NSColor.black
            label.lineBreakMode = .byWordWrapping
    
            label.stringValue = "Recognition Result"
            label.isEditable = false
    
            self.window.contentView?.addSubview(label)
    
            fromMicButton = NSButton(frame: NSRect(x: 100, y: 300, width: 200, height: 30))
            fromMicButton.title = "Recognize"
            fromMicButton.target = self
            fromMicButton.action = #selector(fromMicButtonClicked)
            self.window.contentView?.addSubview(fromMicButton)
        }
    
        @objc func fromMicButtonClicked() {
            DispatchQueue.global(qos: .userInitiated).async {
                self.recognizeFromMic()
            }
        }
    
        func recognizeFromMic() {
            var speechConfig: SPXSpeechConfiguration?
            do {
                try speechConfig = SPXSpeechConfiguration(subscription: sub, region: region)
            } catch {
                print("error \(error) happened")
                speechConfig = nil
            }
            speechConfig?.speechRecognitionLanguage = "en-US"
    
            let audioConfig = SPXAudioConfiguration()
    
            let reco = try! SPXSpeechRecognizer(speechConfiguration: speechConfig!, audioConfiguration: audioConfig)
    
            reco.addRecognizingEventHandler() {reco, evt in
                print("intermediate recognition result: \(evt.result.text ?? "(no result)")")
                self.updateLabel(text: evt.result.text, color: .gray)
            }
    
            updateLabel(text: "Listening ...", color: .gray)
            print("Listening...")
    
            let result = try! reco.recognizeOnce()
            print("recognition result: \(result.text ?? "(no result)"), reason: \(result.reason.rawValue)")
            updateLabel(text: result.text, color: .black)
    
            if result.reason != SPXResultReason.recognizedSpeech {
                let cancellationDetails = try! SPXCancellationDetails(fromCanceledRecognitionResult: result)
                print("cancelled: \(result.reason), \(cancellationDetails.errorDetails)")
                print("Did you set the speech resource key and region values?")
                updateLabel(text: "Error: \(cancellationDetails.errorDetails)", color: .red)
            }
        }
    
        func updateLabel(text: String?, color: NSColor) {
            DispatchQueue.main.async {
                self.label.stringValue = text!
                self.label.textColor = color
            }
        }
    }
    
  6. AppDelegate.m 中,使用 您先前為語音資源密鑰和區域設定 的環境變數。

    sub = ProcessInfo.processInfo.environment["SPEECH_KEY"]
    region = ProcessInfo.processInfo.environment["SPEECH_REGION"]
    
  7. 若要變更語音辨識語言,請將 取代 en-US 為另一種 支持的語言。 例如,用於 es-ES 西班牙文(西班牙)。 如果您未指定語言,則預設值為 en-US。 如需如何識別其中一種可能說出的多種語言的詳細資訊,請參閱 語言識別

  8. 若要顯示偵錯輸出,請選取 [檢視>偵錯區域>啟動主控台]。

  9. 從功能表中選取 [產品>執行] 或選取 [播放] 按鈕,以建置並執行範例程序代碼。

    重要

    請確定您已設定 SPEECH_KEYSPEECH_REGION環境變數。 如果您未設定這些變數,範例會失敗並顯示錯誤訊息。

選取應用程式中的按鈕並說幾句話之後,您應該會看到您在畫面下半部發言的文字。 當您第一次執行應用程式時,會提示您授與應用程式存取計算機的麥克風。

備註

此範例會 recognizeOnce 使用 作業來轉譯最多 30 秒的語句,或直到偵測到無聲為止。 如需較長音訊的連續辨識資訊,包括多語種交談,請參閱 如何辨識語音

清除資源

您可以使用 Azure 入口網站Azure 命令行介面 (CLI) 來移除您所建立的語音資源。

GitHub 上的參考檔 | 套件 (PyPi) | 其他範例

在此快速入門中,您會建立並執行應用程式,以即時辨識和轉譯語音轉換文字。

提示

您可以在 Speech Studio 中嘗試即時語音轉換文字,而不需要註冊或撰寫任何程式碼。

若要改為以異步方式轉譯音訊檔案,請參閱 什麼是批次轉譯。 如果您不確定哪個語音轉換文字解決方案適合您,請參閱 什麼是語音轉換文字?

必要條件

  • Azure 訂用帳戶 - 免費建立一個訂用帳戶。
  • 在 Azure 入口網站上建立語音資源
  • 您的語音資源金鑰和區域。 部署語音資源之後,請選取 [移至資源 ] 以檢視和管理密鑰。 如需 Azure AI 服務資源的詳細資訊,請參閱取得資源的金鑰

設定環境

適用於 Python 的語音 SDK 可作為 Python 套件索引 (PyPI) 模組。 適用於 Python 的語音 SDK 與 Windows、Linux 和 macOS 相容。

安裝 Python 從 3.7 或更新的版本。 如需其他需求,請參閱 安裝語音 SDK

設定環境變數

您的應用程式必須經過驗證,才能存取 Azure AI 服務資源。 針對生產環境,請使用安全的方式來儲存和存取您的認證。 例如,取得 語音資源的金鑰 之後,請將它寫入執行應用程式的本機計算機上新的環境變數。

提示

請勿將金鑰直接包含在您的程式代碼中,且絕不會公開發佈。 如需更多驗證選項,請參閱 Azure AI 服務安全性,例如 Azure 金鑰保存庫

若要設定語音資源密鑰的環境變數,請開啟控制台視窗,並遵循作業系統和開發環境的指示。

  • 若要設定SPEECH_KEY環境變數,請將your-key取代為資源的其中一個密鑰。
  • 若要設定SPEECH_REGION環境變數,請將您的區域取代為您資源的其中一個區域。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

注意

如果您只需要存取目前控制台中的環境變數,您可以使用 來設定環境變數 set ,而不是 setx

新增環境變數之後,您可能需要重新啟動任何需要讀取環境變數的程式,包括主控台視窗。 例如,如果您使用 Visual Studio 作為編輯器,請在執行範例之前重新啟動 Visual Studio。

從麥克風辨識語音

請遵循下列步驟來建立主控台應用程式。

  1. 在您想要新項目的資料夾中開啟命令提示字元視窗。 建立名為 speech_recognition.py 的新檔案。

  2. 執行此指令以安裝語音 SDK:

    pip install azure-cognitiveservices-speech
    
  3. 將下列程式代碼複製到 speech_recognition.py

    import os
    import azure.cognitiveservices.speech as speechsdk
    
    def recognize_from_microphone():
        # This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION"
        speech_config = speechsdk.SpeechConfig(subscription=os.environ.get('SPEECH_KEY'), region=os.environ.get('SPEECH_REGION'))
        speech_config.speech_recognition_language="en-US"
    
        audio_config = speechsdk.audio.AudioConfig(use_default_microphone=True)
        speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_config)
    
        print("Speak into your microphone.")
        speech_recognition_result = speech_recognizer.recognize_once_async().get()
    
        if speech_recognition_result.reason == speechsdk.ResultReason.RecognizedSpeech:
            print("Recognized: {}".format(speech_recognition_result.text))
        elif speech_recognition_result.reason == speechsdk.ResultReason.NoMatch:
            print("No speech could be recognized: {}".format(speech_recognition_result.no_match_details))
        elif speech_recognition_result.reason == speechsdk.ResultReason.Canceled:
            cancellation_details = speech_recognition_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))
                print("Did you set the speech resource key and region values?")
    
    recognize_from_microphone()
    
  4. 若要變更語音辨識語言,請將 取代 en-US 為另一種 支持的語言。 例如,用於 es-ES 西班牙文(西班牙)。 如果您未指定語言,則預設值為 en-US。 如需如何識別其中一種可能說出的多種語言的詳細資訊,請參閱 語言識別

  5. 執行新的主控台應用程式,從麥克風啟動語音辨識:

    python speech_recognition.py
    

    重要

    請確定您已設定 SPEECH_KEYSPEECH_REGION環境變數。 如果您未設定這些變數,範例會失敗並顯示錯誤訊息。

  6. 出現提示時,請與您的麥克風交談。 說話的內容應該會顯示為文字:

    Speak into your microphone.
    RECOGNIZED: Text=I'm excited to try speech to text.
    

備註

以下是一些其他考慮:

  • 此範例會 recognize_once_async 使用 作業來轉譯最多 30 秒的語句,或直到偵測到無聲為止。 如需較長音訊的連續辨識資訊,包括多語種交談,請參閱 如何辨識語音

  • 若要辨識來自音訊檔案的語音,請使用 filename 而非 use_default_microphone

    audio_config = speechsdk.audio.AudioConfig(filename="YourAudioFile.wav")
    
  • 針對 MP4 等壓縮音訊檔案,請安裝 GStreamer 並使用 PullAudioInputStreamPushAudioInputStream。 如需詳細資訊,請參閱 如何使用壓縮的輸入音訊

清除資源

您可以使用 Azure 入口網站Azure 命令行介面 (CLI) 來移除您所建立的語音資源。

語音轉換文字 REST API 參考 | 適用於簡短音訊的語音轉換文字 REST API 參考 | GitHub 上的其他範例

在此快速入門中,您會建立並執行應用程式,以即時辨識和轉譯語音轉換文字。

提示

您可以在 Speech Studio 中嘗試即時語音轉換文字,而不需要註冊或撰寫任何程式碼。

若要改為以異步方式轉譯音訊檔案,請參閱 什麼是批次轉譯。 如果您不確定哪個語音轉換文字解決方案適合您,請參閱 什麼是語音轉換文字?

必要條件

  • Azure 訂用帳戶 - 免費建立一個訂用帳戶。
  • 在 Azure 入口網站上建立語音資源
  • 您的語音資源金鑰和區域。 部署語音資源之後,請選取 [移至資源 ] 以檢視和管理密鑰。 如需 Azure AI 服務資源的詳細資訊,請參閱取得資源的金鑰

您也需要 本機電腦上的.wav 音訊檔案。 您可以使用自己的 .wav 檔案,最多 60 秒或下載 https://crbn.us/whatstheweatherlike.wav 範例檔案。

設定環境變數

您的應用程式必須經過驗證,才能存取 Azure AI 服務資源。 針對生產環境,請使用安全的方式來儲存和存取您的認證。 例如,取得 語音資源的金鑰 之後,請將它寫入執行應用程式的本機計算機上新的環境變數。

提示

請勿將金鑰直接包含在您的程式代碼中,且絕不會公開發佈。 如需更多驗證選項,請參閱 Azure AI 服務安全性,例如 Azure 金鑰保存庫

若要設定語音資源密鑰的環境變數,請開啟控制台視窗,並遵循作業系統和開發環境的指示。

  • 若要設定SPEECH_KEY環境變數,請將your-key取代為資源的其中一個密鑰。
  • 若要設定SPEECH_REGION環境變數,請將您的區域取代為您資源的其中一個區域。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

注意

如果您只需要存取目前控制台中的環境變數,您可以使用 來設定環境變數 set ,而不是 setx

新增環境變數之後,您可能需要重新啟動任何需要讀取環境變數的程式,包括主控台視窗。 例如,如果您使用 Visual Studio 作為編輯器,請在執行範例之前重新啟動 Visual Studio。

從檔案辨識語音

開啟主控台視窗,然後執行下列 cURL 命令。 以音訊檔案的路徑和名稱取代 YourAudioFile.wav

curl --location --request POST "https://%SPEECH_REGION%.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?language=en-US&format=detailed" ^
--header "Ocp-Apim-Subscription-Key: %SPEECH_KEY%" ^
--header "Content-Type: audio/wav" ^
--data-binary "@YourAudioFile.wav"

重要

請確定您已設定 SPEECH_KEYSPEECH_REGION環境變數。 如果您未設定這些變數,範例會失敗並顯示錯誤訊息。

您應該會收到類似此處所示的回應。 DisplayText應該是從音訊檔案辨識的文字。 此命令可辨識最多 60 秒的音訊,並將它轉換成文字。

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

如需詳細資訊,請參閱簡短音訊的語音轉換文字 REST API

清除資源

您可以使用 Azure 入口網站Azure 命令行介面 (CLI) 來移除您所建立的語音資源。

在此快速入門中,您會建立並執行應用程式,以即時辨識和轉譯語音轉換文字。

提示

您可以在 Speech Studio 中嘗試即時語音轉換文字,而不需要註冊或撰寫任何程式碼。

若要改為以異步方式轉譯音訊檔案,請參閱 什麼是批次轉譯。 如果您不確定哪個語音轉換文字解決方案適合您,請參閱 什麼是語音轉換文字?

必要條件

  • Azure 訂用帳戶 - 免費建立一個訂用帳戶。
  • 在 Azure 入口網站上建立語音資源
  • 您的語音資源金鑰和區域。 部署語音資源之後,請選取 [移至資源 ] 以檢視和管理密鑰。 如需 Azure AI 服務資源的詳細資訊,請參閱取得資源的金鑰

設定環境

請遵循下列步驟,並參閱 語音 CLI 快速入門 ,以了解平臺的其他需求。

  1. 執行下列 .NET CLI 命令以安裝語音 CLI:

    dotnet tool install --global Microsoft.CognitiveServices.Speech.CLI
    
  2. 執行下列命令來設定您的語音資源金鑰和區域。 將 取代 SUBSCRIPTION-KEY 為您的語音資源密鑰,並將 取代 REGION 為您的語音資源區域。

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

從麥克風辨識語音

  1. 執行下列命令以從麥克風啟動語音辨識:

    spx recognize --microphone --source en-US
    
  2. 說話到麥克風,您會看到文字實時轉譯成文字。 語音 CLI 會在一段無聲、30 秒或選取 Ctrl+C 之後停止。

    Connection CONNECTED...
    RECOGNIZED: I'm excited to try speech to text.
    

備註

以下是一些其他考慮:

  • 若要從音訊檔案辨識語音,請使用 --file 而非 --microphone。 針對 MP4 等壓縮音訊檔案,請安裝 GStreamer 並使用 --format。 如需詳細資訊,請參閱 如何使用壓縮的輸入音訊

    spx recognize --file YourAudioFile.wav
    spx recognize --file YourAudioFile.mp4 --format any
    
  • 若要改善特定單字或語句的辨識精確度,請使用 片語列清單。 您可以包含內嵌的片語清單,或包含文字檔案以及 recognize 命令:

    spx recognize --microphone --phrases "Contoso;Jessie;Rehaan;"
    spx recognize --microphone --phrases @phrases.txt
    
  • 若要變更語音辨識語言,請將 取代 en-US 為另一種 支持的語言。 例如,用於 es-ES 西班牙文(西班牙)。 如果您未指定語言,則預設值為 en-US

    spx recognize --microphone --source es-ES
    
  • 若要連續辨識超過 30 秒的音訊,請附加 --continuous

    spx recognize --microphone --source es-ES --continuous
    
  • 執行此指令以取得更多語音辨識選項的相關信息,例如檔案輸入和輸出:

    spx help recognize
    

清除資源

您可以使用 Azure 入口網站Azure 命令行介面 (CLI) 來移除您所建立的語音資源。

後續步驟