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

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

Azure AI 音声を使用すると、人間の声のような音声を合成してテキストを読み上げるアプリケーションを実行できます。 音声の変更や読み上げるテキストの入力を行い、出力をお使いのコンピューターのスピーカーで聞くことができます。

ヒント

Speech Studio Voice ギャラリーでは、サインアップやコードの記述なしで、テキスト読み上げを試すことができます。

ヒント

Azure AI Speech Toolkit を試して、Visual Studio Code でサンプルを簡単にビルドして実行します。

前提条件

  • Azure サブスクリプション。 無料で作成できます
  • Azure ポータルで、音声リソースを作成します
  • Speech リソース キーとリージョンを取得します。 音声リソースがデプロイされたら、[リソースに移動] を選択して、キーを表示および管理します。

環境をセットアップする

Speech SDK は、.NET Standard 2.0 を実装する NuGet パッケージとして提供されていています。 このガイドの後半で、コンソールを使って Speech SDK をインストールします。 詳しいインストール手順については、「Speech SDK のインストール」を参照してください。

環境変数を設定する

Azure AI サービスにアクセスするには、アプリケーションを認証する必要があります。 この記事では、環境変数を使って資格情報を格納する方法について説明します。 その後、コードから環境変数にアクセスして、アプリケーションを認証できます。 運用環境では、資格情報を保存してそれにアクセスする際に、安全性が高い方法を使用します。

重要

Microsoft Entra 認証と Azure リソースのマネージド ID を併用して、クラウドで実行されるアプリケーションに資格情報を格納しないようにすることをお勧めします。

API キーを使用する場合は、それを Azure Key Vault などの別の場所に安全に保存します。 API キーは、コード内に直接含めないようにし、絶対に公開しないでください。

AI サービスのセキュリティの詳細については、「Azure AI サービスに対する要求の認証」を参照してください。

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 を再起動します。

アプリケーションを作成する

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

  1. 新しいプロジェクトを作成したいフォルダーでコマンド プロンプト ウィンドウを開きます。 次のコマンドを実行して、.NET CLI でコンソール アプリケーションを作成します。

    dotnet new console
    

    このコマンドは、プロジェクト ディレクトリに Program.cs ファイルを作成します。

  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 OutputSpeechSynthesisResult(SpeechSynthesisResult speechSynthesisResult, string text)
        {
            switch (speechSynthesisResult.Reason)
            {
                case ResultReason.SynthesizingAudioCompleted:
                    Console.WriteLine($"Speech synthesized for text: [{text}]");
                    break;
                case ResultReason.Canceled:
                    var cancellation = SpeechSynthesisCancellationDetails.FromResult(speechSynthesisResult);
                    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;
                default:
                    break;
            }
        }
    
        async static Task Main(string[] args)
        {
            var speechConfig = SpeechConfig.FromSubscription(speechKey, speechRegion);      
    
            // The neural multilingual voice can speak different languages based on the input text.
            speechConfig.SpeechSynthesisVoiceName = "en-US-AvaMultilingualNeural"; 
    
            using (var speechSynthesizer = new SpeechSynthesizer(speechConfig))
            {
                // Get text from the console and synthesize to the default speaker.
                Console.WriteLine("Enter some text that you want to speak >");
                string text = Console.ReadLine();
    
                var speechSynthesisResult = await speechSynthesizer.SpeakTextAsync(text);
                OutputSpeechSynthesisResult(speechSynthesisResult, text);
            }
    
            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
        }
    }
    
  4. 音声合成言語を変更するには、en-US-AvaMultilingualNeural を別のサポートされている音声に置き換えます。

    すべてのニューラル音声は多言語で、独自の言語と英語で流暢に読み上げます。 たとえば、英語の入力テキストが "I'm excited to try text to speech" で、言語として es-ES-ElviraNeural を設定した場合、テキストはスペイン語アクセントの英語で読み上げられます。 音声の言語と入力テキストの言語が異なる場合、Azure Cognitive Service for Speech サービスは合成された音声を出力しせん。

  5. 新しいコンソール アプリケーションを実行して、既定のスピーカーへの音声合成を開始します。

    dotnet run
    

    重要

    必ず SPEECH_KEYSPEECH_REGION 環境変数を設定してください。 これらの変数を設定しない場合、サンプルは失敗してエラー メッセージが表示されます。

  6. 読み上げたいテキストを入力します。 たとえば、「I'm excited to try text to speech」と入力します。 Enter キーを押して、合成された音声を聞きます。

    Enter some text that you want to speak >
    I'm excited to try text to speech
    

解説

その他の音声合成オプション

このクイック スタートでは、SpeakTextAsync 操作を使用して、入力した短いテキスト ブロックを合成します。 ファイルからの長い形式のテキストを使用して、音声のスタイル、韻律、その他の設定を細かく制御することもできます。

Azure AI 音声の OpenAI テキスト読み上げ音声

OpenAI テキスト読み上げ音声もサポートされています。 「Azure AI 音声の OpenAI テキスト読み上げ音声」と「多言語音声」を参照してください。 en-US-AvaMultilingualNeural は、en-US-FableMultilingualNeural などのサポートされている OpenAI 音声の名前に置き換えることができます。

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

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

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

Azure AI 音声を使用すると、人間の声のような音声を合成してテキストを読み上げるアプリケーションを実行できます。 音声の変更や読み上げるテキストの入力を行い、出力をお使いのコンピューターのスピーカーで聞くことができます。

ヒント

Speech Studio Voice ギャラリーでは、サインアップやコードの記述なしで、テキスト読み上げを試すことができます。

ヒント

Azure AI Speech Toolkit を試して、Visual Studio Code でサンプルを簡単にビルドして実行します。

前提条件

  • Azure サブスクリプション。 無料で作成できます
  • Azure ポータルで、音声リソースを作成します
  • Speech リソース キーとリージョンを取得します。 音声リソースがデプロイされたら、[リソースに移動] を選択して、キーを表示および管理します。

環境をセットアップする

Speech SDK は、.NET Standard 2.0 を実装する NuGet パッケージとして提供されていています。 このガイドの後半で Speech SDK をインストールします。 詳しいインストール手順については、「Speech SDK のインストール」を参照してください。

環境変数を設定する

Azure AI サービスにアクセスするには、アプリケーションを認証する必要があります。 この記事では、環境変数を使って資格情報を格納する方法について説明します。 その後、コードから環境変数にアクセスして、アプリケーションを認証できます。 運用環境では、資格情報を保存してそれにアクセスする際に、安全性が高い方法を使用します。

重要

Microsoft Entra 認証と Azure リソースのマネージド ID を併用して、クラウドで実行されるアプリケーションに資格情報を格納しないようにすることをお勧めします。

API キーを使用する場合は、それを Azure Key Vault などの別の場所に安全に保存します。 API キーは、コード内に直接含めないようにし、絶対に公開しないでください。

AI サービスのセキュリティの詳細については、「Azure AI サービスに対する要求の認証」を参照してください。

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 で、SpeechSynthesis という名前の C++ コンソール プロジェクトを作成します。

  2. SpeechSynthesis.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);
    
        // The neural multilingual voice can speak different languages based on the input text.
        speechConfig->SetSpeechSynthesisVoiceName("en-US-AvaMultilingualNeural");
    
        auto speechSynthesizer = SpeechSynthesizer::FromConfig(speechConfig);
    
        // Get text from the console and synthesize to the default speaker.
        std::cout << "Enter some text that you want to speak >" << std::endl;
        std::string text;
        getline(std::cin, text);
    
        auto result = speechSynthesizer->SpeakTextAsync(text).get();
    
        // Checks result.
        if (result->Reason == ResultReason::SynthesizingAudioCompleted)
        {
            std::cout << "Speech synthesized to speaker for text [" << text << "]" << std::endl;
        }
        else if (result->Reason == ResultReason::Canceled)
        {
            auto cancellation = SpeechSynthesisCancellationDetails::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::cout << "Press enter to exit..." << std::endl;
        std::cin.get();
    }
    
    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
    }  
    
  3. [ツール]>[NuGet パッケージ マネージャー]>[パッケージ マネージャー コンソール] を選択します。 [パッケージ マネージャー コンソール] で、次のコマンドを実行します。

    Install-Package Microsoft.CognitiveServices.Speech
    
  4. 音声合成言語を変更するには、en-US-AvaMultilingualNeural を別のサポートされている音声に置き換えます。

    すべてのニューラル音声は多言語で、独自の言語と英語で流暢に読み上げます。 たとえば、英語の入力テキストが "I'm excited to try text to speech" で、es-ES-ElviraNeural を設定した場合、テキストはスペイン語アクセントの英語で読み上げられます。 音声の言語と入力テキストの言語が異なる場合、Azure Cognitive Service for Speech サービスは合成された音声を出力しせん。

  5. 新しいコンソール アプリケーションをビルドして実行し、既定のスピーカーへの音声合成を開始します。

    重要

    必ず SPEECH_KEYSPEECH_REGION 環境変数を設定してください。 これらの変数を設定しない場合、サンプルは失敗してエラー メッセージが表示されます。

  6. 読み上げたいテキストを入力します。 たとえば、「I'm excited to try text to speech」と入力します。 Enter キーを押して、合成された音声を聞きます。

    Enter some text that you want to speak >
    I'm excited to try text to speech
    

解説

その他の音声合成オプション

このクイック スタートでは、SpeakTextAsync 操作を使用して、入力した短いテキスト ブロックを合成します。 ファイルからの長い形式のテキストを使用して、音声のスタイル、韻律、その他の設定を細かく制御することもできます。

Azure AI 音声の OpenAI テキスト読み上げ音声

OpenAI テキスト読み上げ音声もサポートされています。 「Azure AI 音声の OpenAI テキスト読み上げ音声」と「多言語音声」を参照してください。 en-US-AvaMultilingualNeural は、en-US-FableMultilingualNeural などのサポートされている OpenAI 音声の名前に置き換えることができます。

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

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

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

Azure AI 音声を使用すると、人間の声のような音声を合成してテキストを読み上げるアプリケーションを実行できます。 音声の変更や読み上げるテキストの入力を行い、出力をお使いのコンピューターのスピーカーで聞くことができます。

ヒント

Speech Studio Voice ギャラリーでは、サインアップやコードの記述なしで、テキスト読み上げを試すことができます。

ヒント

Azure AI Speech Toolkit を試して、Visual Studio Code でサンプルを簡単にビルドして実行します。

前提条件

  • Azure サブスクリプション。 無料で作成できます
  • Azure ポータルで、音声リソースを作成します
  • Speech リソース キーとリージョンを取得します。 音声リソースがデプロイされたら、[リソースに移動] を選択して、キーを表示および管理します。

環境を設定する

Go 言語用の Speech SDK をインストールします。 詳しいインストール手順については、「Speech SDK のインストール」を参照してください。

環境変数を設定する

Azure AI サービスにアクセスするには、アプリケーションを認証する必要があります。 この記事では、環境変数を使って資格情報を格納する方法について説明します。 その後、コードから環境変数にアクセスして、アプリケーションを認証できます。 運用環境では、資格情報を保存してそれにアクセスする際に、安全性が高い方法を使用します。

重要

Microsoft Entra 認証と Azure リソースのマネージド ID を併用して、クラウドで実行されるアプリケーションに資格情報を格納しないようにすることをお勧めします。

API キーを使用する場合は、それを Azure Key Vault などの別の場所に安全に保存します。 API キーは、コード内に直接含めないようにし、絶対に公開しないでください。

AI サービスのセキュリティの詳細については、「Azure AI サービスに対する要求の認証」を参照してください。

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-synthesis.go という名前の新しいファイルを作成します。

  2. 次のコードを speech-synthesis.go にコピーします。

    package main
    
    import (
        "bufio"
        "fmt"
        "os"
        "strings"
        "time"
    
        "github.com/Microsoft/cognitive-services-speech-sdk-go/audio"
        "github.com/Microsoft/cognitive-services-speech-sdk-go/common"
        "github.com/Microsoft/cognitive-services-speech-sdk-go/speech"
    )
    
    func synthesizeStartedHandler(event speech.SpeechSynthesisEventArgs) {
        defer event.Close()
        fmt.Println("Synthesis started.")
    }
    
    func synthesizingHandler(event speech.SpeechSynthesisEventArgs) {
        defer event.Close()
        fmt.Printf("Synthesizing, audio chunk size %d.\n", len(event.Result.AudioData))
    }
    
    func synthesizedHandler(event speech.SpeechSynthesisEventArgs) {
        defer event.Close()
        fmt.Printf("Synthesized, audio length %d.\n", len(event.Result.AudioData))
    }
    
    func cancelledHandler(event speech.SpeechSynthesisEventArgs) {
        defer event.Close()
        fmt.Println("Received a cancellation.")
    }
    
    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.NewAudioConfigFromDefaultSpeakerOutput()
        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()
    
        speechConfig.SetSpeechSynthesisVoiceName("en-US-AvaMultilingualNeural")
    
        speechSynthesizer, err := speech.NewSpeechSynthesizerFromConfig(speechConfig, audioConfig)
        if err != nil {
            fmt.Println("Got an error: ", err)
            return
        }
        defer speechSynthesizer.Close()
    
        speechSynthesizer.SynthesisStarted(synthesizeStartedHandler)
        speechSynthesizer.Synthesizing(synthesizingHandler)
        speechSynthesizer.SynthesisCompleted(synthesizedHandler)
        speechSynthesizer.SynthesisCanceled(cancelledHandler)
    
        for {
            fmt.Printf("Enter some text that you want to speak, or enter empty text to exit.\n> ")
            text, _ := bufio.NewReader(os.Stdin).ReadString('\n')
            text = strings.TrimSuffix(text, "\n")
            if len(text) == 0 {
                break
            }
    
            task := speechSynthesizer.SpeakTextAsync(text)
            var outcome speech.SpeechSynthesisOutcome
            select {
            case outcome = <-task:
            case <-time.After(60 * time.Second):
                fmt.Println("Timed out")
                return
            }
            defer outcome.Close()
            if outcome.Error != nil {
                fmt.Println("Got an error: ", outcome.Error)
                return
            }
    
            if outcome.Result.Reason == common.SynthesizingAudioCompleted {
                fmt.Printf("Speech synthesized to speaker for text [%s].\n", text)
            } else {
                cancellation, _ := speech.NewCancellationDetailsFromSpeechSynthesisResult(outcome.Result)
                fmt.Printf("CANCELED: Reason=%d.\n", cancellation.Reason)
    
                if cancellation.Reason == common.Error {
                    fmt.Printf("CANCELED: ErrorCode=%d\nCANCELED: ErrorDetails=[%s]\nCANCELED: Did you set the speech resource key and region values?\n",
                        cancellation.ErrorCode,
                        cancellation.ErrorDetails)
                }
            }
        }
    }
    
  3. 音声合成言語を変更するには、en-US-AvaMultilingualNeural を別のサポートされている音声に置き換えます。

    すべてのニューラル音声は多言語で、独自の言語と英語で流暢に読み上げます。 たとえば、英語の入力テキストが "I'm excited to try text to speech" で、es-ES-ElviraNeural を設定した場合、テキストはスペイン語アクセントの英語で読み上げられます。 音声の言語と入力テキストの言語が異なる場合、Azure Cognitive Service for Speech サービスは合成された音声を出力しせん。

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

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

    重要

    必ず SPEECH_KEYSPEECH_REGION 環境変数を設定してください。 これらの変数を設定しない場合、サンプルは失敗してエラー メッセージが表示されます。

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

    go build
    go run speech-synthesis
    

解説

Azure AI 音声の OpenAI テキスト読み上げ音声

OpenAI テキスト読み上げ音声もサポートされています。 「Azure AI 音声の OpenAI テキスト読み上げ音声」と「多言語音声」を参照してください。 en-US-AvaMultilingualNeural は、en-US-FableMultilingualNeural などのサポートされている OpenAI 音声の名前に置き換えることができます。

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

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

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

Azure AI 音声を使用すると、人間の声のような音声を合成してテキストを読み上げるアプリケーションを実行できます。 音声の変更や読み上げるテキストの入力を行い、出力をお使いのコンピューターのスピーカーで聞くことができます。

ヒント

Speech Studio Voice ギャラリーでは、サインアップやコードの記述なしで、テキスト読み上げを試すことができます。

ヒント

Azure AI Speech Toolkit を試して、Visual Studio Code でサンプルを簡単にビルドして実行します。

前提条件

  • Azure サブスクリプション。 無料で作成できます
  • Azure ポータルで、音声リソースを作成します
  • 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.40.0</version>
            </dependency>
        </dependencies>
    </project>
    
  3. Speech SDK と依存関係をインストールします。

    mvn clean dependency:copy-dependencies
    

環境変数の設定

Azure AI サービスにアクセスするには、アプリケーションを認証する必要があります。 この記事では、環境変数を使って資格情報を格納する方法について説明します。 その後、コードから環境変数にアクセスして、アプリケーションを認証できます。 運用環境では、資格情報を保存してそれにアクセスする際に、安全性が高い方法を使用します。

重要

Microsoft Entra 認証と Azure リソースのマネージド ID を併用して、クラウドで実行されるアプリケーションに資格情報を格納しないようにすることをお勧めします。

API キーを使用する場合は、それを Azure Key Vault などの別の場所に安全に保存します。 API キーは、コード内に直接含めないようにし、絶対に公開しないでください。

AI サービスのセキュリティの詳細については、「Azure AI サービスに対する要求の認証」を参照してください。

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. 同じプロジェクト ルート ディレクトリに SpeechSynthesis.java という名前のファイルを作成します。

  2. 次のコードを SpeechSynthesis.java にコピーします。

    import com.microsoft.cognitiveservices.speech.*;
    import com.microsoft.cognitiveservices.speech.audio.*;
    
    import java.util.Scanner;
    import java.util.concurrent.ExecutionException;
    
    public class SpeechSynthesis {
        // 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.setSpeechSynthesisVoiceName("en-US-AvaMultilingualNeural"); 
    
            SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer(speechConfig);
    
            // Get text from the console and synthesize to the default speaker.
            System.out.println("Enter some text that you want to speak >");
            String text = new Scanner(System.in).nextLine();
            if (text.isEmpty())
            {
                return;
            }
    
            SpeechSynthesisResult speechSynthesisResult = speechSynthesizer.SpeakTextAsync(text).get();
    
            if (speechSynthesisResult.getReason() == ResultReason.SynthesizingAudioCompleted) {
                System.out.println("Speech synthesized to speaker for text [" + text + "]");
            }
            else if (speechSynthesisResult.getReason() == ResultReason.Canceled) {
                SpeechSynthesisCancellationDetails cancellation = SpeechSynthesisCancellationDetails.fromResult(speechSynthesisResult);
                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-AvaMultilingualNeural を別のサポートされている音声に置き換えます。

    すべてのニューラル音声は多言語で、独自の言語と英語で流暢に読み上げます。 たとえば、英語の入力テキストが "I'm excited to try text to speech" で、es-ES-ElviraNeural を設定した場合、テキストはスペイン語アクセントの英語で読み上げられます。 音声の言語と入力テキストの言語が異なる場合、Azure Cognitive Service for Speech サービスは合成された音声を出力しせん。

  4. コンソール アプリケーションを実行して、既定のスピーカーに音声合成を出力します。

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

    重要

    必ず SPEECH_KEYSPEECH_REGION 環境変数を設定してください。 これらの変数を設定しない場合、サンプルは失敗してエラー メッセージが表示されます。

  5. 読み上げたいテキストを入力します。 たとえば、「I'm excited to try text to speech」と入力します。 Enter キーを押して、合成された音声を聞きます。

    Enter some text that you want to speak >
    I'm excited to try text to speech
    

解説

その他の音声合成オプション

このクイック スタートでは、SpeakTextAsync 操作を使用して、入力した短いテキスト ブロックを合成します。 ファイルからの長い形式のテキストを使用して、音声のスタイル、韻律、その他の設定を細かく制御することもできます。

Azure AI 音声の OpenAI テキスト読み上げ音声

OpenAI テキスト読み上げ音声もサポートされています。 「Azure AI 音声の OpenAI テキスト読み上げ音声」と「多言語音声」を参照してください。 en-US-AvaMultilingualNeural は、en-US-FableMultilingualNeural などのサポートされている OpenAI 音声の名前に置き換えることができます。

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

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

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

Azure AI 音声を使用すると、人間の声のような音声を合成してテキストを読み上げるアプリケーションを実行できます。 音声の変更や読み上げるテキストの入力を行い、出力をお使いのコンピューターのスピーカーで聞くことができます。

ヒント

Speech Studio Voice ギャラリーでは、サインアップやコードの記述なしで、テキスト読み上げを試すことができます。

ヒント

Azure AI Speech Toolkit を試して、Visual Studio Code でサンプルを簡単にビルドして実行します。

前提条件

  • Azure サブスクリプション。 無料で作成できます
  • Azure ポータルで、音声リソースを作成します
  • Speech リソース キーとリージョンを取得します。 音声リソースがデプロイされたら、[リソースに移動] を選択して、キーを表示および管理します。

環境をセットアップする

環境を設定するには、Speech SDK for JavaScript をインストールします。 パッケージ名のインストールだけが必要な場合は、npm install microsoft-cognitiveservices-speech-sdk を実行します。 詳しいインストール手順については、「Speech SDK のインストール」を参照してください。

環境変数を設定する

Azure AI サービスにアクセスするには、アプリケーションを認証する必要があります。 この記事では、環境変数を使って資格情報を格納する方法について説明します。 その後、コードから環境変数にアクセスして、アプリケーションを認証できます。 運用環境では、資格情報を保存してそれにアクセスする際に、安全性が高い方法を使用します。

重要

Microsoft Entra 認証と Azure リソースのマネージド ID を併用して、クラウドで実行されるアプリケーションに資格情報を格納しないようにすることをお勧めします。

API キーを使用する場合は、それを Azure Key Vault などの別の場所に安全に保存します。 API キーは、コード内に直接含めないようにし、絶対に公開しないでください。

AI サービスのセキュリティの詳細については、「Azure AI サービスに対する要求の認証」を参照してください。

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. 新しいプロジェクトを作成したい場所でコンソール ウィンドウを開き、SpeechSynthesis.js という名前のファイルを作成します。

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

    npm install microsoft-cognitiveservices-speech-sdk
    
  3. 次のコードを SpeechSynthesis.js にコピーします。

    (function() {
    
        "use strict";
    
        var sdk = require("microsoft-cognitiveservices-speech-sdk");
        var readline = require("readline");
    
        var audioFile = "YourAudioFile.wav";
        // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION"
        const speechConfig = sdk.SpeechConfig.fromSubscription(process.env.SPEECH_KEY, process.env.SPEECH_REGION);
        const audioConfig = sdk.AudioConfig.fromAudioFileOutput(audioFile);
    
        // The language of the voice that speaks.
        speechConfig.speechSynthesisVoiceName = "en-US-AvaMultilingualNeural"; 
    
        // Create the speech synthesizer.
        var synthesizer = new sdk.SpeechSynthesizer(speechConfig, audioConfig);
    
        var rl = readline.createInterface({
          input: process.stdin,
          output: process.stdout
        });
    
        rl.question("Enter some text that you want to speak >\n> ", function (text) {
          rl.close();
          // Start the synthesizer and wait for a result.
          synthesizer.speakTextAsync(text,
              function (result) {
            if (result.reason === sdk.ResultReason.SynthesizingAudioCompleted) {
              console.log("synthesis finished.");
            } else {
              console.error("Speech synthesis canceled, " + result.errorDetails +
                  "\nDid you set the speech resource key and region values?");
            }
            synthesizer.close();
            synthesizer = null;
          },
              function (err) {
            console.trace("err - " + err);
            synthesizer.close();
            synthesizer = null;
          });
          console.log("Now synthesizing to: " + audioFile);
        });
    }());
    
  4. SpeechSynthesis.js では、必要に応じて YourAudioFile.wav を別の出力ファイル名に変更できます。

  5. 音声合成言語を変更するには、en-US-AvaMultilingualNeural を別のサポートされている音声に置き換えます。

    すべてのニューラル音声は多言語で、独自の言語と英語で流暢に読み上げます。 たとえば、英語の入力テキストが "I'm excited to try text to speech" で、es-ES-ElviraNeural を設定した場合、テキストはスペイン語アクセントの英語で読み上げられます。 音声の言語と入力テキストの言語が異なる場合、Azure Cognitive Service for Speech サービスは合成された音声を出力しせん。

  6. コンソール アプリケーションを実行して、ファイルへの音声合成を開始します。

    node SpeechSynthesis.js
    

    重要

    必ず SPEECH_KEYSPEECH_REGION 環境変数を設定してください。 これらの変数を設定しない場合、サンプルは失敗してエラー メッセージが表示されます。

  7. 以下のように、指定したテキストがオーディオ ファイルに出力されるはずです。

    Enter some text that you want to speak >
    > I'm excited to try text to speech
    Now synthesizing to: YourAudioFile.wav
    synthesis finished.
    

解説

その他の音声合成オプション

このクイック スタートでは、SpeakTextAsync 操作を使用して、入力した短いテキスト ブロックを合成します。 ファイルからの長い形式のテキストを使用して、音声のスタイル、韻律、その他の設定を細かく制御することもできます。

Azure AI 音声の OpenAI テキスト読み上げ音声

OpenAI テキスト読み上げ音声もサポートされています。 「Azure AI 音声の OpenAI テキスト読み上げ音声」と「多言語音声」を参照してください。 en-US-AvaMultilingualNeural は、en-US-FableMultilingualNeural などのサポートされている OpenAI 音声の名前に置き換えることができます。

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

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

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

Azure AI 音声を使用すると、人間の声のような音声を合成してテキストを読み上げるアプリケーションを実行できます。 音声の変更や読み上げるテキストの入力を行い、出力をお使いのコンピューターのスピーカーで聞くことができます。

ヒント

Speech Studio Voice ギャラリーでは、サインアップやコードの記述なしで、テキスト読み上げを試すことができます。

ヒント

Azure AI Speech Toolkit を試して、Visual Studio Code でサンプルを簡単にビルドして実行します。

前提条件

  • Azure サブスクリプション。 無料で作成できます
  • Azure ポータルで、音声リソースを作成します
  • Speech リソース キーとリージョンを取得します。 音声リソースがデプロイされたら、[リソースに移動] を選択して、キーを表示および管理します。

環境をセットアップする

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

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

環境変数の設定

Azure AI サービスにアクセスするには、アプリケーションを認証する必要があります。 この記事では、環境変数を使って資格情報を格納する方法について説明します。 その後、コードから環境変数にアクセスして、アプリケーションを認証できます。 運用環境では、資格情報を保存してそれにアクセスする際に、安全性が高い方法を使用します。

重要

Microsoft Entra 認証と Azure リソースのマネージド ID を併用して、クラウドで実行されるアプリケーションに資格情報を格納しないようにすることをお勧めします。

API キーを使用する場合は、それを Azure Key Vault などの別の場所に安全に保存します。 API キーは、コード内に直接含めないようにし、絶対に公開しないでください。

AI サービスのセキュリティの詳細については、「Azure AI サービスに対する要求の認証」を参照してください。

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 リポジトリをクローンして、Synthesize audio in Objective-C on macOS using the Speech SDK (macOS で Speech SDK を使用して Objective-C でオーディオを合成する) サンプル プロジェクトを取得します。 このリポジトリには、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"];
    
        SPXSpeechConfiguration *speechConfig = [[SPXSpeechConfiguration alloc] initWithSubscription:speechKey region:serviceRegion];
        speechConfig.speechSynthesisVoiceName = @"en-US-AvaMultilingualNeural";
        SPXSpeechSynthesizer *speechSynthesizer = [[SPXSpeechSynthesizer alloc] init:speechConfig];
    
        NSLog(@"Start synthesizing...");
    
        SPXSpeechSynthesisResult *speechResult = [speechSynthesizer speakText:[self.textField stringValue]];
    
        // Checks result.
        if (SPXResultReason_Canceled == speechResult.reason) {
            SPXSpeechSynthesisCancellationDetails *details = [[SPXSpeechSynthesisCancellationDetails alloc] initFromCanceledSynthesisResult:speechResult];
            NSLog(@"Speech synthesis was canceled: %@. Did you set the speech resource key and region values?", details.errorDetails);
        } else if (SPXResultReason_SynthesizingAudioCompleted == speechResult.reason) {
            NSLog(@"Speech synthesis was completed");
        } else {
            NSLog(@"There was an error.");
        }
    }
    
  6. AppDelegate.m で、音声リソース キーとリージョン用に先ほど設定した環境変数を使用します。

    NSString *speechKey = [[[NSProcessInfo processInfo] environment] objectForKey:@"SPEECH_KEY"];
    NSString *serviceRegion = [[[NSProcessInfo processInfo] environment] objectForKey:@"SPEECH_REGION"];
    
  7. 次に示すように、必要に応じて AppDelegate.m に音声合成の音声名を含めます。

    speechConfig.speechSynthesisVoiceName = @"en-US-AvaMultilingualNeural";
    
  8. 音声合成言語を変更するには、en-US-AvaMultilingualNeural を別のサポートされている音声に置き換えます。

    すべてのニューラル音声は多言語で、独自の言語と英語で流暢に読み上げます。 たとえば、英語の入力テキストが "I'm excited to try text to speech" で、es-ES-ElviraNeural を設定した場合、テキストはスペイン語アクセントの英語で読み上げられます。 音声の言語と入力テキストの言語が異なる場合、Azure Cognitive Service for Speech サービスは合成された音声を出力しせん。

  9. デバッグ出力が表示されるようにするには、[表示]>[デバッグ領域]>[コンソールのアクティブ化] を選択します。

  10. サンプル コードをビルドして実行するには、メニューの [製品]>[実行] を選択して、[再生] ボタンを選択します。

    重要

    必ず SPEECH_KEYSPEECH_REGION 環境変数を設定してください。 これらの変数を設定しない場合、サンプルは失敗してエラー メッセージが表示されます。

テキストを入力してアプリのボタンを選ぶと、再生された合成音声が聞こえるはずです。

解説

その他の音声合成オプション

このクイック スタートでは、SpeakText 操作を使用して、入力した短いテキスト ブロックを合成します。 ファイルからの長い形式のテキストを使用して、音声のスタイル、韻律、その他の設定を細かく制御することもできます。

Azure AI 音声の OpenAI テキスト読み上げ音声

OpenAI テキスト読み上げ音声もサポートされています。 「Azure AI 音声の OpenAI テキスト読み上げ音声」と「多言語音声」を参照してください。 en-US-AvaMultilingualNeural は、en-US-FableMultilingualNeural などのサポートされている OpenAI 音声の名前に置き換えることができます。

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

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

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

Azure AI 音声を使用すると、人間の声のような音声を合成してテキストを読み上げるアプリケーションを実行できます。 音声の変更や読み上げるテキストの入力を行い、出力をお使いのコンピューターのスピーカーで聞くことができます。

ヒント

Speech Studio Voice ギャラリーでは、サインアップやコードの記述なしで、テキスト読み上げを試すことができます。

ヒント

Azure AI Speech Toolkit を試して、Visual Studio Code でサンプルを簡単にビルドして実行します。

前提条件

  • Azure サブスクリプション。 無料で作成できます
  • Azure ポータルで、音声リソースを作成します
  • Speech リソース キーとリージョンを取得します。 音声リソースがデプロイされたら、[リソースに移動] を選択して、キーを表示および管理します。

環境をセットアップする

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

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

環境変数の設定

Azure AI サービスにアクセスするには、アプリケーションを認証する必要があります。 この記事では、環境変数を使って資格情報を格納する方法について説明します。 その後、コードから環境変数にアクセスして、アプリケーションを認証できます。 運用環境では、資格情報を保存してそれにアクセスする際に、安全性が高い方法を使用します。

重要

Microsoft Entra 認証と Azure リソースのマネージド ID を併用して、クラウドで実行されるアプリケーションに資格情報を格納しないようにすることをお勧めします。

API キーを使用する場合は、それを Azure Key Vault などの別の場所に安全に保存します。 API キーは、コード内に直接含めないようにし、絶対に公開しないでください。

AI サービスのセキュリティの詳細については、「Azure AI サービスに対する要求の認証」を参照してください。

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 リポジトリをクローンして、Synthesize audio in Swift on macOS using the Speech SDK (macOS で Speech SDK を使用して Swift でオーディオを合成する) サンプル プロジェクトを取得します。 このリポジトリには、iOS サンプルもあります。

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

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

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

  5. 次に示すように、AppDelegate.swift という名前のファイルを開き、applicationDidFinishLaunching メソッドと synthesize メソッドを見つけます。

    import Cocoa
    
    @NSApplicationMain
    class AppDelegate: NSObject, NSApplicationDelegate, NSTextFieldDelegate {
        var textField: NSTextField!
        var synthesisButton: NSButton!
    
        var inputText: String!
    
        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"]
    
            inputText = ""
    
            textField = NSTextField(frame: NSRect(x: 100, y: 200, width: 200, height: 50))
            textField.textColor = NSColor.black
            textField.lineBreakMode = .byWordWrapping
    
            textField.placeholderString = "Type something to synthesize."
            textField.delegate = self
    
            self.window.contentView?.addSubview(textField)
    
            synthesisButton = NSButton(frame: NSRect(x: 100, y: 100, width: 200, height: 30))
            synthesisButton.title = "Synthesize"
            synthesisButton.target = self
            synthesisButton.action = #selector(synthesisButtonClicked)
            self.window.contentView?.addSubview(synthesisButton)
        }
    
        @objc func synthesisButtonClicked() {
            DispatchQueue.global(qos: .userInitiated).async {
                self.synthesize()
            }
        }
    
        func synthesize() {
            var speechConfig: SPXSpeechConfiguration?
            do {
                try speechConfig = SPXSpeechConfiguration(subscription: sub, region: region)
            } catch {
                print("error \(error) happened")
                speechConfig = nil
            }
    
            speechConfig?.speechSynthesisVoiceName = "en-US-AvaMultilingualNeural";
    
            let synthesizer = try! SPXSpeechSynthesizer(speechConfig!)
            let result = try! synthesizer.speakText(inputText)
            if result.reason == SPXResultReason.canceled
            {
                let cancellationDetails = try! SPXSpeechSynthesisCancellationDetails(fromCanceledSynthesisResult: result)
                print("cancelled, error code: \(cancellationDetails.errorCode) detail: \(cancellationDetails.errorDetails!) ")
                print("Did you set the speech resource key and region values?");
                return
            }
        }
    
        func controlTextDidChange(_ obj: Notification) {
            let textFiled = obj.object as! NSTextField
            inputText = textFiled.stringValue
        }
    }
    
  6. AppDelegate.m で、音声リソース キーとリージョン用に先ほど設定した環境変数を使用します。

    sub = ProcessInfo.processInfo.environment["SPEECH_KEY"]
    region = ProcessInfo.processInfo.environment["SPEECH_REGION"]
    
  7. 次に示すように、必要に応じて AppDelegate.m に音声合成の音声名を含めます。

    speechConfig?.speechSynthesisVoiceName = "en-US-AvaMultilingualNeural";
    
  8. 音声合成言語を変更するには、en-US-AvaMultilingualNeural を別のサポートされている音声に置き換えます。

    すべてのニューラル音声は多言語で、独自の言語と英語で流暢に読み上げます。 たとえば、英語の入力テキストが "I'm excited to try text to speech" で、es-ES-ElviraNeural を設定した場合、テキストはスペイン語アクセントの英語で読み上げられます。 音声の言語と入力テキストの言語が異なる場合、Azure Cognitive Service for Speech サービスは合成された音声を出力しせん。

  9. デバッグ出力が表示されるようにするには、[表示]>[デバッグ領域]>[コンソールのアクティブ化] を選択します。

  10. サンプル コードをビルドして実行するには、メニューの [製品]>[実行] を選択して、[再生] ボタンを選択します。

重要

必ず SPEECH_KEYSPEECH_REGION 環境変数を設定してください。 これらの変数を設定しない場合、サンプルは失敗してエラー メッセージが表示されます。

テキストを入力してアプリのボタンを選ぶと、再生された合成音声が聞こえるはずです。

解説

その他の音声合成オプション

このクイック スタートでは、SpeakText 操作を使用して、入力した短いテキスト ブロックを合成します。 ファイルからの長い形式のテキストを使用して、音声のスタイル、韻律、その他の設定を細かく制御することもできます。

Azure AI 音声の OpenAI テキスト読み上げ音声

OpenAI テキスト読み上げ音声もサポートされています。 「Azure AI 音声の OpenAI テキスト読み上げ音声」と「多言語音声」を参照してください。 en-US-AvaMultilingualNeural は、en-US-FableMultilingualNeural などのサポートされている OpenAI 音声の名前に置き換えることができます。

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

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

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

Azure AI 音声を使用すると、人間の声のような音声を合成してテキストを読み上げるアプリケーションを実行できます。 音声の変更や読み上げるテキストの入力を行い、出力をお使いのコンピューターのスピーカーで聞くことができます。

ヒント

Speech Studio Voice ギャラリーでは、サインアップやコードの記述なしで、テキスト読み上げを試すことができます。

ヒント

Azure AI Speech Toolkit を試して、Visual Studio Code でサンプルを簡単にビルドして実行します。

前提条件

  • Azure サブスクリプション。 無料で作成できます
  • Azure ポータルで、音声リソースを作成します
  • Speech リソース キーとリージョンを取得します。 音声リソースがデプロイされたら、[リソースに移動] を選択して、キーを表示および管理します。

環境をセットアップする

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

Python の 3.7 以降のバージョンをインストールします。 要件については、「Speech SDK のインストール」を参照してください。

環境変数を設定する

Azure AI サービスにアクセスするには、アプリケーションを認証する必要があります。 この記事では、環境変数を使って資格情報を格納する方法について説明します。 その後、コードから環境変数にアクセスして、アプリケーションを認証できます。 運用環境では、資格情報を保存してそれにアクセスする際に、安全性が高い方法を使用します。

重要

Microsoft Entra 認証と Azure リソースのマネージド ID を併用して、クラウドで実行されるアプリケーションに資格情報を格納しないようにすることをお勧めします。

API キーを使用する場合は、それを Azure Key Vault などの別の場所に安全に保存します。 API キーは、コード内に直接含めないようにし、絶対に公開しないでください。

AI サービスのセキュリティの詳細については、「Azure AI サービスに対する要求の認証」を参照してください。

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_synthesis.py という名前のファイルを作成します。

  2. 次のコマンドを実行して、Speech SDK をインストールします。

    pip install azure-cognitiveservices-speech
    
  3. 次のコードを speech_synthesis.py にコピーします。

    import os
    import azure.cognitiveservices.speech as speechsdk
    
    # 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'))
    audio_config = speechsdk.audio.AudioOutputConfig(use_default_speaker=True)
    
    # The neural multilingual voice can speak different languages based on the input text.
    speech_config.speech_synthesis_voice_name='en-US-AvaMultilingualNeural'
    
    speech_synthesizer = speechsdk.SpeechSynthesizer(speech_config=speech_config, audio_config=audio_config)
    
    # Get text from the console and synthesize to the default speaker.
    print("Enter some text that you want to speak >")
    text = input()
    
    speech_synthesis_result = speech_synthesizer.speak_text_async(text).get()
    
    if speech_synthesis_result.reason == speechsdk.ResultReason.SynthesizingAudioCompleted:
        print("Speech synthesized for text [{}]".format(text))
    elif speech_synthesis_result.reason == speechsdk.ResultReason.Canceled:
        cancellation_details = speech_synthesis_result.cancellation_details
        print("Speech synthesis canceled: {}".format(cancellation_details.reason))
        if cancellation_details.reason == speechsdk.CancellationReason.Error:
            if cancellation_details.error_details:
                print("Error details: {}".format(cancellation_details.error_details))
                print("Did you set the speech resource key and region values?")
    
  4. 音声合成言語を変更するには、en-US-AvaMultilingualNeural を別のサポートされている音声に置き換えます。

    すべてのニューラル音声は多言語で、独自の言語と英語で流暢に読み上げます。 たとえば、英語の入力テキストが "I'm excited to try text to speech" で、es-ES-ElviraNeural を設定した場合、テキストはスペイン語アクセントの英語で読み上げられます。 音声の言語と入力テキストの言語が異なる場合、Azure Cognitive Service for Speech サービスは合成された音声を出力しせん。

  5. 新しいコンソール アプリケーションを実行して、既定のスピーカーへの音声合成を開始します。

    python speech_synthesis.py
    

    重要

    必ず SPEECH_KEYSPEECH_REGION 環境変数を設定してください。 これらの変数を設定しない場合、サンプルは失敗してエラー メッセージが表示されます。

  6. 読み上げたいテキストを入力します。 たとえば、「I'm excited to try text to speech」と入力します。 Enter キーを押して、合成された音声を聞きます。

    Enter some text that you want to speak > 
    I'm excited to try text to speech
    

解説

その他の音声合成オプション

このクイック スタートでは、speak_text_async 操作を使用して、入力した短いテキスト ブロックを合成します。 ファイルからの長い形式のテキストを使用して、音声のスタイル、韻律、その他の設定を細かく制御することもできます。

Azure AI 音声の OpenAI テキスト読み上げ音声

OpenAI テキスト読み上げ音声もサポートされています。 「Azure AI 音声の OpenAI テキスト読み上げ音声」と「多言語音声」を参照してください。 en-US-AvaMultilingualNeural は、en-US-FableMultilingualNeural などのサポートされている OpenAI 音声の名前に置き換えることができます。

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

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

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

Azure AI 音声を使用すると、人間の声のような音声を合成してテキストを読み上げるアプリケーションを実行できます。 音声の変更や読み上げるテキストの入力を行い、出力をお使いのコンピューターのスピーカーで聞くことができます。

ヒント

Speech Studio Voice ギャラリーでは、サインアップやコードの記述なしで、テキスト読み上げを試すことができます。

ヒント

Azure AI Speech Toolkit を試して、Visual Studio Code でサンプルを簡単にビルドして実行します。

前提条件

  • Azure サブスクリプション。 無料で作成できます
  • Azure ポータルで、音声リソースを作成します
  • Speech リソース キーとリージョンを取得します。 音声リソースがデプロイされたら、[リソースに移動] を選択して、キーを表示および管理します。

環境変数を設定する

Azure AI サービスにアクセスするには、アプリケーションを認証する必要があります。 この記事では、環境変数を使って資格情報を格納する方法について説明します。 その後、コードから環境変数にアクセスして、アプリケーションを認証できます。 運用環境では、資格情報を保存してそれにアクセスする際に、安全性が高い方法を使用します。

重要

Microsoft Entra 認証と Azure リソースのマネージド ID を併用して、クラウドで実行されるアプリケーションに資格情報を格納しないようにすることをお勧めします。

API キーを使用する場合は、それを Azure Key Vault などの別の場所に安全に保存します。 API キーは、コード内に直接含めないようにし、絶対に公開しないでください。

AI サービスのセキュリティの詳細については、「Azure AI サービスに対する要求の認証」を参照してください。

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 コマンドを実行します。 必要に応じて、output.mp3 を別の出力ファイル名に変更できます。

curl --location --request POST "https://%SPEECH_REGION%.tts.speech.microsoft.com/cognitiveservices/v1" ^
--header "Ocp-Apim-Subscription-Key: %SPEECH_KEY%" ^
--header "Content-Type: application/ssml+xml" ^
--header "X-Microsoft-OutputFormat: audio-16khz-128kbitrate-mono-mp3" ^
--header "User-Agent: curl" ^
--data-raw "<speak version='1.0' xml:lang='en-US'><voice xml:lang='en-US' xml:gender='Female' name='en-US-AvaMultilingualNeural'>my voice is my passport verify me</voice></speak>" --output output.mp3

重要

必ず SPEECH_KEYSPEECH_REGION 環境変数を設定してください。 これらの変数を設定しない場合、サンプルは失敗してエラー メッセージが表示されます。

指定したテキストが、output.mp3 という名前のオーディオ ファイルに出力されるはずです。

音声合成言語を変更するには、en-US-AvaMultilingualNeural を別のサポートされている音声に置き換えます。

すべてのニューラル音声は多言語で、独自の言語と英語で流暢に読み上げます。 たとえば、英語の入力テキストが "I'm excited to try text to speech" で、es-ES-ElviraNeural を設定した場合、テキストはスペイン語アクセントの英語で読み上げられます。 音声の言語と入力テキストの言語が異なる場合、Azure Cognitive Service for Speech サービスは合成された音声を出力しせん。

詳細については、「Text to speech REST API」をご覧ください。

解説

Azure AI 音声の OpenAI テキスト読み上げ音声

OpenAI テキスト読み上げ音声もサポートされています。 「Azure AI 音声の OpenAI テキスト読み上げ音声」と「多言語音声」を参照してください。 en-US-AvaMultilingualNeural は、en-US-FableMultilingualNeural などのサポートされている OpenAI 音声の名前に置き換えることができます。

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

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

Azure AI 音声を使用すると、人間の声のような音声を合成してテキストを読み上げるアプリケーションを実行できます。 音声の変更や読み上げるテキストの入力を行い、出力をお使いのコンピューターのスピーカーで聞くことができます。

ヒント

Speech Studio Voice ギャラリーでは、サインアップやコードの記述なしで、テキスト読み上げを試すことができます。

ヒント

Azure AI Speech Toolkit を試して、Visual Studio Code でサンプルを簡単にビルドして実行します。

前提条件

  • Azure サブスクリプション。 無料で作成できます
  • Azure ポータルで、音声リソースを作成します
  • Speech リソース キーとリージョンを取得します。 音声リソースがデプロイされたら、[リソースに移動] を選択して、キーを表示および管理します。

環境をセットアップする

次の手順を実行し、対象プラットフォームに対する他の要件を Azure Cognitive Service for Speech CLI クイックスタートで確認します。

  1. 次の .NET CLI コマンドを実行して、Speech CLI をインストールします。

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

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

スピーカーに音声を送信する

既定のスピーカーに音声合成を出力するには、次のコマンドを実行します。 音声と合成されるテキストを変更できます。

spx synthesize --text "I'm excited to try text to speech" --voice "en-US-AvaMultilingualNeural"

音声名を設定しない場合、既定値である en-US の音声が読み上げられます。

すべてのニューラル音声は多言語で、独自の言語と英語で流暢に読み上げます。 たとえば、英語の入力テキストが "I'm excited to try text to speech" で、--voice "es-ES-ElviraNeural" を設定した場合、テキストはスペイン語アクセントの英語で読み上げられます。 音声の言語と入力テキストの言語が異なる場合、Azure Cognitive Service for Speech サービスは合成された音声を出力しせん。

ファイル入力や出力など、音声合成の他のオプションに関する情報を見るには、次のコマンドを実行します。

spx help synthesize

解説

SSML のサポート

音声合成マークアップ言語 (SSML) を使用して、音声スタイル、韻律、その他の設定をきめ細かく制御できます。

Azure AI 音声の OpenAI テキスト読み上げ音声

OpenAI テキスト読み上げ音声もサポートされています。 「Azure AI 音声の OpenAI テキスト読み上げ音声」と「多言語音声」を参照してください。 en-US-AvaMultilingualNeural は、en-US-FableMultilingualNeural などのサポートされている OpenAI 音声の名前に置き換えることができます。

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

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

次のステップ