Cloud Text-to-Speech の基本

Text-to-Speech を使用すると、自然に聞こえる人間の音声を合成し、再生可能な音声として作り出すことができます。Text-to-Speech で作成した音声データファイルを使用して、アプリケーションの機能強化や、動画撮影や録音時の音声の増幅も行えます(Google Cloud Platform 利用規約および適用法に準拠する必要があります)。

Text-to-Speech は、テキストまたは音声合成マークアップ言語(SSML)の入力を MP3 や LINEAR16(WAV ファイルで使用されるエンコーディング)などの音声データに変換します。

このドキュメントには、Text-to-Speech の使用方法に関する基本的なコンセプトが示されています。実際に API を使い始める前に、クイックスタートをご覧ください。

基本的な例

Text-to-Speech は、人間の音声を再生してユーザーに聞かせるアプリケーションに最適です。任意の文字列、単語、文を、人間の声に変換できます。

自然言語のフィードバックを、再生可能な音声ファイルとして提供する音声アシスタント アプリを想像してみてください。何かアクションを実行したら、人間の音声でユーザーにフィードバックを提供するアプリです。

たとえば、カレンダーにイベントが追加されたことをアプリからユーザーに伝える必要があるとします。アプリはまず、「カレンダーにイベントを追加しました」など、アクションの成功をユーザーに伝えるレスポンス テキストを生成します。

ここで Text-to-Speech を使用すれば、次の例のようにレスポンス文字列が実際の人間の音声に変換され、ユーザーに再生されます。


例 1。Text-to-Speech で生成された音声ファイル

例 1 のような音声ファイルを作成するには、次のコード スニペットのようにリクエストを Text-to-Speech に送信します。

curl -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) -H "Content-Type: application/json; charset=utf-8" --data "{
  'input':{
    'text':'I\'ve added the event to your calendar.'
  },
  'voice':{
    'languageCode':'en-gb',
    'name':'en-GB-Standard-A',
    'ssmlGender':'FEMALE'
  },
  'audioConfig':{
    'audioEncoding':'MP3'
  }
}" "https://texttospeech.googleapis.com/v1/text:synthesize"

音声合成

テキスト入力を音声データに変換するプロセスは合成と呼ばれ、合成の出力は合成音声と呼ばれます。Text-to-Speech では、生のテキストと SSML 形式のデータ(以下で説明)の 2 種類の入力を使用します。新しい音声ファイルを作成するには、API の synthesize エンドポイントを呼び出します。

音声合成プロセスでは、生の音声データを base64 でエンコードされた文字列として生成します。アプリケーションで再生できるようにするには、base64 でエンコードされた文字列を音声ファイルにデコードする必要があります。ほとんどのプラットフォームやオペレーティング システムには、base64 テキストを再生可能なメディア ファイルにデコードするツールがあります。

合成の詳細については、クイックスタートまたは音声ファイルの作成ページをご覧ください。

Text-to-Speech では、自然な人間の声に似た生の音声データを作成します。つまり、人が話しているように聞こえる音声を生成します。Text-to-Speech に合成リクエストを送信するときは、その単語を「発声する」声を指定する必要があります。

Text-to-Speech には、さまざまな種類のカスタムボイスが用意されています。ボイスは、言語、性別、アクセント(一部の言語)によって異なります。たとえば、上記の例 1 のように、イギリスのアクセントで英語を話す女性の発話を模した音声を作成できます。同じテキストを別の声に変換することもできます。たとえば、オーストラリアのアクセントの男性英語スピーカーに変換できます。


例 2。en-AU スピーカーで生成された音声ファイル

使用可能なボイスの完全なリストについては、サポート対象の音声をご覧ください。

WaveNet 音声

Text-to-Speech では、他の従来の合成音声に加えて、WaveNet で生成された高品質の声も提供されます。Wavenet で生成された音声が他の合成音声よりも暖かみがあり、人間のそれに似ていると感じられます。

WaveNet 音声の他の音声との最大の違いは、音声を生成するために使用される WaveNet モデルです。WaveNet モデルは、実際の人間が話す生の音声サンプルを使用してトレーニングされています。その結果、こうしたモデルでは、より人間らしく、音節、音素、単語の強調や抑揚がある音声が合成されます。

以下の 2 つの合成音声のサンプルを比較してください。


例 3。標準音声で生成された音声ファイル


例 4。WaveNet 音声で生成された音声ファイル

WaveNet で生成される音声の利点の詳細については、WaveNet およびその他の合成音声をご覧ください。

その他の音声出力設定

前述のボイス以外にも、音声合成によって生成される音声データの出力に関する構成要素があります。Text-to-Speech では、発話速度、ピッチ、音量、サンプルレート(ヘルツ単位)の構成をサポートしています。

詳しくは、AudioConfig リファレンスをご覧ください。

音声合成マークアップ言語(SSML)のサポート

音声合成マークアップ言語(SSML)を使用し、Text-to-Speech により生成された合成音声にテキストをマークアップして音声を改良できます。SSML を使用すると、Text-to-Speech API で作成された音声データに、一時停止、頭字語の発音、その他の追加の詳細を挿入できます。Text-to-Speech API は、利用可能な SSML 要素のサブセットをサポートしています。

たとえば、合成音声で序数が正確に発音されるようにするには、序数であることをマークする SSML 入力を Text-to-Speech に渡します。


例 5。書式なしテキスト入力から生成された音声ファイル


例 6。SSML 入力から生成された音声ファイル

SSML から音声を合成する方法については、音声ファイルの作成をご覧ください。