次の方法で共有


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

このクイックスタートでは、Microsoft Foundry を使用して Foundry Tools で Azure Speech のテキスト読み上げモデルを試してください。

前提条件

テキスト読み上げを試す

次の手順に従って、Foundry ポータルでテキスト読み上げを試します。

  1. Microsoft Foundry にサインインします。 「新しいファウンドリー」トグルがオンになっていることを確認します。 これらの手順は Foundry (新規) を参照します。
  2. 右上のメニューから [ビルド ] を選択します。
  3. 左側のウィンドウで [ モデル ] を選択します。
  4. AI Services タブには、Foundry ポータルですぐに使用できるAzure AI モデルが表示されます。 Azure Speech - Text to Speech を選択して、Text to Speechプレイグラウンドを開きます。
  5. ドロップダウン メニューから事前構築済みの音声を選択し、必要に応じてプロバイダー パラメーター スライダーを使用して調整します。
  6. テキスト ボックスにサンプル テキストを入力します。
  7. 合成音声がテキストを読み上げるには、[ 再生 ] を選択します。

その他のFoundryの新機能

Foundry (新しい) ポータルでは、次の音声機能を使用できます。

参照ドキュメント | パッケージ (NuGet) | GitHub上の追加サンプル

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

ヒント

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

ヒント

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

前提条件

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

環境をセットアップする

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

環境変数の設定

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

重要

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

API キーは慎重に使用してください。 API キーは、コードに直接含めないようにし、公開しないでください。 API キーを使用する場合は、Azure Key Vaultに安全に格納し、キーを定期的にローテーションし、ロールベースのアクセス制御とネットワーク アクセス制限を使用してAzure Key Vaultへのアクセスを制限します。 アプリで API キーを安全に使用する方法の詳細については、「Azure Key Vault を使用した API キー」を参照してください。

AI サービスのセキュリティの詳細については、「Authenticate requests to Azure AI services」を参照してください。

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

  • SPEECH_KEY 環境変数を設定するには、your-key をリソースのキーの 1 つに置き換えます。
  • ENDPOINT環境変数を設定するには、エンドポイントをリソースのエンドポイントのいずれかに置き換えます。
setx SPEECH_KEY your-key
setx ENDPOINT your-endpoint

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

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

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

以下の手順に従ってコンソール アプリケーションを作成し、Speech 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 "ENDPOINT"
        static string speechKey = Environment.GetEnvironmentVariable("SPEECH_KEY");
        static string endpoint = Environment.GetEnvironmentVariable("ENDPOINT");
    
        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 endpoint values?");
                    }
                    break;
                default:
                    break;
            }
        }
    
        async static Task Main(string[] args)
        {
            var speechConfig = SpeechConfig.FromEndpoint(new Uri(endpoint), speechKey); 
    
            // The neural multilingual voice can speak different languages based on the input text.
            speechConfig.SpeechSynthesisVoiceName = "en-US-Ava:DragonHDLatestNeural"; 
    
            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-Ava:DragonHDLatestNeural を別のサポートされている音声に置き換えます。

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

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

    dotnet run
    

    重要

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

  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 Speech の Foundry Tools における OpenAI テキスト読み上げ音声

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

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

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

参照ドキュメント | パッケージ (NuGet) | GitHub上の追加サンプル

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

ヒント

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

ヒント

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

前提条件

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

環境をセットアップする

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

環境変数の設定

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

重要

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

API キーは慎重に使用してください。 API キーは、コードに直接含めないようにし、公開しないでください。 API キーを使用する場合は、Azure Key Vaultに安全に格納し、キーを定期的にローテーションし、ロールベースのアクセス制御とネットワーク アクセス制限を使用してAzure Key Vaultへのアクセスを制限します。 アプリで API キーを安全に使用する方法の詳細については、「Azure Key Vault を使用した API キー」を参照してください。

AI サービスのセキュリティの詳細については、「Authenticate requests to Azure AI services」を参照してください。

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

  • SPEECH_KEY 環境変数を設定するには、your-key をリソースのキーの 1 つに置き換えます。
  • ENDPOINT環境変数を設定するには、エンドポイントをリソースのエンドポイントのいずれかに置き換えます。
setx SPEECH_KEY your-key
setx ENDPOINT your-endpoint

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

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

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

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

  1. Visual Studio CommunitySpeechSynthesis という名前の 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 "ENDPOINT"
        auto speechKey = GetEnvironmentVariable("SPEECH_KEY");
        auto endpoint = GetEnvironmentVariable("ENDPOINT");
    
        if (std::string(speechKey).empty() || std::string(endpoint).empty()) {
            std::cout << "Please set both SPEECH_KEY and ENDPOINT environment variables." << std::endl;
            return -1;
        }
    
        auto speechConfig = SpeechConfig::FromEndpoint(endpoint, speechKey);
    
        // The neural multilingual voice can speak different languages based on the input text.
        speechConfig->SetSpeechSynthesisVoiceName("en-US-AriaNeural");
    
        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 endpoint 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. Tools>Nuget Package Manager>Package Manager Console を選択します。 Package Manager コンソールで、次のコマンドを実行します。

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

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

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

    重要

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

  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 Speech の Foundry Tools における OpenAI テキスト読み上げ音声

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

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

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

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

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

ヒント

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

ヒント

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

前提条件

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

環境をセットアップする

Speech SDK は Go パッケージとして使用できます。 ターミナルを使用して、このガイドの後半で Speech SDK をインストールします。 詳しいインストール手順については、「Speech SDK のインストール」を参照してください。

環境変数の設定

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

重要

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

API キーは慎重に使用してください。 API キーは、コードに直接含めないようにし、公開しないでください。 API キーを使用する場合は、Azure Key Vaultに安全に格納し、キーを定期的にローテーションし、ロールベースのアクセス制御とネットワーク アクセス制限を使用してAzure Key Vaultへのアクセスを制限します。 アプリで API キーを安全に使用する方法の詳細については、「Azure Key Vault を使用した API キー」を参照してください。

AI サービスのセキュリティの詳細については、「Authenticate requests to Azure AI services」を参照してください。

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

  • SPEECH_KEY 環境変数を設定するには、your-key をリソースのキーの 1 つに置き換えます。
  • ENDPOINT環境変数を設定するには、エンドポイントをリソースのエンドポイントのいずれかに置き換えます。
setx SPEECH_KEY your-key
setx ENDPOINT your-endpoint

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

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

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

Go アプリケーションを作成し、Speech SDK をインストールするには、次の手順に従います。

  1. 新しいプロジェクトを作成するフォルダー内のターミナル ウィンドウを開きます。 main.go という名前の新しいファイルを作成します。

  2. Go CLI を使用して、新しいプロジェクトに Speech SDK をインストールします。

    go get github.com/Microsoft/cognitive-services-speech-sdk-go
    
  3. main.go の内容を次のコードに置き換えます。

    package main
    
    import (
       "bufio"
       "fmt"
       "os"
       "strings"
    
       "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 outputSpeechSynthesisResult(result *speech.SpeechSynthesisResult, text string) {
       switch result.Reason {
       case common.SynthesizingAudioCompleted:
           fmt.Printf("Speech synthesized for text: [%s]\n", text)
       case common.Canceled:
           cancellation, err := speech.NewCancellationDetailsFromSpeechSynthesisResult(result)
           if err != nil {
               fmt.Println("Got an error: ", err)
               return
           }
    
           fmt.Printf("CANCELED: Reason=%d\n", cancellation.Reason)
           if cancellation.Reason == common.Error {
               fmt.Printf("CANCELED: ErrorCode=%d\n", cancellation.ErrorCode)
               fmt.Printf("CANCELED: ErrorDetails=[%s]\n", cancellation.ErrorDetails)
               fmt.Println("CANCELED: Did you set the speech resource key and endpoint values?")
           }
       default:
       }
    }
    
    func main() {
       // This example requires environment variables named "SPEECH_KEY" and "ENDPOINT"
       speechKey := os.Getenv("SPEECH_KEY")
       endpoint := os.Getenv("ENDPOINT")
       if speechKey == "" || endpoint == "" {
           fmt.Println("Missing required environment variables. Set SPEECH_KEY and ENDPOINT.")
           return
       }
    
       speechConfig, err := speech.NewSpeechConfigFromEndpointWithSubscription(endpoint, speechKey)
       if err != nil {
           fmt.Println("Got an error: ", err)
           return
       }
       defer speechConfig.Close()
    
       // The neural multilingual voice can speak different languages based on the input text.
       speechConfig.SetSpeechSynthesisVoiceName("en-US-Ava:DragonHDLatestNeural")
    
       audioConfig, err := audio.NewAudioConfigFromDefaultSpeakerOutput()
       if err != nil {
           fmt.Println("Got an error: ", err)
           return
       }
       defer audioConfig.Close()
    
       speechSynthesizer, err := speech.NewSpeechSynthesizerFromConfig(speechConfig, audioConfig)
       if err != nil {
           fmt.Println("Got an error: ", err)
           return
       }
       defer speechSynthesizer.Close()
    
       fmt.Println("Enter some text that you want to speak >")
       reader := bufio.NewReader(os.Stdin)
       text, _ := reader.ReadString('\n')
       text = strings.TrimSpace(text)
       if text == "" {
           fmt.Println("Input text cannot be empty.")
           return
       }
    
       outcome := <-speechSynthesizer.SpeakTextAsync(text)
       defer outcome.Close()
       if outcome.Error != nil {
           fmt.Println("Got an error: ", outcome.Error)
           return
       }
       result := outcome.Result
       defer result.Close()
    
       outputSpeechSynthesisResult(result, text)
    
       fmt.Println("Press any key to exit...")
       reader.ReadString('\n')
    }
    
  4. 音声合成言語を変更するには、en-US-Ava:DragonHDLatestNeural を別のサポートされている音声に置き換えます。

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

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

    go mod init captioning
    go get github.com/Microsoft/cognitive-services-speech-sdk-go
    
  6. GO モジュールをビルドします。

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

    go run main.go
    

    重要

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

  8. 読み上げたいテキストを入力します。 たとえば、「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
    

解説

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

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

Azure Speech の Foundry Tools における OpenAI テキスト読み上げ音声

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

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

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

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

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

ヒント

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

ヒント

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

前提条件

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

    mvn clean dependency:copy-dependencies
    

環境変数の設定

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

重要

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

API キーは慎重に使用してください。 API キーは、コードに直接含めないようにし、公開しないでください。 API キーを使用する場合は、Azure Key Vaultに安全に格納し、キーを定期的にローテーションし、ロールベースのアクセス制御とネットワーク アクセス制限を使用してAzure Key Vaultへのアクセスを制限します。 アプリで API キーを安全に使用する方法の詳細については、「Azure Key Vault を使用した API キー」を参照してください。

AI サービスのセキュリティの詳細については、「Authenticate requests to Azure AI services」を参照してください。

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

  • SPEECH_KEY 環境変数を設定するには、your-key をリソースのキーの 1 つに置き換えます。
  • ENDPOINT環境変数を設定するには、エンドポイントをリソースのエンドポイントのいずれかに置き換えます。
setx SPEECH_KEY your-key
setx ENDPOINT your-endpoint

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

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

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

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

  1. 同じプロジェクト ルート ディレクトリに SpeechSynthesis.java という名前のファイルを作成します。

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

    import com.microsoft.cognitiveservices.speech.*;
    import com.microsoft.cognitiveservices.speech.audio.*;
    
    import java.net.URI;
    import java.net.URISyntaxException;
    import java.util.Scanner;
    import java.util.concurrent.ExecutionException;
    
    public class SpeechSynthesis {
        // This example requires environment variables named "SPEECH_KEY" and "ENDPOINT"
        private static String speechKey = System.getenv("SPEECH_KEY");
        private static String endpoint = System.getenv("ENDPOINT");
    
        public static void main(String[] args) throws InterruptedException, ExecutionException, URISyntaxException {
            SpeechConfig speechConfig = SpeechConfig.fromEndpoint(new URI(endpoint), speechKey);
    
            speechConfig.setSpeechSynthesisVoiceName("en-US-Ava:DragonHDLatestNeural"); 
    
            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 endpoint values?");
                }
            }
    
            System.exit(0);
        }
    }
    
  3. 音声合成言語を変更するには、en-US-Ava:DragonHDLatestNeural を別のサポートされている音声に置き換えます。

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

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

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

    重要

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

  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 Speech の Foundry Tools における OpenAI テキスト読み上げ音声

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

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

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

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

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

ヒント

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

ヒント

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

前提条件

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

セットアップ

  1. synthesis-quickstart新しいフォルダーを作成し、次のコマンドを使用してクイック スタート フォルダーに移動します。

    mkdir synthesis-quickstart && cd synthesis-quickstart
    
  2. 次のコマンドで package.json を作成します。

    npm init -y
    
  3. 次のコマンドを使用して Speech SDK for JavaScript をインストールします。

    npm install microsoft-cognitiveservices-speech-sdk
    

リソース情報の取得

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

重要

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

API キーは慎重に使用してください。 API キーは、コードに直接含めないようにし、公開しないでください。 API キーを使用する場合は、Azure Key Vaultに安全に格納し、キーを定期的にローテーションし、ロールベースのアクセス制御とネットワーク アクセス制限を使用してAzure Key Vaultへのアクセスを制限します。 アプリで API キーを安全に使用する方法の詳細については、「Azure Key Vault を使用した API キー」を参照してください。

AI サービスのセキュリティの詳細については、「Authenticate requests to Azure AI services」を参照してください。

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

  • SPEECH_KEY 環境変数を設定するには、your-key をリソースのキーの 1 つに置き換えます。
  • SPEECH_REGION 環境変数を設定するには、your-region をリソースのリージョンの 1 つに置き換えます。
  • ENDPOINT環境変数を設定するには、your-endpointを Speech リソースの実際のエンドポイントに置き換えます。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
setx ENDPOINT your-endpoint

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

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

音声をファイルに合成する

ファイルから音声を翻訳するには:

  1. 次の内容を 含むsynthesis.js という名前の新しいファイルを作成します。

    import { createInterface } from "readline";
    import { SpeechConfig, AudioConfig, SpeechSynthesizer, ResultReason } from "microsoft-cognitiveservices-speech-sdk";
    function synthesizeSpeech() {
        const audioFile = "YourAudioFile.wav";
        // This example requires environment variables named "ENDPOINT" and "SPEECH_KEY"
        const speechConfig = SpeechConfig.fromEndpoint(new URL(ENDPOINT), process.env.SPEECH_KEY);
        const audioConfig = AudioConfig.fromAudioFileOutput(audioFile);
        // The language of the voice that speaks.
        speechConfig.speechSynthesisVoiceName = "en-US-Ava:DragonHDLatestNeural";
        // Create the speech synthesizer.
        const synthesizer = new SpeechSynthesizer(speechConfig, audioConfig);
        const rl = 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 === 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();
            }, function (err) {
                console.trace("err - " + err);
                synthesizer.close();
            });
            console.log("Now synthesizing to: " + audioFile);
        });
    }
    synthesizeSpeech();
    

    synthesis.jsでは、必要に応じて、YourAudioFile.wavの名前を別の出力ファイル名に変更できます。

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

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

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

    node synthesis.js
    

アウトプット

コンソールに次の出力が表示されます。 プロンプトに従って、合成するテキストを入力します。

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 Speech の Foundry Tools における OpenAI テキスト読み上げ音声

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

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

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

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

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

ヒント

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

ヒント

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

前提条件

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

環境をセットアップする

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

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

環境変数の設定

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

重要

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

API キーは慎重に使用してください。 API キーは、コードに直接含めないようにし、公開しないでください。 API キーを使用する場合は、Azure Key Vaultに安全に格納し、キーを定期的にローテーションし、ロールベースのアクセス制御とネットワーク アクセス制限を使用してAzure Key Vaultへのアクセスを制限します。 アプリで API キーを安全に使用する方法の詳細については、「Azure Key Vault を使用した API キー」を参照してください。

AI サービスのセキュリティの詳細については、「Authenticate requests to Azure AI services」を参照してください。

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

  • SPEECH_KEY 環境変数を設定するには、your-key をリソースのキーの 1 つに置き換えます。
  • SPEECH_REGION 環境変数を設定するには、your-region をリソースのリージョンの 1 つに置き換えます。
  • ENDPOINT環境変数を設定するには、your-endpointを Speech リソースの実際のエンドポイントに置き換えます。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
setx ENDPOINT your-endpoint

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

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

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

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

  1. Azure-Samples/cognitive-services-speech-sdk リポジトリを複製して、Speech SDK サンプル プロジェクトを使用して、macOS 上の Swift で Synthesize オーディオを取得します。 このリポジトリには、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-Ava:DragonHDLatestNeural";
    
            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 で、Azure Cognitive Service for Speech リソース キーとリージョンに対して以前に設定した 環境変数を使用します。

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

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

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

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

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

重要

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

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

解説

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

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

Azure Speech の Foundry Tools における OpenAI テキスト読み上げ音声

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

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

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

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

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

ヒント

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

ヒント

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

前提条件

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

環境をセットアップする

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

  • Windowsで、Visual Studio 2015、2017、2019、および 2022 用の Microsoft Visual C++ 再頒布可能パッケージをプラットフォームにインストールします。 このパッケージをインストールすると、再起動が必要になる可能性があります。
  • Linux では、x64 ターゲット アーキテクチャを使う必要があります。

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

環境変数の設定

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

重要

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

API キーは慎重に使用してください。 API キーは、コードに直接含めないようにし、公開しないでください。 API キーを使用する場合は、Azure Key Vaultに安全に格納し、キーを定期的にローテーションし、ロールベースのアクセス制御とネットワーク アクセス制限を使用してAzure Key Vaultへのアクセスを制限します。 アプリで API キーを安全に使用する方法の詳細については、「Azure Key Vault を使用した API キー」を参照してください。

AI サービスのセキュリティの詳細については、「Authenticate requests to Azure AI services」を参照してください。

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

  • SPEECH_KEY 環境変数を設定するには、your-key をリソースのキーの 1 つに置き換えます。
  • ENDPOINT環境変数を設定するには、エンドポイントをリソースのエンドポイントのいずれかに置き換えます。
setx SPEECH_KEY your-key
setx ENDPOINT your-endpoint

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

実行中のプログラムのうち、環境変数の読み取りを必要とするプログラム (コンソール ウィンドウを含む) については、環境変数を読み込む再起動が必要となる場合があります。 たとえば、エディターとして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 "ENDPOINT"
    # Replace with your own subscription key and endpoint, the endpoint is like : "https://YourServiceRegion.api.cognitive.microsoft.com"
    speech_config = speechsdk.SpeechConfig(subscription=os.environ.get('SPEECH_KEY'), endpoint=os.environ.get('ENDPOINT'))
    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-Ava:DragonHDLatestNeural'
    
    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 endpoint values?")
    
  4. 音声合成言語を変更するには、en-US-Ava:DragonHDLatestNeural を別のサポートされている音声に置き換えます。

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

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

    python speech_synthesis.py
    

    重要

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

  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 Speech の Foundry Tools における OpenAI テキスト読み上げ音声

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

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

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

Speech to text REST API リファレンス短いオーディオ用の Speech to text REST API リファレンスGitHub の追加サンプル

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

ヒント

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

ヒント

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

前提条件

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

環境変数の設定

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

重要

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

API キーは慎重に使用してください。 API キーは、コードに直接含めないようにし、公開しないでください。 API キーを使用する場合は、Azure Key Vaultに安全に格納し、キーを定期的にローテーションし、ロールベースのアクセス制御とネットワーク アクセス制限を使用してAzure Key Vaultへのアクセスを制限します。 アプリで API キーを安全に使用する方法の詳細については、「Azure Key Vault を使用した API キー」を参照してください。

AI サービスのセキュリティの詳細については、「Authenticate requests to Azure AI services」を参照してください。

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

  • SPEECH_KEY 環境変数を設定するには、your-key をリソースのキーの 1 つに置き換えます。
  • SPEECH_REGION 環境変数を設定するには、your-region をリソースのリージョンの 1 つに置き換えます。
  • ENDPOINT環境変数を設定するには、your-endpointを Speech リソースの実際のエンドポイントに置き換えます。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
setx ENDPOINT your-endpoint

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

実行中のプログラムのうち、環境変数の読み取りを必要とするプログラム (コンソール ウィンドウを含む) については、環境変数を読み込む再起動が必要となる場合があります。 たとえば、エディターとして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-Ava:DragonHDLatestNeural'>my voice is my passport verify me</voice></speak>" --output output.mp3

重要

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

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

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

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

詳細については、「Text-to-speech REST API」を参照してください。

解説

Azure Speech の Foundry Tools における OpenAI テキスト読み上げ音声

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

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

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

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

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

ヒント

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

ヒント

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

前提条件

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

セットアップ

  1. synthesis-quickstart新しいフォルダーを作成し、次のコマンドを使用してクイック スタート フォルダーに移動します。

    mkdir synthesis-quickstart && cd synthesis-quickstart
    
  2. 次のコマンドで package.json を作成します。

    npm init -y
    
  3. 次のコマンドを使用して、package.json を ECMAScript に更新します。

    npm pkg set type=module
    
  4. 次のコマンドを使用して Speech SDK for JavaScript をインストールします。

    npm install microsoft-cognitiveservices-speech-sdk
    
  5. TypeScript エラーを回避するには、Node.js 型定義をインストールする必要があります。 次のコマンドを実行します。

    npm install --save-dev @types/node
    

リソース情報の取得

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

重要

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

API キーは慎重に使用してください。 API キーは、コードに直接含めないようにし、公開しないでください。 API キーを使用する場合は、Azure Key Vaultに安全に格納し、キーを定期的にローテーションし、ロールベースのアクセス制御とネットワーク アクセス制限を使用してAzure Key Vaultへのアクセスを制限します。 アプリで API キーを安全に使用する方法の詳細については、「Azure Key Vault を使用した API キー」を参照してください。

AI サービスのセキュリティの詳細については、「Authenticate requests to Azure AI services」を参照してください。

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

  • SPEECH_KEY 環境変数を設定するには、your-key をリソースのキーの 1 つに置き換えます。
  • SPEECH_REGION 環境変数を設定するには、your-region をリソースのリージョンの 1 つに置き換えます。
  • ENDPOINT環境変数を設定するには、your-endpointを Speech リソースの実際のエンドポイントに置き換えます。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
setx ENDPOINT your-endpoint

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

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

音声をファイルに合成する

ファイルから音声を翻訳するには:

  1. 次の内容を 含む synthesis.ts という名前の新しいファイルを作成します。

    import { createInterface } from "readline";
    import { 
        SpeechConfig, 
        AudioConfig, 
        SpeechSynthesizer, 
        ResultReason,
        SpeechSynthesisResult 
    } from "microsoft-cognitiveservices-speech-sdk";
    
    function synthesizeSpeech(): void {
        const audioFile = "YourAudioFile.wav";
        // This example requires environment variables named "ENDPOINT" and "SPEECH_KEY"
        const speechConfig: SpeechConfig = SpeechConfig.fromEndpoint(new URL(process.env.ENDPOINT!), process.env.SPEECH_KEY!);
        const audioConfig: AudioConfig = AudioConfig.fromAudioFileOutput(audioFile);
    
        // The language of the voice that speaks.
        speechConfig.speechSynthesisVoiceName = "en-US-Ava:DragonHDLatestNeural";
    
        // Create the speech synthesizer.
        const synthesizer: SpeechSynthesizer = new SpeechSynthesizer(speechConfig, audioConfig);
    
        const rl = createInterface({
            input: process.stdin,
            output: process.stdout
        });
    
        rl.question("Enter some text that you want to speak >\n> ", function (text: string) {
            rl.close();
            // Start the synthesizer and wait for a result.
            synthesizer.speakTextAsync(text,
                function (result: SpeechSynthesisResult) {
                    if (result.reason === 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();
                },
                function (err: string) {
                    console.trace("err - " + err);
                    synthesizer.close();
                });
            console.log("Now synthesizing to: " + audioFile);
        });
    }
    
    synthesizeSpeech();
    

    synthesis.tsでは、必要に応じて、YourAudioFile.wavの名前を別の出力ファイル名に変更できます。

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

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

  2. TypeScript コードをトランスパイルするために tsconfig.json ファイルを作成して、ECMAScript 向けの次のコードをコピーします。

    {
        "compilerOptions": {
          "module": "NodeNext",
          "target": "ES2022", // Supports top-level await
          "moduleResolution": "NodeNext",
          "skipLibCheck": true, // Avoid type errors from node_modules
          "strict": true // Enable strict type-checking options
        },
        "include": ["*.ts"]
    }
    
  3. TypeScript から JavaScript にトランスパイルします。

    tsc
    

    成功した場合、このコマンドは出力を生成しません。

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

    node synthesis.js
    

アウトプット

コンソールに次の出力が表示されます。 プロンプトに従って、合成するテキストを入力します。

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 Speech の Foundry Tools における OpenAI テキスト読み上げ音声

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

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

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

次のステップ