クイックスタート: 音声を認識してテキストに変換する

リファレンス ドキュメントパッケージ (NuGet)GitHub のその他のサンプル

このクイックスタートでは、音声を認識してリアルタイムでテキストに変換するアプリケーションを作成して実行します。

ヒント

Speech Studio では、サインアップやコードの記述を行わずに、リアルタイムの音声テキスト変換を試すことができます。

代わりに、オーディオ ファイルを非同期的に文字起こしするには、バッチ文字起こしに関するページを参照してください。 最適な音声テキスト変換ソリューションがわからない場合は、音声テキスト変換の概要に関するドキュメントを参照してください。

前提条件

環境をセットアップする

Speech SDK は NuGet パッケージとして提供されていて、.NET Standard 2.0 が実装されています。 Azure Cognitive Service for Speech SDK は、このガイドで後でインストールしますが、まず、これ以上要件がないか SDK のインストール ガイドを確認してください。

環境変数の設定

Cognitive Services リソースにアクセスするには、アプリケーションを認証する必要があります。 運用環境では、資格情報を安全に保存してアクセスできる方法を使用してください。 たとえば、 Speech リソースキーを取得した後、アプリケーションを実行しているローカル コンピューター上の新しい環境変数に書き込みます。

ヒント

キーは、コードに直接含めないようにし、公開しないでください。 Azure Key Vault などのその他の認証オプションについては、Cognitive Services のセキュリティに関する記事を参照してください。

Azure Cognitive Service for Speech リソース キーの環境変数を設定するには、コンソール ウィンドウを開き、オペレーティング システムと開発環境の指示に従います。

  • SPEECH_KEY 環境変数を設定するには、your-key をリソースのキーの 1 つに置き換えます。
  • SPEECH_REGION 環境変数を設定するには、your-region をリソースのリージョンの 1 つに置き換えます。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

Note

現在実行中のコンソール内の環境変数にのみアクセスする必要がある場合は、環境変数を setx の代わりに set に設定できます。

実行中のプログラムのうち、環境変数の読み取りを必要とするプログラム (コンソール ウィンドウを含む) については、環境変数を追加した後で再起動が必要となる場合があります。 たとえば、Visual Studio をエディターとして使用している場合、サンプルを実行する前に Visual Studio を再起動します。

マイクから音声を認識する

以下の手順に従って新しいコンソール アプリケーションを作成し、Speech SDK をインストールします。

  1. 新しいプロジェクトを作成するコマンド プロンプトを開き、.NET CLI を使用してコンソール アプリケーションを作成します。 Program.cs ファイルは、プロジェクト ディレクトリに作成する必要があります。

    dotnet new console
    
  2. .NET CLI を使用して、新しいプロジェクトに Speech 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 を別のen-USに置き換えます。 たとえば、スペイン語 (スペイン) の場合は、es-ES を作成します。 言語を指定しない場合、既定の言語は en-US です。 話される可能性のある複数の言語の 1 つを識別する方法の詳細については、言語の識別に関するページを参照してください。

新しいコンソール アプリケーションを実行して、マイクからの音声認識を開始します。

dotnet run

重要

上記の説明に従って、SPEECH__KEY 環境変数と SPEECH__REGION 環境変数を設定してください。 これらの変数を設定しない場合、サンプルはエラー メッセージが表示されて失敗します。

指示されたらマイクに向って話します。 話すことがテキストとして出力される必要があります。

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

解説

クイックスタートを完了したので、次にいくつか追加の考慮事項を示します。

  • この例では、RecognizeOnceAsync 操作を使用して、最大 30 秒間、または無音が検出されるまでの発話を文字起こししています。 多言語での会話を含め、より長いオーディオの継続的認識については、「音声を認識する方法」を参照してください。
  • オーディオ ファイルから音声を認識するには、FromDefaultMicrophoneInput の代わりに FromWavFileInput を使用します。
    using var audioConfig = AudioConfig.FromWavFileInput("YourAudioFile.wav");
    
  • MP4 などの圧縮されたオーディオ ファイルの場合は、GStreamer をインストールして、PullAudioInputStream または PushAudioInputStream を使います。 詳しくは、「圧縮された入力オーディオを使用する方法」をご覧ください。

リソースをクリーンアップする

Azure portal または Azure コマンドライン インターフェイス (CLI) を使用して、作成した音声リソースを削除できます。

リファレンス ドキュメントパッケージ (NuGet)GitHub のその他のサンプル

このクイックスタートでは、音声を認識してリアルタイムでテキストに変換するアプリケーションを作成して実行します。

ヒント

Speech Studio では、サインアップやコードの記述を行わずに、リアルタイムの音声テキスト変換を試すことができます。

代わりに、オーディオ ファイルを非同期的に文字起こしするには、バッチ文字起こしに関するページを参照してください。 最適な音声テキスト変換ソリューションがわからない場合は、音声テキスト変換の概要に関するドキュメントを参照してください。

前提条件

環境をセットアップする

Speech SDK は NuGet パッケージとして提供されていて、.NET Standard 2.0 が実装されています。 Azure Cognitive Service for Speech SDK は、このガイドで後でインストールしますが、まず、これ以上要件がないか SDK のインストール ガイドを確認してください。

環境変数の設定

Cognitive Services リソースにアクセスするには、アプリケーションを認証する必要があります。 運用環境では、資格情報を安全に保存してアクセスできる方法を使用してください。 たとえば、 Speech リソースキーを取得した後、アプリケーションを実行しているローカル コンピューター上の新しい環境変数に書き込みます。

ヒント

キーは、コードに直接含めないようにし、公開しないでください。 Azure Key Vault などのその他の認証オプションについては、Cognitive Services のセキュリティに関する記事を参照してください。

Azure Cognitive Service for Speech リソース キーの環境変数を設定するには、コンソール ウィンドウを開き、オペレーティング システムと開発環境の指示に従います。

  • SPEECH_KEY 環境変数を設定するには、your-key をリソースのキーの 1 つに置き換えます。
  • SPEECH_REGION 環境変数を設定するには、your-region をリソースのリージョンの 1 つに置き換えます。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

Note

現在実行中のコンソール内の環境変数にのみアクセスする必要がある場合は、環境変数を setx の代わりに set に設定できます。

実行中のプログラムのうち、環境変数の読み取りを必要とするプログラム (コンソール ウィンドウを含む) については、環境変数を追加した後で再起動が必要となる場合があります。 たとえば、Visual Studio をエディターとして使用している場合、サンプルを実行する前に Visual Studio を再起動します。

マイクから音声を認識する

以下の手順に従って新しいコンソール アプリケーションを作成し、Speech SDK をインストールします。

  1. Visual Studio Community 2022 で、SpeechRecognition という新しい C++ コンソール プロジェクトを作成します。

  2. NuGet パッケージ マネージャーを使用して、新しいプロジェクトに Speech SDK をインストールします。

    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 recognizer = SpeechRecognizer::FromConfig(speechConfig, audioConfig);
    
        std::cout << "Speak into your microphone.\n";
        auto result = recognizer->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 を別のen-USに置き換えます。 たとえば、スペイン語 (スペイン) の場合は、es-ES を作成します。 言語を指定しない場合、既定の言語は en-US です。 話される可能性のある複数の言語の 1 つを識別する方法の詳細については、言語の識別に関するページを参照してください。

新しいコンソール アプリケーションをビルドして実行し、マイクからの音声認識を開始します。

重要

上記の説明に従って、SPEECH__KEY 環境変数と SPEECH__REGION 環境変数を設定してください。 これらの変数を設定しない場合、サンプルはエラー メッセージが表示されて失敗します。

指示されたらマイクに向って話します。 話すことがテキストとして出力される必要があります。

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

解説

クイックスタートを完了したので、次にいくつか追加の考慮事項を示します。

  • この例では、RecognizeOnceAsync 操作を使用して、最大 30 秒間、または無音が検出されるまでの発話を文字起こししています。 多言語での会話を含め、より長いオーディオの継続的認識については、「音声を認識する方法」を参照してください。
  • オーディオ ファイルから音声を認識するには、FromDefaultMicrophoneInput の代わりに FromWavFileInput を使用します。
    auto audioInput = AudioConfig::FromWavFileInput("YourAudioFile.wav");
    
  • MP4 などの圧縮されたオーディオ ファイルの場合は、GStreamer をインストールして、PullAudioInputStream または PushAudioInputStream を使います。 詳しくは、「圧縮された入力オーディオを使用する方法」をご覧ください。

リソースをクリーンアップする

Azure portal または Azure コマンドライン インターフェイス (CLI) を使用して、作成した音声リソースを削除できます。

リファレンス ドキュメントパッケージ (Go)GitHub のその他のサンプル

このクイックスタートでは、音声を認識してリアルタイムでテキストに変換するアプリケーションを作成して実行します。

ヒント

Speech Studio では、サインアップやコードの記述を行わずに、リアルタイムの音声テキスト変換を試すことができます。

代わりに、オーディオ ファイルを非同期的に文字起こしするには、バッチ文字起こしに関するページを参照してください。 最適な音声テキスト変換ソリューションがわからない場合は、音声テキスト変換の概要に関するドキュメントを参照してください。

前提条件

環境をセットアップする

Speech SDK for Go をインストールします。 これ以上要件がないか、SDK のインストール ガイドを確認してください。

環境変数の設定

Cognitive Services リソースにアクセスするには、アプリケーションを認証する必要があります。 運用環境では、資格情報を安全に保存してアクセスできる方法を使用してください。 たとえば、 Speech リソースキーを取得した後、アプリケーションを実行しているローカル コンピューター上の新しい環境変数に書き込みます。

ヒント

キーは、コードに直接含めないようにし、公開しないでください。 Azure Key Vault などのその他の認証オプションについては、Cognitive Services のセキュリティに関する記事を参照してください。

Azure Cognitive Service for Speech リソース キーの環境変数を設定するには、コンソール ウィンドウを開き、オペレーティング システムと開発環境の指示に従います。

  • SPEECH_KEY 環境変数を設定するには、your-key をリソースのキーの 1 つに置き換えます。
  • SPEECH_REGION 環境変数を設定するには、your-region をリソースのリージョンの 1 つに置き換えます。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

Note

現在実行中のコンソール内の環境変数にのみアクセスする必要がある場合は、環境変数を setx の代わりに set に設定できます。

実行中のプログラムのうち、環境変数の読み取りを必要とするプログラム (コンソール ウィンドウを含む) については、環境変数を追加した後で再起動が必要となる場合があります。 たとえば、Visual Studio をエディターとして使用している場合、サンプルを実行する前に Visual Studio を再起動します。

マイクから音声を認識する

以下の手順に従って、新しい GO モジュールを作成します。

  1. 新しいモジュールを作成するコマンド プロンプトを開き、speech-recognition.go という名前の新しいファイルを作成します。

  2. speech-recognition.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')
    }
    

次のコマンドを実行して、GitHub でホストされているコンポーネントにリンクする go.mod ファイルを作成します。

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

重要

上記の説明に従って、SPEECH__KEY 環境変数と SPEECH__REGION 環境変数を設定してください。 これらの変数を設定しない場合、サンプルはエラー メッセージが表示されて失敗します。

ここでコードをビルドして実行します。

go build
go run speech-recognition

リソースをクリーンアップする

Azure portal または Azure コマンドライン インターフェイス (CLI) を使用して、作成した音声リソースを削除できます。

リファレンス ドキュメント | GitHub のその他のサンプル

このクイックスタートでは、音声を認識してリアルタイムでテキストに変換するアプリケーションを作成して実行します。

ヒント

Speech Studio では、サインアップやコードの記述を行わずに、リアルタイムの音声テキスト変換を試すことができます。

代わりに、オーディオ ファイルを非同期的に文字起こしするには、バッチ文字起こしに関するページを参照してください。 最適な音声テキスト変換ソリューションがわからない場合は、音声テキスト変換の概要に関するドキュメントを参照してください。

前提条件

環境をセットアップする

何らかの操作を行うには、事前に Speech 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.29.0</version>
            </dependency>
        </dependencies>
    </project>
    
  3. Speech SDK と依存関係をインストールします。
    mvn clean dependency:copy-dependencies
    

環境変数の設定

Cognitive Services リソースにアクセスするには、アプリケーションを認証する必要があります。 運用環境では、資格情報を安全に保存してアクセスできる方法を使用してください。 たとえば、 Speech リソースキーを取得した後、アプリケーションを実行しているローカル コンピューター上の新しい環境変数に書き込みます。

ヒント

キーは、コードに直接含めないようにし、公開しないでください。 Azure Key Vault などのその他の認証オプションについては、Cognitive Services のセキュリティに関する記事を参照してください。

Azure Cognitive Service for Speech リソース キーの環境変数を設定するには、コンソール ウィンドウを開き、オペレーティング システムと開発環境の指示に従います。

  • SPEECH_KEY 環境変数を設定するには、your-key をリソースのキーの 1 つに置き換えます。
  • SPEECH_REGION 環境変数を設定するには、your-region をリソースのリージョンの 1 つに置き換えます。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

Note

現在実行中のコンソール内の環境変数にのみアクセスする必要がある場合は、環境変数を setx の代わりに set に設定できます。

実行中のプログラムのうち、環境変数の読み取りを必要とするプログラム (コンソール ウィンドウを含む) については、環境変数を追加した後で再起動が必要となる場合があります。 たとえば、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 を別のen-USに置き換えます。 たとえば、スペイン語 (スペイン) の場合は、es-ES を作成します。 言語を指定しない場合、既定の言語は en-US です。 話される可能性のある複数の言語の 1 つを識別する方法の詳細については、言語の識別に関するページを参照してください。

新しいコンソール アプリケーションを実行して、マイクからの音声認識を開始します。

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

重要

上記の説明に従って、SPEECH__KEY 環境変数と SPEECH__REGION 環境変数を設定してください。 これらの変数を設定しない場合、サンプルはエラー メッセージが表示されて失敗します。

指示されたらマイクに向って話します。 話すことがテキストとして出力される必要があります。

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

解説

クイックスタートを完了したので、次にいくつか追加の考慮事項を示します。

  • この例では、RecognizeOnceAsync 操作を使用して、最大 30 秒間、または無音が検出されるまでの発話を文字起こししています。 多言語での会話を含め、より長いオーディオの継続的認識については、「音声を認識する方法」を参照してください。
  • オーディオ ファイルから音声を認識するには、fromDefaultMicrophoneInput の代わりに fromWavFileInput を使用します。
    AudioConfig audioConfig = AudioConfig.fromWavFileInput("YourAudioFile.wav");
    
  • MP4 などの圧縮されたオーディオ ファイルの場合は、GStreamer をインストールして、PullAudioInputStream または PushAudioInputStream を使います。 詳しくは、「圧縮された入力オーディオを使用する方法」をご覧ください。

リソースをクリーンアップする

Azure portal または Azure コマンドライン インターフェイス (CLI) を使用して、作成した音声リソースを削除できます。

リファレンスドキュメントパッケージ (npm)GitHub のその他のサンプルライブラリのソース コード

このクイックスタートでは、音声を認識してリアルタイムでテキストに変換するアプリケーションを作成して実行します。

ヒント

Speech Studio では、サインアップやコードの記述を行わずに、リアルタイムの音声テキスト変換を試すことができます。

代わりに、オーディオ ファイルを非同期的に文字起こしするには、バッチ文字起こしに関するページを参照してください。 最適な音声テキスト変換ソリューションがわからない場合は、音声テキスト変換の概要に関するドキュメントを参照してください。

前提条件

また、ローカル コンピューターに .wav オーディオ ファイルも必要です。 独自の .wav ファイル (最大 30 秒) を使用することも、https://crbn.us/whatstheweatherlike.wav サンプル ファイルをダウンロードすることもできます。

環境をセットアップする

何らかの操作を行うには、事前に Speech SDK for JavaScript をインストールしておく必要があります。 パッケージ名のインストールだけが必要な場合は、npm install microsoft-cognitiveservices-speech-sdk を実行します。 詳しいインストール手順については、SDK のインストール ガイドを参照してください。

環境変数の設定

Cognitive Services リソースにアクセスするには、アプリケーションを認証する必要があります。 運用環境では、資格情報を安全に保存してアクセスできる方法を使用してください。 たとえば、 Speech リソースキーを取得した後、アプリケーションを実行しているローカル コンピューター上の新しい環境変数に書き込みます。

ヒント

キーは、コードに直接含めないようにし、公開しないでください。 Azure Key Vault などのその他の認証オプションについては、Cognitive Services のセキュリティに関する記事を参照してください。

Azure Cognitive Service for Speech リソース キーの環境変数を設定するには、コンソール ウィンドウを開き、オペレーティング システムと開発環境の指示に従います。

  • SPEECH_KEY 環境変数を設定するには、your-key をリソースのキーの 1 つに置き換えます。
  • SPEECH_REGION 環境変数を設定するには、your-region をリソースのリージョンの 1 つに置き換えます。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

Note

現在実行中のコンソール内の環境変数にのみアクセスする必要がある場合は、環境変数を setx の代わりに set に設定できます。

実行中のプログラムのうち、環境変数の読み取りを必要とするプログラム (コンソール ウィンドウを含む) については、環境変数を追加した後で再起動が必要となる場合があります。 たとえば、Visual Studio をエディターとして使用している場合、サンプルを実行する前に Visual Studio を再起動します。

ファイルから音声を認識する

以下の手順に従って、音声認識のための Node.js コンソール アプリケーションを作成します。

  1. 新しいプロジェクトを作成するコマンド プロンプトを開き、SpeechRecognition.js という名前の新しいファイルを作成します。

  2. Speech SDK for JavaScript をインストールします。

    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 内で、YourAudioFile.wav を独自の WAV ファイルに置き換えます。 この例では、WAV ファイルからの音声のみを認識します。 他の音声形式について詳しくは、「圧縮された入力オーディオを使用する方法」をご覧ください。 この例では、最大 30 秒の音声をサポートしています。

  5. 音声認識言語を変更するには、en-US を別のen-USに置き換えます。 たとえば、スペイン語 (スペイン) の場合は、es-ES を作成します。 言語を指定しない場合、既定の言語は en-US です。 話される可能性のある複数の言語の 1 つを識別する方法の詳細については、言語の識別に関するページを参照してください。

新しいコンソール アプリケーションを実行して、ファイルからの音声認識を開始します。

node.exe SpeechRecognition.js

重要

上記の説明に従って、SPEECH__KEY 環境変数と SPEECH__REGION 環境変数を設定してください。 これらの変数を設定しない場合、サンプルはエラー メッセージが表示されて失敗します。

オーディオ ファイルからの音声は、次のようなテキストとして出力されるはずです。

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

解説

クイックスタートを完了したので、次にいくつか追加の考慮事項を示します。

この例では、recognizeOnceAsync 操作を使用して、最大 30 秒間、または無音が検出されるまでの発話を文字起こししています。 多言語での会話を含め、より長いオーディオの継続的認識については、「音声を認識する方法」を参照してください。

注意

マイクからの音声認識は、Node.js ではサポートされていません。 これがサポートされているのは、ブラウザー ベースの JavaScript 環境内のみです。 詳細については、GitHub で、React のサンプルマイクからの音声テキスト変換の実装に関するページを参照してください。 React サンプルには、認証トークンの交換と管理のための設計パターンが示されています。 音声テキスト変換のための、マイクまたはファイルからのオーディオのキャプチャについても示されています。

リソースをクリーンアップする

Azure portal または Azure コマンドライン インターフェイス (CLI) を使用して、作成した音声リソースを削除できます。

リファレンス ドキュメントパッケージ (ダウンロード)GitHub のその他のサンプル

このクイックスタートでは、音声を認識してリアルタイムでテキストに変換するアプリケーションを作成して実行します。

ヒント

Speech Studio では、サインアップやコードの記述を行わずに、リアルタイムの音声テキスト変換を試すことができます。

代わりに、オーディオ ファイルを非同期的に文字起こしするには、バッチ文字起こしに関するページを参照してください。 最適な音声テキスト変換ソリューションがわからない場合は、音声テキスト変換の概要に関するドキュメントを参照してください。

前提条件

環境をセットアップする

Speech SDK for Objective-C は、フレームワーク バンドルとして配布されています。 このフレームワークでは、iOS と macOS の両方について、Objective-C と Swift の両方がサポートされています。

Speech SDK は、Xcode プロジェクトで CocoaPod として使用することも、ここから直接ダウンロードして手動でリンクすることもできます。 このガイドでは CocoaPod を使用します。 CocoaPod 依存関係マネージャーをそのインストールの手順に従ってインストールします。

環境変数の設定

Cognitive Services リソースにアクセスするには、アプリケーションを認証する必要があります。 運用環境では、資格情報を安全に保存してアクセスできる方法を使用してください。 たとえば、 Speech リソースキーを取得した後、アプリケーションを実行しているローカル コンピューター上の新しい環境変数に書き込みます。

ヒント

キーは、コードに直接含めないようにし、公開しないでください。 Azure Key Vault などのその他の認証オプションについては、Cognitive Services のセキュリティに関する記事を参照してください。

Azure Cognitive Service for Speech リソース キーの環境変数を設定するには、コンソール ウィンドウを開き、オペレーティング システムと開発環境の指示に従います。

  • SPEECH_KEY 環境変数を設定するには、your-key をリソースのキーの 1 つに置き換えます。
  • SPEECH_REGION 環境変数を設定するには、your-region をリソースのリージョンの 1 つに置き換えます。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

Note

現在実行中のコンソール内の環境変数にのみアクセスする必要がある場合は、環境変数を setx の代わりに set に設定できます。

実行中のプログラムのうち、環境変数の読み取りを必要とするプログラム (コンソール ウィンドウを含む) については、環境変数を追加した後で再起動が必要となる場合があります。 たとえば、Visual Studio をエディターとして使用している場合、サンプルを実行する前に Visual Studio を再起動します。

マイクから音声を認識する

以下の手順に従って、macOS アプリケーションで音声を認識します。

  1. Azure-Samples/cognitive-services-speech-sdk リポジトリを複製して、Objective-C でマイクからの音声を認識する (macOS) サンプル プロジェクトを取得します。 このリポジトリには、iOS サンプルもあります。

  2. ターミナルで、ダウンロードしたサンプル アプリ (helloworld) のディレクトリに移動します。

  3. コマンド pod install を実行します。 これにより、サンプル アプリと依存関係としての Speech SDK の両方を含んだ、helloworld.xcworkspace という Xcode ワークスペースが生成されます。

  4. Xcode で helloworld.xcworkspace ワークスペースを開きます。

  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 で、Azure Cognitive Service for Speech リソース キーとリージョンに対して以前に設定した環境変数を使用します。

    NSString *speechKey = [[[NSProcessInfo processInfo] environment] objectForKey:@"SPEECH_KEY"];
    NSString *serviceRegion = [[[NSProcessInfo processInfo] environment] objectForKey:@"SPEECH_REGION"];
    
  7. 音声認識言語を変更するには、en-US を別のen-USに置き換えます。 たとえば、スペイン語 (スペイン) の場合は、es-ES を作成します。 言語を指定しない場合、既定の言語は en-US です。 話される可能性のある複数の言語の 1 つを識別する方法の詳細については、言語の識別に関するページを参照してください。

  8. デバッグ出力が表示されるようにします ([View][Debug Area][Activate Console])。

  9. メニューから [製品][実行] の順に選択するか、[再生] ボタンを選択して、コード例のビルドや実行を行います。

重要

上記の説明に従って、SPEECH__KEY 環境変数と SPEECH__REGION 環境変数を設定してください。 これらの変数を設定しない場合、サンプルはエラー メッセージが表示されて失敗します。

アプリのボタンを選択して何か話すと、画面の下の部分に、話しをしたテキストが表示されるはずでます。 アプリを初めて実行するときに、お使いのコンピューターのマイクの使用許可をアプリに与えるよう求められます。

解説

クイックスタートを完了したので、次にいくつか追加の考慮事項を示します。

  • この例では、recognizeOnce 操作を使用して、最大 30 秒間、または無音が検出されるまでの発話を文字起こししています。 多言語での会話を含め、より長いオーディオの継続的認識については、「音声を認識する方法」を参照してください。
  • オーディオ ファイルから音声を認識するには、initWithMicrophone の代わりに initWithWavFileInput を使用します。
    SPXAudioConfiguration *audioConfig = [[SPXAudioConfiguration alloc] initWithWavFileInput:YourAudioFile];
    

リソースをクリーンアップする

Azure portal または Azure コマンドライン インターフェイス (CLI) を使用して、作成した音声リソースを削除できます。

リファレンス ドキュメントパッケージ (ダウンロード)GitHub のその他のサンプル

このクイックスタートでは、音声を認識してリアルタイムでテキストに変換するアプリケーションを作成して実行します。

ヒント

Speech Studio では、サインアップやコードの記述を行わずに、リアルタイムの音声テキスト変換を試すことができます。

代わりに、オーディオ ファイルを非同期的に文字起こしするには、バッチ文字起こしに関するページを参照してください。 最適な音声テキスト変換ソリューションがわからない場合は、音声テキスト変換の概要に関するドキュメントを参照してください。

前提条件

環境をセットアップする

Speech SDK for Swift は、フレームワーク バンドルとして配布されています。 このフレームワークでは、iOS と macOS の両方について、Objective-C と Swift の両方がサポートされています。

Speech SDK は、Xcode プロジェクトで CocoaPod として使用することも、ここから直接ダウンロードして手動でリンクすることもできます。 このガイドでは CocoaPod を使用します。 CocoaPod 依存関係マネージャーをそのインストールの手順に従ってインストールします。

環境変数の設定

Cognitive Services リソースにアクセスするには、アプリケーションを認証する必要があります。 運用環境では、資格情報を安全に保存してアクセスできる方法を使用してください。 たとえば、 Speech リソースキーを取得した後、アプリケーションを実行しているローカル コンピューター上の新しい環境変数に書き込みます。

ヒント

キーは、コードに直接含めないようにし、公開しないでください。 Azure Key Vault などのその他の認証オプションについては、Cognitive Services のセキュリティに関する記事を参照してください。

Azure Cognitive Service for Speech リソース キーの環境変数を設定するには、コンソール ウィンドウを開き、オペレーティング システムと開発環境の指示に従います。

  • SPEECH_KEY 環境変数を設定するには、your-key をリソースのキーの 1 つに置き換えます。
  • SPEECH_REGION 環境変数を設定するには、your-region をリソースのリージョンの 1 つに置き換えます。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

Note

現在実行中のコンソール内の環境変数にのみアクセスする必要がある場合は、環境変数を setx の代わりに set に設定できます。

実行中のプログラムのうち、環境変数の読み取りを必要とするプログラム (コンソール ウィンドウを含む) については、環境変数を追加した後で再起動が必要となる場合があります。 たとえば、Visual Studio をエディターとして使用している場合、サンプルを実行する前に Visual Studio を再起動します。

マイクから音声を認識する

以下の手順に従って、macOS アプリケーションで音声を認識します。

  1. Azure-Samples/cognitive-services-speech-sdk リポジトリを複製して、Swift でマイクからの音声を認識する (macOS) サンプル プロジェクトを取得します。 このリポジトリには、iOS サンプルもあります。

  2. ターミナルで、ダウンロードしたサンプル アプリ (helloworld) のディレクトリに移動します。

  3. コマンド pod install を実行します。 これにより、サンプル アプリと依存関係としての Speech SDK の両方を含んだ、helloworld.xcworkspace という Xcode ワークスペースが生成されます。

  4. Xcode で helloworld.xcworkspace ワークスペースを開きます。

  5. 次に示すように、AppDelegate.swift という名前のファイルを開き、applicationDidFinishLaunching メソッドと 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 で、Azure Cognitive Service for Speech リソース キーとリージョンに対して以前に設定した環境変数を使用します。

    sub = ProcessInfo.processInfo.environment["SPEECH_KEY"]
    region = ProcessInfo.processInfo.environment["SPEECH_REGION"]
    
  7. 音声認識言語を変更するには、en-US を別のen-USに置き換えます。 たとえば、スペイン語 (スペイン) の場合は、es-ES を作成します。 言語を指定しない場合、既定の言語は en-US です。 話される可能性のある複数の言語の 1 つを識別する方法の詳細については、言語の識別に関するページを参照してください。

  8. [View](表示)[Debug Area](デバッグ エリア)[Activate Console](コンソールのアクティブ化) の順に選択して、デバッグ出力が表示されるようにします。

  9. メニューから [製品][実行] の順に選択するか、[再生] ボタンを選択して、コード例のビルドや実行を行います。

重要

上記の説明に従って、SPEECH__KEY 環境変数と SPEECH__REGION 環境変数を設定してください。 これらの変数を設定しない場合、サンプルはエラー メッセージが表示されて失敗します。

アプリのボタンを選択して何か話すと、画面の下の部分に、話しをしたテキストが表示されるはずでます。 アプリを初めて実行するときに、お使いのコンピューターのマイクの使用許可をアプリに与えるよう求められます。

解説

クイックスタートを完了したので、次にいくつか追加の考慮事項を示します。

この例では、recognizeOnce 操作を使用して、最大 30 秒間、または無音が検出されるまでの発話を文字起こししています。 多言語での会話を含め、より長いオーディオの継続的認識については、「音声を認識する方法」を参照してください。

リソースをクリーンアップする

Azure portal または Azure コマンドライン インターフェイス (CLI) を使用して、作成した音声リソースを削除できます。

リファレンス ドキュメントパッケージ (PyPi)GitHub のその他のサンプル

このクイックスタートでは、音声を認識してリアルタイムでテキストに変換するアプリケーションを作成して実行します。

ヒント

Speech Studio では、サインアップやコードの記述を行わずに、リアルタイムの音声テキスト変換を試すことができます。

代わりに、オーディオ ファイルを非同期的に文字起こしするには、バッチ文字起こしに関するページを参照してください。 最適な音声テキスト変換ソリューションがわからない場合は、音声テキスト変換の概要に関するドキュメントを参照してください。

前提条件

環境をセットアップする

Speech SDK Python は、Python パッケージ インデックス (PyPI) モジュールとして入手できます。 Speech SDK for Python は、Windows、Linux、macOS との互換性があります。

Python の 3.7 以降のバージョンをインストールします。 最初に、これ以上要件がないか、SDK のインストール ガイドを確認してください。

環境変数の設定

Cognitive Services リソースにアクセスするには、アプリケーションを認証する必要があります。 運用環境では、資格情報を安全に保存してアクセスできる方法を使用してください。 たとえば、 Speech リソースキーを取得した後、アプリケーションを実行しているローカル コンピューター上の新しい環境変数に書き込みます。

ヒント

キーは、コードに直接含めないようにし、公開しないでください。 Azure Key Vault などのその他の認証オプションについては、Cognitive Services のセキュリティに関する記事を参照してください。

Azure Cognitive Service for Speech リソース キーの環境変数を設定するには、コンソール ウィンドウを開き、オペレーティング システムと開発環境の指示に従います。

  • SPEECH_KEY 環境変数を設定するには、your-key をリソースのキーの 1 つに置き換えます。
  • SPEECH_REGION 環境変数を設定するには、your-region をリソースのリージョンの 1 つに置き換えます。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

Note

現在実行中のコンソール内の環境変数にのみアクセスする必要がある場合は、環境変数を setx の代わりに set に設定できます。

実行中のプログラムのうち、環境変数の読み取りを必要とするプログラム (コンソール ウィンドウを含む) については、環境変数を追加した後で再起動が必要となる場合があります。 たとえば、Visual Studio をエディターとして使用している場合、サンプルを実行する前に Visual Studio を再起動します。

マイクから音声を認識する

次の手順を実行して、新しいコンソール アプリケーションを作成します。

  1. 新しいプロジェクトを作成するコマンド プロンプトを開き、speech_recognition.py という名前の新しいファイルを作成します。

  2. 次のコマンドを実行して、Speech 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 を別のen-USに置き換えます。 たとえば、スペイン語 (スペイン) の場合は、es-ES を作成します。 言語を指定しない場合、既定の言語は en-US です。 話される可能性のある複数の言語の 1 つを識別する方法の詳細については、言語の識別に関するページを参照してください。

新しいコンソール アプリケーションを実行して、マイクからの音声認識を開始します。

python speech_recognition.py

重要

上記の説明に従って、SPEECH__KEY 環境変数と SPEECH__REGION 環境変数を設定してください。 これらの変数を設定しない場合、サンプルはエラー メッセージが表示されて失敗します。

指示されたらマイクに向って話します。 話すことがテキストとして出力される必要があります。

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

解説

クイックスタートを完了したので、次にいくつか追加の考慮事項を示します。

  • この例では、recognize_once_async 操作を使用して、最大 30 秒間、または無音が検出されるまでの発話を文字起こししています。 多言語での会話を含め、より長いオーディオの継続的認識については、「音声を認識する方法」を参照してください。
  • オーディオ ファイルから音声を認識するには、use_default_microphone の代わりに filename を使用します。
    audio_config = speechsdk.audio.AudioConfig(filename="YourAudioFile.wav")
    
  • MP4 などの圧縮されたオーディオ ファイルの場合は、GStreamer をインストールして、PullAudioInputStream または PushAudioInputStream を使います。 詳しくは、「圧縮された入力オーディオを使用する方法」をご覧ください。

リソースをクリーンアップする

Azure portal または Azure コマンドライン インターフェイス (CLI) を使用して、作成した音声リソースを削除できます。

Speech to text REST API リファレンス | Speech to text REST API for short audio リファレンス | GitHub のその他のサンプル

このクイックスタートでは、音声を認識してリアルタイムでテキストに変換するアプリケーションを作成して実行します。

ヒント

Speech Studio では、サインアップやコードの記述を行わずに、リアルタイムの音声テキスト変換を試すことができます。

代わりに、オーディオ ファイルを非同期的に文字起こしするには、バッチ文字起こしに関するページを参照してください。 最適な音声テキスト変換ソリューションがわからない場合は、音声テキスト変換の概要に関するドキュメントを参照してください。

前提条件

また、ローカル コンピューターに .wav オーディオ ファイルも必要です。 独自の .wav ファイル (最大 60 秒) を使用することも、https://crbn.us/whatstheweatherlike.wav サンプル ファイルをダウンロードすることもできます。

環境変数の設定

Cognitive Services リソースにアクセスするには、アプリケーションを認証する必要があります。 運用環境では、資格情報を安全に保存してアクセスできる方法を使用してください。 たとえば、 Speech リソースキーを取得した後、アプリケーションを実行しているローカル コンピューター上の新しい環境変数に書き込みます。

ヒント

キーは、コードに直接含めないようにし、公開しないでください。 Azure Key Vault などのその他の認証オプションについては、Cognitive Services のセキュリティに関する記事を参照してください。

Azure Cognitive Service for Speech リソース キーの環境変数を設定するには、コンソール ウィンドウを開き、オペレーティング システムと開発環境の指示に従います。

  • SPEECH_KEY 環境変数を設定するには、your-key をリソースのキーの 1 つに置き換えます。
  • SPEECH_REGION 環境変数を設定するには、your-region をリソースのリージョンの 1 つに置き換えます。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

Note

現在実行中のコンソール内の環境変数にのみアクセスする必要がある場合は、環境変数を setx の代わりに set に設定できます。

実行中のプログラムのうち、環境変数の読み取りを必要とするプログラム (コンソール ウィンドウを含む) については、環境変数を追加した後で再起動が必要となる場合があります。 たとえば、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__KEY 環境変数と SPEECH__REGION 環境変数を設定してください。 これらの変数を設定しない場合、サンプルはエラー メッセージが表示されて失敗します。

次に示したような応答が表示されるはずです。 DisplayText は、オーディオ ファイルから認識されたテキストである必要があります。 最大 60 秒のオーディオが認識され、テキストに変換されます。

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

詳細については、「Speech to text REST API for short audio」を参照してください。

リソースをクリーンアップする

Azure portal または Azure コマンドライン インターフェイス (CLI) を使用して、作成した音声リソースを削除できます。

このクイックスタートでは、音声を認識してリアルタイムでテキストに変換するアプリケーションを作成して実行します。

ヒント

Speech Studio では、サインアップやコードの記述を行わずに、リアルタイムの音声テキスト変換を試すことができます。

代わりに、オーディオ ファイルを非同期的に文字起こしするには、バッチ文字起こしに関するページを参照してください。 最適な音声テキスト変換ソリューションがわからない場合は、音声テキスト変換の概要に関するドキュメントを参照してください。

前提条件

環境をセットアップする

次の手順を実行して、対象プラットフォームに対する Speech CLI クイックスタートの追加要件について確認します。

  1. 次のコマンドを入力して、.NET CLI から Speech CLI をインストールします。

    dotnet tool install --global Microsoft.CognitiveServices.Speech.CLI
    
  2. 音声リソースのキーとリージョンを構成するために、次のコマンドを実行します。 SUBSCRIPTION-KEY は音声リソースのキーに置き換えて、REGION は音声リソースのリージョンに置き換えます。

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

マイクから音声を認識する

次のコマンドを実行して、マイクからの音声認識を開始します。

spx recognize --microphone --source en-US

マイクに向かって話すと、自分が発した言葉がテキストに文字起こしされ、リアルタイムで表示されます。 Speech CLI は、無音の状態で一定時間 (30 秒) が経過するか、Ctrl + C キーを押したときに停止します。

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

解説

クイックスタートを完了したので、次にいくつか追加の考慮事項を示します。

  • オーディオ ファイルから音声を認識するには、--microphone の代わりに --file を使用します。 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 を別の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 portal または Azure コマンドライン インターフェイス (CLI) を使用して、作成した音声リソースを削除できます。

次の手順