カスタマイズの理解
IBM Watson® Text to Speech でテキストから音声合成を行うときには、言語依存の発音ルールが適用されます。 サービスはルールを適用して、各単語の通常の (正字法の) つづりを表音つづりに変換します。 単語の表音つづりでは、音素記号を使用して単語の発音方法を定義します。 音素記号には、特定の言語において単語を区別するための固有の音の単位、音節の境界、音節の強勢マークがあります。
一般的な単語には、サービスの標準の発音ルールで十分です。 しかし、一般的でない単語には、このルールが十分に機能しないことがあります。 そのような単語には、分野固有の用語、外来語、人名や地名、略語や頭字語などがあります。 アプリケーションの語彙にこのような単語が含まれている場合は、カスタマイズ・インターフェースを使用して、サービスにどのようにそれらの単語を発音させるかを指定できます。
状況とサポート
以下の状況およびサポート情報がカスタマイズに適用されます。
- カスタマイズはすべての言語で使用できます。
- IBM Cloud カスタマイズを利用するには、スタンダードまたはプレミアムの料金プランが必要です。 ライト・プランのユーザーは、カスタマイズ・インターフェースを使用できません。 詳しくは、 IBM Cloud® カタログの Text to Speech サービスを参照してください。
- IBM Cloud プレミアム顧客は、 IBM、特定のアプリケーションのニーズに合わせて新しいカスタム音声をトレーニングすることができます。 カスタムボイスのリクエストや詳細については、この IBM Request Formに記入して送信してください。
カスタマイズの仕組み
Text to Speech サービスのカスタマイズ・インターフェースでは、特定の言語の単語とそのトランスレーションを登録した辞書を作成できます。 この辞書を、カスタム・モデル と呼びます。 カスタム・モデルに登録する各カスタム項目は、単語/トランスレーション のペアで構成されます。 単語のトランスレーションとは、入力テキスト中に現れた単語の発音方法をサービスに指示するものです。
カスタマイズ・インターフェースはカスタム・モデルを作成および管理するためのメソッドを提供します。カスタム・モデルは、サービスによって永続的に保管されます。 作成したカスタム・モデルは、どのバージョンの /v1/synthesize メソッドを使用するかによらず、音声合成に使用できます。 サービスは、入力テキストから音声合成を行うときに、カスタム・モデルに含まれている単語のトランスレーションを直接的または間接的に適用して、その単語の発音を決定します。 カスタム・モデルは特定の言語に対して作成するので、その言語で使用可能なすべての音声でそのカスタム・モデルを使用できます。
カスタム・モデルの単語のトランスレーションは、同音異字トランスレーション または表音トランスレーション として指定します。 同じカスタム・モデルで両方の方式を使用して項目を作成できます。また、同じトランスレーションの中で 2 つの方式を混用することもできます。 カスタム項目には、いくつかのルールとガイドラインが適用されます。 詳しくは、カスタム項目作成のルールを参照してください。
同音異字トランスレーション
同音異字トランスレーション は、サービスの標準の発音ルールを使用して、ターゲットの単語の発音を間接的に表します。 同音異字トランスレーションは、1 つ以上の別の単語の通常の発音を使用して形成します。 サービスではまず、入力テキストに含まれている単語の出現を、指定されているトランスレーションに置き換えます。 次に、標準の発音ルールをそのトランスレーションに適用してトランスレーションを表音表記に変換することで発音を生成します。
例えば、サービスの標準の発音ルールにより、多くの一般的な略語や頭字語が適切に変換されます。 サービスは、略語 cm を centimeter と発音します。 一般的ではない略語は、1 文字ずつ発音します。 例えば、サービスは、Str というストリング (street の略語) を S T R (「エス・ティー・アール」というように各文字を個別に発音) と発音します。 同音異字方式を使用して、ストリング Str に対してトランスレーション street を指定できます。
もう 1 つ、頭字語の例として単語 IEEE があります。これは、Institute of Electrical and Electronic Engineers (米国電気電子学会) を表しています。 デフォルトでは、サービスはこの頭字語を I E E Eとして発音します。 ただし、頭字語は一般的に I triple Eと発音されます。これは、単純な同音異字トランスレーション I triple Eを使用して簡単に定義できます。 この翻訳でカスタム・モデルに IEEE という単語が表示される場合、サービスはその単語が出現するたびに翻訳に置き換えます。 その後、標準の発音ルールを個々の単語 I、triple、および E に適用して、一般的な発音を生成します。
同音異字方式は、略語や頭字語以外にも適用できます。 複合語や一般的ではない単語に対しても同様に適切に機能します。 例えば、以下の同音異字トランスレーションのペアは、サービスの標準の発音ルールでは適切に処理されない非一般的な単語に対して、正しい発音を生成します。 このような単語の場合、単純な略語に比べて適切なトランスレーションを見つけることが難しくなります。 次の各例では、標準の発音ルールを使用して、トランスレーション用に各単語のつづりが変更されています。
- 単語:
ayurvedic、トランスレーション:aayervedic - 単語:
gastroenteritis、トランスレーション:gastro enteritis
上記の例からわかるように、同音異字トランスレーションの作成は定型作業ではなく、試行錯誤の作業になります。 直観やサービスでの経験に基づいて、トランスレーション候補を作成します。 その後、トランスレーション候補の単語を入力テキストとして合成し、結果の音声を聞きます。 発音に問題がなければ、そのトランスレーションをカスタム・モデルで使用できます。そうでない場合は、トランスレーションを変更し、再テストします。
表音トランスレーション
同音異字方式は、比較的簡単に発音を実現する便利な方法です。 ただし、同音異字トランスレーションを常に作成できるわけではありません。 直接の代替手段である表音方式は、より複雑で時間がかかる方式のように見えるかもしれませんが、どのような単語の発音も実現できます。
表音トランスレーション は、サービスの標準の発音ルールをオーバーライドする音素記号、音節の強勢マーク、および音節の境界 (オプション) を使用して、発音を指定します。 表音トランスレーションは、以下のいずれかのフォーマットで指定します。
- 標準 International Phonetic Alphabet (IPA) 表記
- 専有の IBM Symbolic Phonetic Representation (SPR)
いずれの場合でも、SSML (Speech Synthesis Markup Language) ベースの特定の音素フォーマットを使用して、トランスレーションを指定します。 SSML は、音声合成アプリケーション用のテキストのアノテーションが用意された XML ベースのマークアップ言語です。 単語の表音トランスレーションを指定するには、SSML の<phoneme>要素を使用します。
<phoneme alphabet="{ipa | ibm}" ph="{translation}"></phoneme>
alphabet 属性は、表音表記タイプ (ipa または ibm) を指定します。 ph 属性は、表音トランスレーション・ストリングを指定します。
例えば、単語 trinitroglycerin について考えます。 サービスの通常の発音ルールでは、化学者や医者が一般的に使用している発音とは異なる発音が生成されます。 表音トランスレーションを使用することで、次に示すように正しい発音を実現できます。
- IPA だ:
tɹaɪnˈaɪtɹəglɪsəɹɨn - SPR:
trYn1YtrxglIsxrXn
上記の例の表音トランスレーション・ストリングは、複数の音素記号と 1 つの第 1 強勢マークで構成されています。 一次ストレス記号はIPAでは ˈ 、SPRでは 1。 どちらの場合も、強勢を置く母音を表す記号の直前に指定します。 例には示されていませんが、表音トランスレーションでは音節の境界および第 2 強勢位置も指定できます。 これらの要素は必須ではなく、通常は、発音を実現するために必要なものではありません。 同音異字トランスレーションと同様に、複数のストリングをスペースで区切って指定して
1 つの表音トランスレーションを構成できます。
IPA トランスレーションは、IPA Unicode 値として指定することもできます。 詳しくは、 表音記号について 、および サポートされる言語の表音記号 に記載されているページの言語固有の表を参照してください。 IPA Unicode 値を使用するトランスレーションの例については、phoneme 要素を参照してください。
既存の表音トランスレーションの使用法
音韻論の専門家でない限り、表音トランスレーションの作成は、簡単な作業ではありません。 常に、表音トランスレーションを最初から作成するよりも、既存の表音トランスレーションを編集する方が簡単です。 表音トランスレーションの作成に役立つように、サービスの API には GET /v1/pronunciation メソッドが用意されています。 このメソッドは、指定した言語の特定の単語に対してサービスの標準の発音ルールで生成される IPA 表記または SPR
表記を返します。 また、指定したカスタム・モデルに含まれている単語の発音を要求して、そのモデルの言語のトランスレーションを確認することもできます。
/GET v/1/pronunciation メソッドを使用して単語の初期表音トランスレーションを取得することができます。 そのトランスレーションを変更して、目的の発音を実現できます。 同音異字方式と同様に、試行錯誤のプロセスになります。 トランスレーションの候補をサービスに送信し、その単語を入力テキストとして音声合成を行い、生成された音声を聞き、トランスレーション候補を編集します。 満足できる発音になるまで、このプロセスを繰り返します。
詳しくは、言語の単語の照会を参照してください。
表音トランスレーションに関する詳細情報
以下の資料に、表音トランスレーションに関する詳細情報が記載されています。
同音異字と表音を混用したトランスレーション
同じトランスレーションで同音異字方式と表音方式を混用できます。 この機能により、トランスレーション作成に必要な作業を軽減できます。
例えば、1 つの単語の一部の発音が、同音異字方式で満足できる発音になったとします。 しかし、次は、その単語の残りの要素を微調整する必要があります。 単語の難しい側面は、表音方式を使用して指定することができます。 以下の例では、混用トランスレーションを単語 trinitroglycerin に適用しています。
try<phoneme alphabet="ipa" ph="nˈaɪtɹəglɪsəɹɨn"></phoneme>