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

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

このクイックスタートでは、テキスト読み上げ合成を行うアプリケーションを実行します。

ヒント

コードを記述せずに Speech サービスを試すには、Speech Studio でプロジェクトを作成します。

前提条件

  • Azure サブスクリプション - 無料アカウントを作成します
  • Azure portal で音声リソースを作成し、キーとエンドポイントを取得します。 Free 価格レベル (`F0`) を使用してサービスを試用し、後から運用環境用の有料レベルにアップグレードすることができます。
  • サブスクリプション キーとリージョンのエンドポイントを取得します。 音声リソースがデプロイされたら、[リソースに移動] を選択して、キーを表示および管理します。 サブスクリプション キーとその他の Cognitive Services リソースの詳細については、「リソースのキーを取得する」を参照してください。

環境をセットアップする

Speech SDK は NuGet パッケージとして提供されていて、.NET Standard 2.0 が実装されています。 Speech SDK は、この記事の次のセクションでインストールしますが、まず、これ以上要件がないかプラットフォーム固有のインストール手順を確認してください。

スピーカー出力に合成する

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

  1. 新しいプロジェクトを作成するコマンド プロンプトを開き、.NET CLI を使用してコンソール アプリケーションを作成します。

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

    dotnet add package Microsoft.CognitiveServices.Speech
    
  3. Program.cs の内容を以下のコードに置き換えます。

    using System;
    using System.IO;
    using System.Threading.Tasks;
    using Microsoft.CognitiveServices.Speech;
    using Microsoft.CognitiveServices.Speech.Audio;
    
    class Program 
    {
        static string YourSubscriptionKey = "YourSubscriptionKey";
        static string YourServiceRegion = "YourServiceRegion";
    
        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(YourSubscriptionKey, YourServiceRegion);      
    
            // The language of the voice that speaks.
            speechConfig.SpeechSynthesisVoiceName = "en-US-JennyNeural"; 
    
            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. Program.cs 内で、YourSubscriptionKey を実際の音声リソース キーに置き換えて、YourServiceRegion を実際の音声リソース リージョンに置き換えます。

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

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

dotnet run

読み上げたいテキストを入力します。 たとえば、「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 portal または Azure コマンドライン インターフェイス (CLI) を使用して、作成した音声リソースを削除できます。

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

このクイックスタートでは、テキスト読み上げ合成を行うアプリケーションを実行します。

ヒント

コードを記述せずに Speech サービスを試すには、Speech Studio でプロジェクトを作成します。

前提条件

  • Azure サブスクリプション - 無料アカウントを作成します
  • Azure portal で音声リソースを作成し、キーとエンドポイントを取得します。 Free 価格レベル (`F0`) を使用してサービスを試用し、後から運用環境用の有料レベルにアップグレードすることができます。
  • サブスクリプション キーとリージョンのエンドポイントを取得します。 音声リソースがデプロイされたら、[リソースに移動] を選択して、キーを表示および管理します。 サブスクリプション キーとその他の Cognitive Services リソースの詳細については、「リソースのキーを取得する」を参照してください。

環境をセットアップする

Speech SDK は NuGet パッケージとして提供されていて、.NET Standard 2.0 が実装されています。 Speech SDK は、この記事の次のセクションでインストールしますが、まず、これ以上要件がないかプラットフォーム固有のインストール手順を確認してください。

スピーカー出力に合成する

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

  1. Visual Studio で、新しい C# コンソール プロジェクトを作成します。

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

    Install-Package Microsoft.CognitiveServices.Speech
    
  3. main.cpp の内容を次のコードに置き換えます。

    #include <iostream> // cin, cout
    #include <speechapi_cxx.h>
    
    using namespace std;
    using namespace Microsoft::CognitiveServices::Speech;
    using namespace Microsoft::CognitiveServices::Speech::Audio;
    
    auto YourSubscriptionKey = "YourSubscriptionKey";
    auto YourServiceRegion = "YourServiceRegion";
    
    int main()
    {
        auto speechConfig = SpeechConfig::FromSubscription(YourSubscriptionKey, YourServiceRegion);
    
        // The language of the voice that speaks.
        speechConfig->SetSpeechSynthesisVoiceName("en-US-JennyNeural");
    
        auto synthesizer = SpeechSynthesizer::FromConfig(speechConfig);
    
        // Get text from the console and synthesize to the default speaker.
        cout << "Enter some text that you want to speak >" << std::endl;
        std::string text;
        getline(cin, text);
    
        auto result = synthesizer->SpeakTextAsync(text).get();
    
        // Checks result.
        if (result->Reason == ResultReason::SynthesizingAudioCompleted)
        {
            cout << "Speech synthesized to speaker for text [" << text << "]" << std::endl;
        }
        else if (result->Reason == ResultReason::Canceled)
        {
            auto cancellation = SpeechSynthesisCancellationDetails::FromResult(result);
            cout << "CANCELED: Reason=" << (int)cancellation->Reason << std::endl;
    
            if (cancellation->Reason == CancellationReason::Error)
            {
                cout << "CANCELED: ErrorCode=" << (int)cancellation->ErrorCode << std::endl;
                cout << "CANCELED: ErrorDetails=[" << cancellation->ErrorDetails << "]" << std::endl;
                cout << "CANCELED: Did you set the speech resource key and region values?" << std::endl;
            }
        }
    
        cout << "Press enter to exit..." << std::endl;
        cin.get();
    }           
    
  4. main.cpp 内で、YourSubscriptionKey を実際の音声リソース キーに置き換えて、YourServiceRegion を実際の音声リソース リージョンに置き換えます。

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

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

dotnet run

読み上げたいテキストを入力します。 たとえば、「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 portal または Azure コマンドライン インターフェイス (CLI) を使用して、作成した音声リソースを削除できます。

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

このクイックスタートでは、テキスト読み上げ合成を行うアプリケーションを実行します。

ヒント

コードを記述せずに Speech サービスを試すには、Speech Studio でプロジェクトを作成します。

前提条件

  • Azure サブスクリプション - 無料アカウントを作成します
  • Azure portal で音声リソースを作成し、キーとエンドポイントを取得します。 Free 価格レベル (`F0`) を使用してサービスを試用し、後から運用環境用の有料レベルにアップグレードすることができます。
  • サブスクリプション キーとリージョンのエンドポイントを取得します。 音声リソースがデプロイされたら、[リソースに移動] を選択して、キーを表示および管理します。 サブスクリプション キーとその他の Cognitive Services リソースの詳細については、「リソースのキーを取得する」を参照してください。

環境をセットアップする

Speech SDK for Go をインストールします。 これ以上要件がないか、プラットフォーム固有のインストール手順を確認してください。

スピーカー出力に合成する

以下の手順に従って、新しい 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() {
        key :=  "YourSubscriptionKey"
        region := "YourServiceRegion"
    
    	audioConfig, err := audio.NewAudioConfigFromDefaultSpeakerOutput()
    	if err != nil {
    		fmt.Println("Got an error: ", err)
    		return
    	}
    	defer audioConfig.Close()
    	speechConfig, err := speech.NewSpeechConfigFromSubscription(key, region)
    	if err != nil {
    		fmt.Println("Got an error: ", err)
    		return
    	}
    	defer speechConfig.Close()
    
    	speechConfig.SetSpeechSynthesisVoiceName("en-US-JennyNeural")
    
    	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. speech-synthesis.go 内で、YourSubscriptionKey を実際の音声リソース キーに置き換えて、YourServiceRegion を実際の音声リソース リージョンに置き換えます。

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

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

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

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

go build
go run speech-synthesis

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

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

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

このクイックスタートでは、テキスト読み上げ合成を行うアプリケーションを実行します。

ヒント

コードを記述せずに Speech サービスを試すには、Speech Studio でプロジェクトを作成します。

前提条件

  • Azure サブスクリプション - 無料アカウントを作成します
  • Azure portal で音声リソースを作成し、キーとエンドポイントを取得します。 Free 価格レベル (`F0`) を使用してサービスを試用し、後から運用環境用の有料レベルにアップグレードすることができます。
  • サブスクリプション キーとリージョンのエンドポイントを取得します。 音声リソースがデプロイされたら、[リソースに移動] を選択して、キーを表示および管理します。 サブスクリプション キーとその他の Cognitive Services リソースの詳細については、「リソースのキーを取得する」を参照してください。

環境をセットアップする

何らかの操作を行うには、事前に Speech SDK をインストールしておく必要があります。 このクイックスタートのサンプルは、Java ランタイムで動作します。

スピーカー出力に合成する

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

  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 {
        private static String YourSubscriptionKey = "YourSubscriptionKey";
        private static String YourServiceRegion = "YourServiceRegion";
    
        public static void main(String[] args) throws InterruptedException, ExecutionException {
            SpeechConfig speechConfig = SpeechConfig.fromSubscription(YourSubscriptionKey, YourServiceRegion);
    
            speechConfig.setSpeechSynthesisVoiceName("en-US-JennyNeural"); 
    
            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 speechRecognitionResult = speechSynthesizer.SpeakTextAsync(text).get();
    
            if (speechRecognitionResult.getReason() == ResultReason.SynthesizingAudioCompleted) {
                System.out.println("Speech synthesized to speaker for text [" + text + "]");
            }
            else if (speechRecognitionResult.getReason() == ResultReason.Canceled) {
                SpeechSynthesisCancellationDetails cancellation = SpeechSynthesisCancellationDetails.fromResult(speechRecognitionResult);
                System.out.println("CANCELED: Reason=" + cancellation.getReason());
    
                if (cancellation.getReason() == CancellationReason.Error) {
                    System.out.println("CANCELED: ErrorCode=" + cancellation.getErrorCode());
                    System.out.println("CANCELED: ErrorDetails=" + cancellation.getErrorDetails());
                    System.out.println("CANCELED: Did you set the speech resource key and region values?");
                }
            }
    
            System.exit(0);
        }
    }
    
  3. SpeechSynthesis.java 内で、YourSubscriptionKey を実際の音声リソース キーに置き換えて、YourServiceRegion を実際の音声リソース リージョンに置き換えます。

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

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

java SpeechSynthesis

読み上げたいテキストを入力します。 たとえば、「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 portal または Azure コマンドライン インターフェイス (CLI) を使用して、作成した音声リソースを削除できます。

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

このクイックスタートでは、テキスト読み上げ合成を行うアプリケーションを実行します。

ヒント

コードを記述せずに Speech サービスを試すには、Speech Studio でプロジェクトを作成します。

前提条件

  • Azure サブスクリプション - 無料アカウントを作成します
  • Azure portal で音声リソースを作成し、キーとエンドポイントを取得します。 Free 価格レベル (`F0`) を使用してサービスを試用し、後から運用環境用の有料レベルにアップグレードすることができます。
  • サブスクリプション キーとリージョンのエンドポイントを取得します。 音声リソースがデプロイされたら、[リソースに移動] を選択して、キーを表示および管理します。 サブスクリプション キーとその他の Cognitive Services リソースの詳細については、「リソースのキーを取得する」を参照してください。

環境をセットアップする

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

ファイル出力に合成する

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

  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 key = "YourSubscriptionKey";
        var region = "YourServiceRegion";
        var audioFile = "YourAudioFile.wav";
    
        const speechConfig = sdk.SpeechConfig.fromSubscription(key, region);
        const audioConfig = sdk.AudioConfig.fromAudioFileOutput(audioFile);
    
        // The language of the voice that speaks.
        speechConfig.speechSynthesisVoiceName = "en-US-JennyNeural"; 
    
        // 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 内で、YourSubscriptionKey を実際の音声リソース キーに置き換えて、YourServiceRegion を実際の音声リソース リージョンに置き換えます。 必要に応じて、YourAudioFile.wav の名前を別の出力ファイル名に変更できます。

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

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

node.exe SpeechSynthesis.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 portal または Azure コマンドライン インターフェイス (CLI) を使用して、作成した音声リソースを削除できます。

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

このクイックスタートでは、テキスト読み上げ合成を行うアプリケーションを実行します。

ヒント

コードを記述せずに Speech サービスを試すには、Speech Studio でプロジェクトを作成します。

前提条件

  • Azure サブスクリプション - 無料アカウントを作成します
  • Azure portal で音声リソースを作成し、キーとエンドポイントを取得します。 Free 価格レベル (`F0`) を使用してサービスを試用し、後から運用環境用の有料レベルにアップグレードすることができます。
  • サブスクリプション キーとリージョンのエンドポイントを取得します。 音声リソースがデプロイされたら、[リソースに移動] を選択して、キーを表示および管理します。 サブスクリプション キーとその他の Cognitive Services リソースの詳細については、「リソースのキーを取得する」を参照してください。

環境をセットアップする

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

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

スピーカー出力に合成する

以下の手順に従って、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.
        // Replace with your own subscription key and service region (e.g., "westus").
        NSString *speechKey = @"YourSubscriptionKey";
        NSString *serviceRegion = @"YourServiceRegion";
    
        SPXSpeechConfiguration *speechConfig = [[SPXSpeechConfiguration alloc] initWithSubscription:speechKey region:serviceRegion];
        speechConfig.speechSynthesisVoiceName = @"en-US-JennyNeural";
        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 内で、YourSubscriptionKey を実際の音声リソース キーに置き換えて、YourServiceRegion を実際の音声リソース リージョンに置き換えます。

  7. AppDelegate.m で必要に応じて、次のように音声合成の音声名を含めます。

    speechConfig.speechSynthesisVoiceName = @"en-US-JennyNeural";
    
  8. 音声合成言語を変更するには、en-US-JennyNeural を別のサポートされている音声に置き換えます。 すべてのニューラル音声は多言語で、独自の言語と英語で流暢に読み上げます。 たとえば、英語の入力テキストが "I'm excited to try text to speech" で、es-ES-ElviraNeural を設定した場合、テキストはスペイン語アクセントの英語で読み上げられます。 入力テキストの言語が音声で読み上げられない場合、Speech サービスでは合成された音声が出力されません。

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

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

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

このクイック スタートでは、SpeakText 操作を使用して、入力した短いテキスト ブロックを合成します。 次のガイドで説明するように、ファイルからテキストを取得することもできます。

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

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

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

このクイックスタートでは、テキスト読み上げ合成を行うアプリケーションを実行します。

ヒント

コードを記述せずに Speech サービスを試すには、Speech Studio でプロジェクトを作成します。

前提条件

  • Azure サブスクリプション - 無料アカウントを作成します
  • Azure portal で音声リソースを作成し、キーとエンドポイントを取得します。 Free 価格レベル (`F0`) を使用してサービスを試用し、後から運用環境用の有料レベルにアップグレードすることができます。
  • サブスクリプション キーとリージョンのエンドポイントを取得します。 音声リソースがデプロイされたら、[リソースに移動] を選択して、キーを表示および管理します。 サブスクリプション キーとその他の Cognitive Services リソースの詳細については、「リソースのキーを取得する」を参照してください。

環境をセットアップする

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

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

スピーカー出力に合成する

以下の手順に従って、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 = "YourSubscriptionKey"
            region = "YourServiceRegion"
    
            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-JennyNeural";
    
            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 内で、YourSubscriptionKey を実際の音声リソース キーに置き換えて、YourServiceRegion を実際の音声リソース リージョンに置き換えます。

  7. AppDelegate.m で必要に応じて、次のように音声合成の音声名を含めます。

    speechConfig?.speechSynthesisVoiceName = "en-US-JennyNeural";
    
  8. 音声合成言語を変更するには、en-US-JennyNeural を別のサポートされている音声に置き換えます。 すべてのニューラル音声は多言語で、独自の言語と英語で流暢に読み上げます。 たとえば、英語の入力テキストが "I'm excited to try text to speech" で、es-ES-ElviraNeural を設定した場合、テキストはスペイン語アクセントの英語で読み上げられます。 入力テキストの言語が音声で読み上げられない場合、Speech サービスでは合成された音声が出力されません。

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

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

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

このクイック スタートでは、SpeakText 操作を使用して、入力した短いテキスト ブロックを合成します。 次のガイドで説明するように、ファイルからテキストを取得することもできます。

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

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

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

このクイックスタートでは、テキスト読み上げ合成を行うアプリケーションを実行します。

ヒント

コードを記述せずに Speech サービスを試すには、Speech Studio でプロジェクトを作成します。

前提条件

  • Azure サブスクリプション - 無料アカウントを作成します
  • Azure portal で音声リソースを作成し、キーとエンドポイントを取得します。 Free 価格レベル (`F0`) を使用してサービスを試用し、後から運用環境用の有料レベルにアップグレードすることができます。
  • サブスクリプション キーとリージョンのエンドポイントを取得します。 音声リソースがデプロイされたら、[リソースに移動] を選択して、キーを表示および管理します。 サブスクリプション キーとその他の Cognitive Services リソースの詳細については、「リソースのキーを取得する」を参照してください。

環境をセットアップする

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

Python の 3.7 から 3.10 までのバージョンをインストールします。 最初に、これ以上要件がないか、プラットフォーム固有のインストール手順を確認してください。

スピーカー出力に合成する

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

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

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

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

    import azure.cognitiveservices.speech as speechsdk
    
    speech_config = speechsdk.SpeechConfig(subscription="YourSubscriptionKey", region="YourServiceRegion")
    audio_config = speechsdk.audio.AudioOutputConfig(use_default_speaker=True)
    
    # The language of the voice that speaks.
    speech_config.speech_synthesis_voice_name='en-US-JennyNeural'
    
    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. speech_synthesis.py 内で、YourSubscriptionKey を実際の音声リソース キーに置き換えて、YourServiceRegion を実際の音声リソース リージョンに置き換えます。

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

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

python speech_synthesis.py

読み上げたいテキストを入力します。 たとえば、「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 portal または Azure コマンドライン インターフェイス (CLI) を使用して、作成した音声リソースを削除できます。

音声テキスト変換 REST API v3.0 リファレンス | 短い音声用音声テキスト変換 REST API リファレンス | GitHub 上のその他のサンプル

このクイックスタートでは、テキスト読み上げ合成を行うアプリケーションを実行します。

ヒント

コードを記述せずに Speech サービスを試すには、Speech Studio でプロジェクトを作成します。

前提条件

  • Azure サブスクリプション - 無料アカウントを作成します
  • Azure portal で音声リソースを作成し、キーとエンドポイントを取得します。 Free 価格レベル (`F0`) を使用してサービスを試用し、後から運用環境用の有料レベルにアップグレードすることができます。
  • サブスクリプション キーとリージョンのエンドポイントを取得します。 音声リソースがデプロイされたら、[リソースに移動] を選択して、キーを表示および管理します。 サブスクリプション キーとその他の Cognitive Services リソースの詳細については、「リソースのキーを取得する」を参照してください。

ファイルに合成する

コマンド プロンプトで、次の cURL コマンドを実行します。 コマンドには以下の値を挿入します。 YourSubscriptionKey を実際の音声リソース キーに置き換えて、YourServiceRegion を実際の音声リソース リージョンに置き換えます。 必要に応じて、output.mp3 の名前を別の出力ファイル名に変更できます。

key="YourSubscriptionKey"
region="YourServiceRegion"

curl --location --request POST 'https://$region.tts.speech.microsoft.com/cognitiveservices/v1' \
--header 'Ocp-Apim-Subscription-Key: $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-JennyNeural'\''>
        my voice is my passport verify me
    </voice>
</speak>' > output.mp3

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

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

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

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

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

このクイックスタートでは、テキスト読み上げ合成を行うアプリケーションを実行します。

ヒント

コードを記述せずに Speech サービスを試すには、Speech Studio でプロジェクトを作成します。

前提条件

  • Azure サブスクリプション - 無料アカウントを作成します
  • Azure portal で音声リソースを作成し、キーとエンドポイントを取得します。 Free 価格レベル (`F0`) を使用してサービスを試用し、後から運用環境用の有料レベルにアップグレードすることができます。
  • サブスクリプション キーとリージョンのエンドポイントを取得します。 音声リソースがデプロイされたら、[リソースに移動] を選択して、キーを表示および管理します。 サブスクリプション キーとその他の Cognitive Services リソースの詳細については、「リソースのキーを取得する」を参照してください。

環境をセットアップする

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

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

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

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

スピーカー出力に合成する

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

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

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

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

spx help synthesize

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

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

次の手順