IBM Cloud Docs
例によるチューニングについて

例によるチューニングについて

「例によるチューニング」機能は、米国英語のカスタム・モデルと音声でのみサポートされるベータ機能です。

「例によるチューニング」機能を使用すると、指定されたテキストがサービスによってどのように発話されるかを制御できます。 この機能を使用すると、合成されたテキストのイントネーション、ストレス、テンポ、リズム、およびポーズを指示できます。 スピーチのこれらの側面は、まとめて韻律と呼ばれます。

カスタム・プロンプトを作成するには、テキストを希望どおりに発話するサンプル記録を提供します。サービスは、記録された音声の品質を音声と複製します。 発話プロンプトでは、さまざまな音節や単語を強調したり、一時停止を導入したりすることができます。また、通常は、プロンプトが使用されるコンテキストに合わせて、合成音声をより自然かつ適切なものにすることができます。

この機能は、音声の合成方法を変更するための標準 SSML よりもシンプルなメカニズムを提供します。 例えば、SSML<prosody> 要素の属性を使用することは難しい場合があります。 例によるチューニングを使用すると、SSML 要素と属性を使用して意図された韻律をエミュレートするのではなく、サービスによって発話されるテキストを記録できるようにすることで、そのような SSML の必要性がなくなります。

話者の音声に関する情報を含むオプションの話者モデルを作成することにより、プロンプトの品質をさらに向上させることができます。 スピーカー・モデルを作成するには、ユーザーの音声の音声サンプルを提供します。 このサービスは、音声で自分自身をトレーニングするためにサンプル音声から情報を抽出します。これにより、その話者に対してより高品質のプロンプトを生成することができます。

スクリプト例のデモを含む「Tune by Example」機能の概要については、ブログ「例でチューニング:イントネーションを良くする「Watson Text to Speechチューニング法」を参照。

状況とサポート

以下の状況およびサポート情報は、例によるチューニングに適用されます。

  • 例によるチューニングは、米国英語でのみ使用可能なベータ機能です。 プロンプトは、言語がen-USのカスタム・モデルにのみ追加できます。 カスタム・プロンプトは、米国英語の音声でのみ使用できます。
  • カスタム・モデル、カスタム・プロンプト、およびスピーカー・モデルは、それらを作成するために資格情報が使用されるサービスのインスタンスによって所有されます。 要求ロギングとデータ・プライバシーは、すべてのカスタマイズ・コンポーネントでサポートされます。 これらのトピックについて詳しくは、カスタマイズの使用上の注意を参照してください。
  • IBM CloudTune by Example を使用するには、Standard または Premium の料金プランが必要です。 この機能はカスタマイズの一部であり、これらの計画に制限されています。 For more information, see the Text to Speech service in the IBM Cloud® Catalog.

例によるチューニングの仕組み

アプリケーションのテスト中に、サービスがテキストのいくつかの側面を適切に合成しないことがあります。 場合によっては、例えば、強調する単語や一時停止の場所や期間など、音声の特定の側面を変更したいことがあります。 場合によっては、合成のより微妙な側面を変更することもできます。 例えば、合成音声がロボットに聞こえるか、不自然であるか、またはトーンが不満足であると感じる場合があります。 これらは、例によるチューニングが対処できる問題のタイプです。

「例によるチューニング」機能を使用するには、サービスの音声の 1 つによって発話されるテキストを読み上げるユーザーを記録します。 次に、カスタム・プロンプトの形式でテキストと音声をカスタム・モデルに追加します。 サービスは、音声サンプルからテキストの望ましい韻律を学習します。 SSML 拡張<ibm:prompt id="{prompt_id}"/>機能を使用して音声合成要求にプロンプトを含めると、プロンプトのテキストを発話する音声は、プロンプトの韻律をエミュレートします。

話者プロンプトを記録するユーザーに対して、オプションであるが推奨される話者モデルを作成できます。 次に、スピーカー・モデルを、そのユーザーが話すプロンプトに関連付けます。 話者モデルを追加すると、合成されたプロンプトの品質に大きな違いが生じる可能性があります。 例えば、サービスは、話者の通常のイントネーションを知っていれば、より高い信頼性の短いプロンプトを出すことができます。 話者が定義されていないと、プロンプトの品質が低下する可能性があるため、各カスタム・プロンプトに話者モデルを関連付けることを強くお勧めします。

カスタム・プロンプトはカスタム・モデルに追加されるため、そのプロンプトを使用するには、音声合成要求でプロンプトのカスタム・モデルを指定する必要があります。 ただし、話者モデルはカスタム・モデルから独立しています。 スピーカー・モデルとカスタム・モデルおよびカスタム・プロンプトの両方との関係は、1 対多です。 同じスピーカー・モデルを、異なるカスタム・モデルで定義された複数のプロンプトに関連付けることができます。 さらに、合成要求でスピーカー・モデルを指定しません。

例と単語の発音によるチューニング

サービスのデフォルトの発音ルールおよびトークン化ルールにより、プロンプトで発生する通常とは異なる単語が不満足な方法で発音される可能性があります。 ただし、例によるチューニングは、単語の発音を変更するためのものではありません。 例えば、サービスは、「破滅的」という単語が聞こえることを予期しているように発音します。 例によるチューニングを使用すると、強調する単語の音節 (「cataSTROPHic」など) や単語のテンポ (「cat-a-strophic」など) を変更できます。 ただし、例によるチューニングを使用して単語のデフォルトの発音を変更することはできません。

単語の発音を変更するには、サービスのカスタマイズ・インターフェースを使用して、単語の代替発音を定義します。 発音が変更されたカスタム・ワードをプロンプトと同じカスタム・モデルに追加します。 その後、サービスは、カスタム単語がプロンプトに表示されるときに、その単語の発音を適用します。 詳しくは、カスタマイズの理解を参照してください。

既存のプロンプトの一部であるカスタム単語を追加または変更した場合、サービスは、プロンプトが作成されたときに設定されていた単語の発音を引き続き受け入れます。 これは、サービスがある時点でプロンプトを作成し、その時点で有効になっている発音ルールを使用するために発生します。 新規または更新されたカスタム・ワードを利用するには、プロンプトを再作成する必要があります。

プロンプトを再作成すると、既存のプロンプトがサービスによって置き換えられます。 新しいプロンプトには、テキストまたはプロンプトの音声に対する変更と、プロンプトが最初に作成されてから定義されたカスタム単語の発音が反映されます。 カスタム単語を追加した後にプロンプトを再記録する場合は、元のプロンプトの作成に使用したものと同じテキストと音声をいつでも渡すことができます。

カスタム・プロンプト

カスタム・プロンプトは、サービスの音声に複製させたい韻律でそのテキストを発話するテキストと音声によって定義されます。 サービスは、プロンプトの音声から韻律を抽出して分析します。 次に、プロンプトのテキストを自分の声の 1 つで話すときに、その韻律情報を適用します。

音声合成中にプロンプトを使用する場合、サービスはないプロンプト自体の音声を使用することを理解することが重要です。 代わりに、合成要求で指定した音声が使用されます。 その声は、プロンプトからの音声の韻律を採用しています。

カスタム・モデルにプロンプトを追加する場合は、発話されるテキスト、そのテキストの録音音声、プロンプトの固有のユーザー指定 ID、およびオプションの話者モデルを指定して、プロンプトを定義します。 このサービスは、プロンプト用のプロソディック・データを生成して保管し、要求に応じてそのデータを使用して合成音声を生成します。 プロンプトを追加するには、カスタム・モデルを所有するサービスのインスタンスの資格情報を使用する必要があります。

プロンプト ID の値として、常に意味のある名前を割り当ててください。 例えば、標準的なフェアウェル・メッセージを発話するプロンプトを示すには、goodbyeのような名前を使用します。 プロンプト ID は特定のカスタム・モデル内で固有でなければならないため、同じモデルに対して同じ ID を持つ 2 つのプロンプトを定義することはできません。 既存のプロンプトの ID を指定すると、以前にアップロードされたプロンプトが新しい情報に置き換えられます。 サービスは、新しいテキストと音声を使用して既存のプロンプトを再処理し、プロンプトに関連付けられている プロソディック・データを更新します。

サービスは、プロンプトを追加する要求を処理するときに、プロンプトに提供されるテキストと音声の位置合わせを試みます。 プロンプトで渡されるテキストは、音声とできるだけ厳密に一致している必要があります。 最適なのは、テキストと音声が正確に一致することです。 サービスは、指定されたテキストを音声に合わせて調整するために最善を尽くします。多くの場合、この 2 つの間の不一致を補正することができます。 しかし、2 つの差の大きさが大きすぎるためにサービスがテキストと音声を効果的に位置合わせできない場合、プロンプトの処理は失敗します。

プロンプトは、米国英語のカスタム・モデルおよび音声でのみ使用できます。 プロンプトの言語がそのカスタム・モデルの言語と一致しない場合、プロンプトの品質は未定義です。 これは、音声合成要求に対して指定されたすべてのテキストと整合しています。 サービスは、プロンプトに対して指定されたテキストをレンダリングするためのベスト・エフォートを試行します。 テキストの言語がモデルの言語と一致するかどうかは検証されません。

スピーカー・モデル

話者モデルは、ユーザーの音声の音声サンプルによって定義されます。サービスは、このサンプルから情報を抽出して、その音声の特性について学習します。 話者モデルが、同じユーザーによって発話されるカスタム・プロンプトに関連付けられている場合、サービスは、話者の声の理解を利用して、プロンプトの韻律が話者の通常の発話パターンと比較する方法を識別します。 話者モデルは、プロンプトの音声に含まれるプロソディック・フィーチャーを区別するためのベースラインとして機能します。

スピーカー・モデルを作成するときは、登録音声と、所有するサービス・インスタンスのコンテキスト内で固有のモデルの名前を指定します。

  • 登録音声には、モデルに関連付けられているユーザーによって発話される音声を含める必要があります。 このサービスは、提供された音声サンプルから話者の音声に関する情報を抽出します。
  • この名前は、人間が理解できるモデルのハンドルを提供します。 サービスは話者 ID を返します。これは、サービスに対する後続の要求で話者を識別するために使用するグローバル固有 ID (GUID) (例えば、823068b2-ed4e-11ea-b6e0-7b6456aa95cc) です。

サービスは、音声から抽出した情報を使用して、話者のピッチ、リズム、イントネーションに関するトレーニングを行います。 この情報により、モデルに関連付けられているプロンプトの品質に大きな違いが生じる可能性があります。特に、音声が比較的少ない短いプロンプトです。

サービスの特定のインスタンスに対してスピーカー・モデルを作成します。 単一のスピーカー・モデルを、そのサービス・インスタンス内の複数のカスタム・モデルに対して定義されている複数のプロンプトに関連付けることができます。 話者モデルを作成する話者の性別は、その話者モデルに関連付けられたプロンプトで使用される音声の性別と一致する必要はありません。 例えば、男性話者によって作成された話者モデルは、女性音声によって発話されるプロンプトに関連付けることができます。