クイック スタート: テキストを音声に変換する
リファレンス ドキュメントパッケージ (NuGet)GitHub のその他のサンプル
このクイックスタートでは、テキスト読み上げ合成を行うアプリケーションを実行します。
ヒント
コードを記述せずに Speech サービスを試すには、Speech Studio でプロジェクトを作成します。
前提条件
- Azure サブスクリプション - 無料アカウントを作成します
- Azure portal で音声リソースを作成し、キーとエンドポイントを取得します。 Free 価格レベル (
`F0` ) を使用してサービスを試用し、後から運用環境用の有料レベルにアップグレードすることができます。 - サブスクリプション キーとリージョンのエンドポイントを取得します。 音声リソースがデプロイされたら、[リソースに移動] を選択して、キーを表示および管理します。 サブスクリプション キーとその他の Cognitive Services リソースの詳細については、「リソースのキーを取得する」を参照してください。
環境をセットアップする
Speech SDK は NuGet パッケージとして提供されていて、.NET Standard 2.0 が実装されています。 Speech SDK は、この記事の次のセクションでインストールしますが、まず、これ以上要件がないかプラットフォーム固有のインストール手順を確認してください。
スピーカー出力に合成する
以下の手順に従って新しいコンソール アプリケーションを作成し、Speech SDK をインストールします。
新しいプロジェクトを作成するコマンド プロンプトを開き、.NET CLI を使用してコンソール アプリケーションを作成します。
dotnet new console
.NET CLI を使用して、新しいプロジェクトに Speech SDK をインストールします。
dotnet add package Microsoft.CognitiveServices.Speech
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(); } }
Program.cs
内で、YourSubscriptionKey
を実際の音声リソース キーに置き換えて、YourServiceRegion
を実際の音声リソース リージョンに置き換えます。音声合成言語を変更するには、
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
操作を使用して、入力した短いテキスト ブロックを合成します。 次のガイドで説明するように、ファイルからテキストを取得することもできます。
- ファイルからの音声合成については、「音声を合成する」および「音声合成マークアップ言語 (SSML) を使用して合成を改善する」をご覧ください。
- バッチ合成については、「長い形式のテキスト読み上げを合成する」をご覧ください。
リソースをクリーンアップする
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 をインストールします。
Visual Studio で、新しい C# コンソール プロジェクトを作成します。
NuGet パッケージ マネージャーを使用して、新しいプロジェクトに Speech SDK をインストールします。
Install-Package Microsoft.CognitiveServices.Speech
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(); }
main.cpp
内で、YourSubscriptionKey
を実際の音声リソース キーに置き換えて、YourServiceRegion
を実際の音声リソース リージョンに置き換えます。音声合成言語を変更するには、
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
操作を使用して、入力した短いテキスト ブロックを合成します。 次のガイドで説明するように、ファイルからテキストを取得することもできます。
- ファイルからの音声合成については、「音声を合成する」および「音声合成マークアップ言語 (SSML) を使用して合成を改善する」をご覧ください。
- バッチ合成については、「長い形式のテキスト読み上げを合成する」をご覧ください。
リソースをクリーンアップする
Azure portal または Azure コマンドライン インターフェイス (CLI) を使用して、作成した音声リソースを削除できます。
リファレンス ドキュメントパッケージ (Go)GitHub のその他のサンプル
このクイックスタートでは、テキスト読み上げ合成を行うアプリケーションを実行します。
ヒント
コードを記述せずに Speech サービスを試すには、Speech Studio でプロジェクトを作成します。
前提条件
- Azure サブスクリプション - 無料アカウントを作成します
- Azure portal で音声リソースを作成し、キーとエンドポイントを取得します。 Free 価格レベル (
`F0` ) を使用してサービスを試用し、後から運用環境用の有料レベルにアップグレードすることができます。 - サブスクリプション キーとリージョンのエンドポイントを取得します。 音声リソースがデプロイされたら、[リソースに移動] を選択して、キーを表示および管理します。 サブスクリプション キーとその他の Cognitive Services リソースの詳細については、「リソースのキーを取得する」を参照してください。
環境をセットアップする
Speech SDK for Go をインストールします。 これ以上要件がないか、プラットフォーム固有のインストール手順を確認してください。
スピーカー出力に合成する
以下の手順に従って、新しい GO モジュールを作成します。
新しいモジュールを作成するコマンド プロンプトを開き、
speech-synthesis.go
という名前の新しいファイルを作成します。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) } } } }
speech-synthesis.go
内で、YourSubscriptionKey
を実際の音声リソース キーに置き換えて、YourServiceRegion
を実際の音声リソース リージョンに置き換えます。音声合成言語を変更するには、
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 ランタイムで動作します。
スピーカー出力に合成する
以下の手順に従って、音声認識のための新しいコンソール アプリケーションを作成します。
新しいプロジェクトを作成するコマンド プロンプトを開き、
SpeechSynthesis.java
という名前の新しいファイルを作成します。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); } }
SpeechSynthesis.java
内で、YourSubscriptionKey
を実際の音声リソース キーに置き換えて、YourServiceRegion
を実際の音声リソース リージョンに置き換えます。音声合成言語を変更するには、
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
操作を使用して、入力した短いテキスト ブロックを合成します。 次のガイドで説明するように、ファイルからテキストを取得することもできます。
- ファイルからの音声合成については、「音声を合成する」および「音声合成マークアップ言語 (SSML) を使用して合成を改善する」をご覧ください。
- バッチ合成については、「長い形式のテキスト読み上げを合成する」をご覧ください。
リソースをクリーンアップする
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
を実行します。 ガイド付きのインストール手順については、「開発環境を設定する」を参照してください。
ファイル出力に合成する
以下の手順に従って、音声合成のための新しいコンソール アプリケーションを作成します。
新しいプロジェクトを作成するコマンド プロンプトを開き、
SpeechSynthesis.js
という名前の新しいファイルを作成します。Speech SDK for JavaScript をインストールします。
npm install microsoft-cognitiveservices-speech-sdk
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); }); }());
SpeechSynthesis.js
内で、YourSubscriptionKey
を実際の音声リソース キーに置き換えて、YourServiceRegion
を実際の音声リソース リージョンに置き換えます。 必要に応じて、YourAudioFile.wav
の名前を別の出力ファイル名に変更できます。音声合成言語を変更するには、
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
操作を使用して、入力した短いテキスト ブロックを合成します。 次のガイドで説明するように、ファイルからテキストを取得することもできます。
- ファイルからの音声合成については、「音声を合成する」および「音声合成マークアップ言語 (SSML) を使用して合成を改善する」をご覧ください。
- バッチ合成については、「長い形式のテキスト読み上げを合成する」をご覧ください。
リソースをクリーンアップする
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 アプリケーションで音声を合成します。
Azure-Samples/cognitive-services-speech-sdk リポジトリをクローンして、Synthesize audio in Objective-C on macOS using the Speech SDK (macOS で Speech SDK を使用して Objective-C でオーディオを合成する) サンプル プロジェクトを取得します。 このリポジトリには、iOS サンプルもあります。
ターミナルで、ダウンロードしたサンプル アプリ (
helloworld
) のディレクトリに移動します。コマンド
pod install
を実行します。 これにより、サンプル アプリと依存関係としての Speech SDK の両方を含んだ、helloworld.xcworkspace
という Xcode ワークスペースが生成されます。Xcode で
helloworld.xcworkspace
ワークスペースを開きます。次に示すように、
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."); } }
AppDelegate.m
内で、YourSubscriptionKey
を実際の音声リソース キーに置き換えて、YourServiceRegion
を実際の音声リソース リージョンに置き換えます。AppDelegate.m
で必要に応じて、次のように音声合成の音声名を含めます。speechConfig.speechSynthesisVoiceName = @"en-US-JennyNeural";
音声合成言語を変更するには、
en-US-JennyNeural
を別のサポートされている音声に置き換えます。 すべてのニューラル音声は多言語で、独自の言語と英語で流暢に読み上げます。 たとえば、英語の入力テキストが "I'm excited to try text to speech" で、es-ES-ElviraNeural
を設定した場合、テキストはスペイン語アクセントの英語で読み上げられます。 入力テキストの言語が音声で読み上げられない場合、Speech サービスでは合成された音声が出力されません。デバッグ出力が表示されるようにします ([View][Debug Area][Activate Console])。
メニューから [製品]-[実行] の順に選択するか、[再生] ボタンを選択して、コード例のビルドや実行を行います。
テキストを入力してアプリのボタンを選ぶと、再生された合成音声が聞こえるはずです。
このクイック スタートでは、SpeakText
操作を使用して、入力した短いテキスト ブロックを合成します。 次のガイドで説明するように、ファイルからテキストを取得することもできます。
- ファイルからの音声合成については、「音声を合成する」および「音声合成マークアップ言語 (SSML) を使用して合成を改善する」をご覧ください。
- バッチ合成については、「長い形式のテキスト読み上げを合成する」をご覧ください。
リソースをクリーンアップする
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 アプリケーションで音声を合成します。
Azure-Samples/cognitive-services-speech-sdk リポジトリをクローンして、Synthesize audio in Swift on macOS using the Speech SDK (macOS で Speech SDK を使用して Swift でオーディオを合成する) サンプル プロジェクトを取得します。 このリポジトリには、iOS サンプルもあります。
ターミナルで、ダウンロードしたサンプル アプリ (
helloworld
) のディレクトリに移動します。コマンド
pod install
を実行します。 これにより、サンプル アプリと依存関係としての Speech SDK の両方を含んだ、helloworld.xcworkspace
という Xcode ワークスペースが生成されます。Xcode で
helloworld.xcworkspace
ワークスペースを開きます。次に示すように、
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 } }
AppDelegate.m
内で、YourSubscriptionKey
を実際の音声リソース キーに置き換えて、YourServiceRegion
を実際の音声リソース リージョンに置き換えます。AppDelegate.m
で必要に応じて、次のように音声合成の音声名を含めます。speechConfig?.speechSynthesisVoiceName = "en-US-JennyNeural";
音声合成言語を変更するには、
en-US-JennyNeural
を別のサポートされている音声に置き換えます。 すべてのニューラル音声は多言語で、独自の言語と英語で流暢に読み上げます。 たとえば、英語の入力テキストが "I'm excited to try text to speech" で、es-ES-ElviraNeural
を設定した場合、テキストはスペイン語アクセントの英語で読み上げられます。 入力テキストの言語が音声で読み上げられない場合、Speech サービスでは合成された音声が出力されません。[View](表示)[Debug Area](デバッグ エリア)[Activate Console](コンソールのアクティブ化) の順に選択して、デバッグ出力が表示されるようにします。
メニューから [製品]-[実行] の順に選択するか、[再生] ボタンを選択して、コード例のビルドや実行を行います。
テキストを入力してアプリのボタンを選ぶと、再生された合成音声が聞こえるはずです。
このクイック スタートでは、SpeakText
操作を使用して、入力した短いテキスト ブロックを合成します。 次のガイドで説明するように、ファイルからテキストを取得することもできます。
- ファイルからの音声合成については、「音声を合成する」および「音声合成マークアップ言語 (SSML) を使用して合成を改善する」をご覧ください。
- バッチ合成については、「長い形式のテキスト読み上げを合成する」をご覧ください。
リソースをクリーンアップする
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 との互換性があります。
- Windows では、プラットフォームに対応した Microsoft Visual Studio 2015、2017、2019、2022 のいずれかの Visual C++ 再頒布可能パッケージをインストールする必要があります。 このパッケージを初めてインストールする場合、再起動が必要になる可能性があります。
- Linux では、x64 ターゲット アーキテクチャを使う必要があります。
Python の 3.7 から 3.10 までのバージョンをインストールします。 最初に、これ以上要件がないか、プラットフォーム固有のインストール手順を確認してください。
スピーカー出力に合成する
次の手順を実行して、新しいコンソール アプリケーションを作成します。
新しいプロジェクトを作成するコマンド プロンプトを開き、
speech-synthesis.py
という名前の新しいファイルを作成します。次のコマンドを実行して、Speech SDK をインストールします。
pip install azure-cognitiveservices-speech
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?")
speech_synthesis.py
内で、YourSubscriptionKey
を実際の音声リソース キーに置き換えて、YourServiceRegion
を実際の音声リソース リージョンに置き換えます。音声合成言語を変更するには、
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
操作を使用して、入力した短いテキスト ブロックを合成します。 次のガイドで説明するように、ファイルからテキストを取得することもできます。
- ファイルからの音声合成については、「音声を合成する」および「音声合成マークアップ言語 (SSML) を使用して合成を改善する」をご覧ください。
- バッチ合成については、「長い形式のテキスト読み上げを合成する」をご覧ください。
リソースをクリーンアップする
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 クイックスタートの追加要件について確認します。
次のコマンドを入力して、.NET CLI から Speech CLI をインストールします。
dotnet tool install --global Microsoft.CognitiveServices.Speech.CLI
音声リソースのキーとリージョンを構成するために、次のコマンドを実行します。
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) を使用して、作成した音声リソースを削除できます。