大規模な音声モデルおよび次世代モデルのコーパスおよびカスタム単語の処理
この情報は、 大規模音声モデルおよび次世代モデルをベースとしたカスタムモデルに固有の情報です。 前世代モデルに基づくカスタム・モデルのコーパスおよびカスタム単語については、前世代モデルのコーパスおよびカスタム単語の処理を参照してください。
カスタム言語モデルに単語を取り込むには、コーパスをモデルに追加するか、カスタム単語をモデルに直接追加します。 大規模な音声モデル、前世代モデル、次世代モデルに対しては、同じ方法と操作を使用します。 モデルへのコーパスおよびカスタム単語の追加について詳しくは、 大規模な音声モデルおよび次世代モデルでのコーパスの処理 および 大規模な音声モデルおよび次世代モデルでのカスタム単語の処理 を参照してください。
言語モデルのカスタマイズは、大規模音声モデル、前世代モデル、次世代モデルのいずれにおいても、使用方法や目的は類似していますが、実装レベルでは3つのモデルタイプには違いがあります。 大規模音声モデルや次世代モデルにおける言語モデルのカスタマイズがどのように機能するのか、また、カスタマイズを最大限に活用するにはどうすればよいのかを理解するには、両者の違いについて高度な理解が必要です。
-
大規模音声モデルや旧世代モデルを基にしたカスタム言語モデルを作成して使用する場合、サービスはカスタムモデルの単語を使用して、専門用語を含む書き起こしを作成します。 サービスは、基本語彙の単語と組み合わせて、カスタム・モデルのこれらの単語を使用して、オーディオの音声を予測し、書き起こします。 カスタム言語モデルの情報は、コーパス、カスタム単語、および文法の形式で提供します。 サービスは、この情報をカスタム・モデルの単語リソースに保管します。
-
次世代モデルに基づくカスタム言語モデルを作成する場合、サービスはカスタム・モデルの文字シーケンスに依存して、分野固有の用語を反映する書き起こしを作成します。 ベースモデルの文字列と組み合わせることで、このサービスはカスタムモデルからの一連の文字列を使用して、音声を予測し、書き起こします。
カスタム言語モデルの情報は、コーパス、カスタム単語、および文法の形式で提供します。 ただし、サービスは、これらの単語を含む単語リソースに依存するのではなく、コーパスおよびカスタム単語から文字シーケンスを抽出して保管します。 このサービスでは、コーパスおよびカスタム単語からの out-of-vocabulary (OOV) 単語の抽出および計算は行われません。 単語リソースは、モデルに直接追加するカスタム単語を保管する場所にすぎません。
大規模音声モデルや次世代モデルをベースにカスタム言語モデルを開発する場合でも、ドメイン固有の用語をモデルに学習させるためにコーパスとカスタム単語を提供する必要があります。 したがって、カスタムモデルの作成とトレーニングのプロセスは、大規模音声モデル、次世代モデル、前世代モデルのいずれについてもほぼ同じです。
以下のトピックでは、大規模音声モデルおよび次世代モデルに基づくカスタム言語モデルにコーパスとカスタム単語を提供するルールについて説明します。 これらの規則は、前世代モデルに基づくカスタム・モデルを処理する場合と似ていますが、いくつかの重要な相違点があります。
単語リソース
単語リソース には、カスタム・モデルに直接追加するカスタム単語が含まれています。 単語リソースには、各カスタム単語に関する以下の情報が含まれます。
-
word
- 自分が追加した単語のつづり。URL エンコードする必要のある文字は使用しないでください。 例えば、スペース、スラッシュ、バックスラッシュ、コロン、アンパサンド、ダブルクォーテーション、プラス記号、イコール記号、クエスチョンマークなどは名前に使用しないでください。 このサービスではこれらの文字の使用を防ぐことはできませんが、これらの文字を使用する場合は必ず URL エンコードする必要があるため、その使用は強くお勧めできません。
-
sounds_like
- 単語の発音。sounds_like
フィールドを使用して、単語の 1 つ以上の発音を追加できます。 詳しくは、sounds_like フィールドの使用を参照してください。 -
display_as
- サービスが書き起こしで使用する単語のつづり。 代替表現を指定しない限り、スペルはword
フィールドの値と一致します。 詳しくは、display_as フィールドの使用を参照してください。 -
source
- 単語が単語リソースに追加された方法。 このフィールドには、カスタム単語として直接追加されたことを示すために、常にストリングuser
が含まれています。
カスタム単語を追加または修正した後は、その単語の定義が正しいことを確認することが重要です。詳細は 、「大規模音声モデルおよび次世代モデル用の単語リソースの検証」 を参照してください。 書き起こし中に変更が有効になるようにモデルをトレーニングする必要もあります。詳しくは、カスタム言語モデルのトレーニングを参照してください。
既に存在するカスタム単語を追加できます。例えば、一般的な単語の同音異字発音を追加できます。 それ以外の場合、一般的な単語を重複させる理由はありません。 このような単語はモデルの単語リソースに残りますが、無害で不要なものです。
mapping_only
-カスタム単語のパラメーター。 「mapping_only」キーは、後処理の 1 つの形式としてカスタム・ワードで使用できます。 このキー・パラメーターには、「sounds_like」(日本語以外のモデルの場合) または単語 (日本語の場合) がモデルの微調整には使用されず、「display_as」の代わりに使用されるかどうかを決定するブール値があります。 この機能は、カスタム単語を排他的に使用して「sounds_like」(または単語) を「display_as」値にマップする場合に役立ちます。 微調整を必要としない後処理の目的でのみカスタム単語を使用する場合。
ユース・ケースの例
'mapping_only' を使用する前に: Speech to Text マシン出力は、その ASR トランスクリプトとして「ヒルトン・オナーズ」です。 ただし、最終出力として「HHonors」として表示する必要があります。 そのため、以下のカスタム・ワードを使用して、「ヒルトン・オナー」を「ホナーズ」にマップすることができます。
{"word": "HHonors", "sounds_like": ["hilton honors"], "display_as": "HHonors"}
これにより、ASR トランスクリプトの「ヒルトン・オナー」という単語が「HHonors」にマップされますが、デフォルトでは、「ヒルトン・ホナー」という単語を認識することに問題がなくても、「サウンド・ライク」(ヒルトン・ホナー) を使用してモデルが微調整されます。 これは、微調整する必要はないが、「display_as」にマップする必要がある単語の例です。
'mapping_only' を使用した後: Speech to Text モデルは、「ヒルトン・オナー」という単語を非常によく認識しているため、その単語を微調整する必要はありません。 そのため、以下のカスタム単語を使用して、トレーニングをスキップし、「sounds_like」を「display_as」にマップすることができます。
{"word": "HHonors", "sounds_like": ["hilton honors"], "display_as": "HHonors", "mapping_only": true}
このパラメーターは、拡張カスタマイズをサポートする次世代モデル (英語モデル、ja-Jp モデルなど) に適用できます。 サポートされるモデルのリスト を参照してください。
必要なデータ量
効果的なカスタム言語モデルに必要なデータの量は、多くの要因の影響を受けます。 カスタム・モデルまたはアプリケーションに追加する必要がある正確なデータ量を示すことはできません。 ユース・ケースによっては、数単語を直接カスタム・モデルに追加するだけで、モデルの品質が向上する場合があります。 ただし、使用されるコンテキストで単語を表示するコーパスを追加することで、書き起こしの正確度を大幅に向上させることができます。
カスタム・モデルには、すべてのソースから最大で合計 1,000 万の単語を追加できます。 この図には、コーパスに含まれ、直接追加するすべての単語が含まれています。 このサービスは、コーパスのすべての単語を使用して、文字シーケンスが発生する可能性があるコンテキストを学習します。これが、コーパスが認識の正確度を向上させるためのより効果的な手段である理由です。
多数のコーパスと単語を追加すると、音声認識の待ち時間が長くなる可能性がありますが、正確な効果を定量化または予測することは困難です。 効果的なカスタム・モデルを生成するために必要なデータ量と同様に、大量のデータのパフォーマンスへの影響は、多くの要因によって異なります。 さまざまな量のデータを使用してカスタム・モデルをテストし、モデルのパフォーマンスを判別します。
改善された次世代モデルに基づいてカスタム・モデルに単語を追加するためのガイドライン
改善されたカスタマイズを使用する次世代言語モデルに基づくカスタム・モデルの場合、以下の方法でモデルに直接追加するカスタム単語の数を制限します。
POST /v1/customizations/{customization_id}/words
PUT /v1/customizations/{customization_id}/words/{word_name}
これらのメソッドを使用してカスタム・ワードをカスタム・モデルに追加すると、モデルのトレーニング時間が大幅に増加する可能性があります。 トレーニング時間は、追加する単語の総数とともに直線的に増加します。 ただし、トレーニング時間は、モデルが新しいカスタム単語で最初にトレーニングされたときにのみ増加します。 新しいカスタム単語を使用しない後続のトレーニング要求に必要な時間は、通常に戻ります。
通常、以下の方法でコーパスを介してのみ追加された単語を使用してカスタム・モデルをトレーニングするのは、素早く行うことができます。
POST /v1/customizations/{customization_id}/corpora/{corpus_name}
次世代モデルのカスタマイズの向上について詳しくは、 次世代モデルの言語モデル・カスタマイズの向上 を参照してください。
日本語以外のモデルでは、マッピングに「sounds_like」を使用します (「sounds_like」->「display_as」)。
改善された次世代モデルに基づく日本語モデルへの単語の追加に関するガイドライン
既知の単語、および一般的に認識され、単語と単語の発音方法の間に一般的な対応がある単語に対しては、カスタム単語を追加しないでください。 カスタム単語を使用して、一般的でない単語のスペルと発音の間のマッピングを作成します。 また、カスタム単語を使用して、不明な単語、単語とその発音の対応がない単語、または一般的に単語として認識されない単語を追加します。 このような単語をコーパスに追加することも同様に効果的です。
サービスでは、カスタムの単語や「いいね」に対して、合計 25 文字 (先頭または末尾のスペースを含まない) の最大制限が適用されます。 この制限を超えるカスタム単語または同音異字を追加すると、サービスは自動的にその単語をコーパスによって追加されたものとして扱います。 この単語は、モデルのカスタム単語として表示されません。 最も効果的なトレーニングのために、日本語のカスタム単語および同音異字には 20 文字以下を使用することをお勧めします。 IBMクラウド音声認識サービス
などの長い単語をコーパスに追加します。
例えば、単語 IBM
の発音 アイビーエム
はカスタマイズせずに認識されるため、カスタム単語として追加する必要はありません。 IBM
、 クラウド
、 音声認識
、および サービス
は一般的な単語であるため、カスタム単語として追加しても効果はありません。
カスタム単語の場合は、単語の使用法と発音を反映する一般的に使用される表記を入力します。 これにより、より効率的なカスタマイズが可能になります。 例えば、以下の例では、発話 エーアイ
に対する応答としてストリング Artificial_Intelligence
が確実に生成されません。これは、 Artificial_Intelligence
と 人工知能
が通常 AI
として発話されないためです。
{\"word\": \"Artificial_Intelligence\", \"sounds_like\": [\"エーアイ\"], \"display_as\": \"Artificial_Intelligence\"},
{\"word\": \"人工知能\", \"sounds_like\": [\"エーアイ\"], \"display_as\": \"Artificial_Intelligence\"}
コンテキストは通常、 これからAIはますます発展してきます
のようなものであるため、 AI
は同音異字 エーアイ
に最も適した表記です。 したがって、以下の例では、より良い結果が得られる可能性があります。
{\"word\": \"AI\", \"sounds_like\": [\"エーアイ\"], \"display_as\": \"Artificial_Intelligence\"}
最後に、カスタム・ワードでは、半角の英字が全角文字に変換されます。 英語の大文字と小文字は、異なる文字として扱われます。
日本語モデルでは、マッピングに単語を使用します ('word '->' display_as ')。
コーパスを使用した大規模な音声モデルと次世代モデルの処理
コーパスをカスタム・モデルに追加するには、POST /v1/customizations/{customization_id}/corpora/{corpus_name}
メソッドを使用します。 コーパスは、対象分野で使用される例文が含まれる、プレーン・テキスト・ファイルです。 次のサンプルは、医療分野の簡易コーパスを示しています。 コーパス・ファイルは、通常、これよりも長くなります。
Am I at risk for health problems during travel?
Some people are more likely to have health problems when traveling outside the United States.
How Is Coronary Microvascular Disease Treated?
If you're diagnosed with coronary MVD and also have anemia, you may benefit from treatment for that condition.
Anemia is thought to slow the growth of cells needed to repair damaged blood vessels.
What causes autoimmune hepatitis?
A combination of autoimmunity, environmental triggers, and a genetic predisposition can lead to autoimmune hepatitis.
What research is being done for Spinal Cord Injury?
The National Institute of Neurological Disorders and Stroke NINDS conducts spinal cord research in its laboratories at the National Institutes of Health NIH.
NINDS also supports additional research through grants to major research institutions across the country.
Some of the more promising rehabilitation techniques are helping spinal cord injury patients become more mobile.
What is Osteogenesis imperfecta OI?
. . .
カスタム・モデルの単語の文字シーケンスは、基本モデルの文字シーケンス、およびモデルの他の単語の文字シーケンスと競合します。 (音声のノイズや話者のアクセントなどの要因も、書き起こしの品質に影響を与えます)。
書き起こしの正確度は、モデルに追加するデータと、話者が音声で単語を話す方法に大きく依存する可能性があります。 サービスの正確度を向上させるには、コーパスを使用して、ドメイン内で単語がどのように使用されるかについて可能な限り多くの例を提供します。 コーパスで単語を繰り返すことで、カスタム言語モデルの品質を向上させることができます。 コーパスで単語を複製する方法は、認識される音声でユーザーがその単語を言う方法によって異なります。 話者が特定の分野の単語を使用するコンテキストを表す文を多く追加すればするほど、サービスの認識の正確度が高くなります。
例えば、会計士は Generally Accepted Accounting Principles (GAAP) と呼ばれる一連の共通の基準および手順に従います。 財務分野のカスタム・モデルを作成する場合、コンテキストで用語 GAAP を使用する文を提供します。 このような文は、サービスが「the gap between them is small」などの一般的な句と「GAAP provides guidelines for measuring and disclosing financial information」などの分野中心の句を区別するのに役立ちます。
一般的に、コーパスに対してさまざまなコンテキストで単語を使用することをお勧めします。これにより、サービスが語句を学習する方法を改善できます。 ただし、ユーザーがいくつかのコンテキストでのみ単語を話す場合、他のコンテキストで単語を表示してもカスタム・モデルの品質は向上しません。これらのコンテキストで単語を使用することはありません。 話者が同じ句を頻繁に使用する可能性が高い場合は、コーパスでその句を繰り返すことでモデルの品質を向上させることができます。 場合によっては、いくつかのカスタム単語をカスタム・モデルに直接追加しても、プラスの違いが生じることがあります。
コーパス・テキスト・ファイルの準備
コーパス・テキスト・ファイルを準備するには、以下のガイドラインに従ってください。
-
プレーン・テキスト・ファイルに非 ASCII 文字が含まれている場合は、UTF-8 でエンコードされたファイルを用意します。 このサービスはそのような文字を検出すると、UTF-8 エンコードされたものと想定します。
コーパス・テキスト・ファイルの文字エンコードを確認してください。 サービスはテキスト・ファイルで検出したエンコードを保持します。 カスタム・モデルでカスタム単語を処理する場合は、同じエンコードを使用する必要があります。 詳しくは、カスタム単語の文字エンコードを参照してください。
-
コーパス内の単語には、一貫性のある大文字化を使用してください。 大文字と小文字を混ぜて、大文字化は意図する場合にのみ使用します。
-
コーパスのそれぞれの文を 1 行に含め、各行を復帰で終了します。 複数の文を同じ行に含めると、正確度が低下する可能性があります。
-
個別の行で個人名を不連続ユニットとして追加します。 名前の個々の要素を個別の行に追加したり、個々のカスタム単語として追加したりしないでください。また、コーパスの同じ行に複数の名前を含めないでください。 次のサンプルは、3 つの名前の認識の正確度を向上させる正しい方法を示しています。
Gakuto Kutara Sebastian Leifson Malcolm Ingersol
必要に応じて、追加のコンテキスト情報 (
Doctor Sebastian Leifson
やPresident Malcolm Ingersol
など) を含めます。 すべての単語と同様に、名前を複数回複製することで、認識の正確度を向上させることができます。 -
タイプミスに注意してください。 サービスでは、タイプミスは新しい単語と見なされます。 格言*「ガベージイン、ガベージアウト」*を覚えておいてください。
-
文が多いほど、正確度が高まります。 ただし、このサービスでは、モデルは、すべてのソースの合計で最大 1000 万語に制限されます。
コーパス・ファイル追加時の動作
コーパス・ファイルを追加すると、サービスがその内容を分析します。 コンテキストから最大限の意味を引き出すために、このサービスはコーパス・ファイルから読み取ったデータをトークン化して解析します。 以下のトピックでは、サポートされている各言語について、サービスがコーパスファイルを解析する方法について説明します。
以下の言語の情報は、まだご利用いただけません:アラビア語、中国語、チェコ語、ヒンディー語、スウェーデン語。 カスタム言語モデルにこの情報が必要な場合は、IBM サポート担当員に連絡してください。
オランダ語、英語、フランス語、ドイツ語、イタリア語、ポルトガル語、およびスペイン語の解析
オランダ語、英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語のすべてのサポート対象の方言に、以下の情報が適用されます
-
各数字は、それに対応する単語に変換されます。
数値変換の例 言語 整数 小数 オランダ語 500
はvijfhonderd
になります0,15
はnul komma vijftien
になります英語 500
はfive hundred
になります0.15
はzero point fifteen
になりますフランス語 500
はcinq cents
になります0,15
はzéro virgule quinze
になりますドイツ語 500
はfünfhundert
になります0,15
はnull punkt fünfzehn
になりますイタリア語 500
はcinquecento
になります0,15
はzero virgola quindici
になりますポルトガル語 500
はquinhentos
になります0,15
はzero ponto quinze
になりますスペイン語 500
はquinientos
になります0,15
はcero coma quince
になります -
特定の記号を含むトークンが、意味のあるストリング表現に変換されます。 以下の例は、すべてを網羅したものではありません。 サービスは、他の文字についても、必要に応じて同様の調整を行います。
シンボル変換の例 言語 1 つのドル記号と 1 つの数値 1 つのユーロ記号と 1 つの数値 1 つのパーセント記号と 1 つの数値 オランダ語 $100
はhonderd dollar
になります€100
はhonderd euro
になります100%
はhonderd procent
になります英語 $100
はone hundred dollars
になります€100
はone hundred euros
になります100%
はone hundred percent
になりますフランス語 $100
はcent dollars
になります€100
はcent euros
になります100%
はcent pour cent
になりますドイツ語 $100
および100$
はeinhundert dollar
になります€100
および100€
はeinhundert euro
になります100%
はeinhundert prozent
になりますイタリア語 $100
はcento dollari
になります€100
はcento euro
になります100%
はcento per cento
になりますポルトガル語 $100
および100$
はcem dólares
になります€100
および100€
はcem euros
になります100%
はcem por cento
になりますスペイン語 $100
および100$
はcien dólares
になります€100
および100€
はcien euros
になります100%
はcien por ciento
になります -
英数字以外の句読点と特殊文字は、コンテキストに応じて処理されます。 例えば、サービスは、
$
(ドル記号) または€
(ユーロ記号) の後に数値が続いていない限り、それらを削除します。 処理はコンテキストに依存し、サポート対象言語間で整合性があります。 -
( )
(括弧)、< >
(不等号括弧)、[ ]
(大括弧)、または{ }
(中括弧) で囲まれた句を無視します。
日本語の解析
以下の情報は日本語に適用されます
- すべての文字が全角文字に変換されます。
- 数字を同等の言葉に変換します。例えば、
500
は五百
に、0.15
は〇・一五
になります。 - 記号を含むトークンを等価な文字列に変換しません。例えば、
100%
は百%
にはなりません。 - 句読点を自動的に削除しません。IBM では、アプリケーションがディクテーション・ベースではなく書き起こしベースである場合は、句読点を削除することを強くお勧めします。
韓国語の解析
以下の情報は韓国語に適用されます
-
数字を同等の言葉に変換します。例えば、
10
は십
になります。 -
句読点と特殊文字 (
- ( ) * : . , ' "
) が削除されます。 ただし、他の言語で削除されたすべての句読点と特殊文字が韓国語でも削除されるとは限りません。次に例を示します。- ピリオド (
.
) 記号は、入力の行の最後にある場合にのみ削除されます。 - ティルド (
~
) 記号は削除されません。 - Unicodeのワイド文字記号(
…
(3つのドットまたは省略記号)など)を削除または処理しません。
一般に、IBM は句読点、特殊文字、およびユニコード・ワイド文字を削除してからコーパス・ファイルを処理することをお勧めします。
- ピリオド (
-
( )
(括弧)、< >
(不等号括弧)、[ ]
(大括弧)、または{ }
(中括弧) で囲まれた句を削除したり無視したりしません。 -
特定の記号を含むトークンが、次のように意味のあるストリング表現に変換されます。
24%
は이십사퍼센트
になります。$10
は십달러
になります。
このリストは、すべてを網羅したものではありません。 サービスは、他の文字についても、必要に応じて同様の調整を行います。
-
ラテン語 (英語) 文字またはハングル文字とラテン語文字の混合で構成される句の場合、サービスは、コーパス・ファイルに表示されるとおりに句を使用します。
大規模音声モデルおよび次世代モデルのカスタム・ワードの処理
POST /v1/customizations/{customization_id}/words
メソッドおよび PUT /v1/customizations/{customization_id}/words/{word_name}
メソッドを使用して、カスタム・モデルに新しい単語を追加できます。 また、これらのメソッドを使用して、カスタム単語を変更または拡張することもできます。
例えば、カスタム・モデルに単語が追加されたときに発生したタイプミスやその他の誤りを修正するために、メソッドを使用する必要がある場合があります。 既存の単語を変更すると、指定する新しいデータによって、単語リソース内のその単語の既存の定義が上書きされます。 単語を追加する際のルールは、既存の単語を変更する場合にも適用されます。
通常、ほとんどのカスタム単語をコーパスから追加します。 コーパス・テキスト・ファイルの文字エンコードを確認してください。 サービスはテキスト・ファイルで検出したエンコードを保持します。 カスタム・モデルでカスタム単語を処理する場合は、同じエンコードを使用する必要があります。 詳しくは、カスタム単語の文字エンコードを参照してください。
sounds_like フィールドの使用
sounds_like
フィールドは、話者が音声で単語を発音する方法を指定します。 デフォルトでは、サービスは、ユーザーが指定しない単語の同音異字発音を自動的に生成しようとはしません。 同音異字を持たない単語には、同音異字を追加することができます。 単語を追加または変更したら、単語リソースを検証して、すべての単語の定義が完全かつ有効であることを確認する必要があります。 詳しくは、 大規模な音声モデルおよび次世代モデルの単語リソースの検証 を参照してください。
難しい発音の単語や別の方法でも発音できる単語には、最大 5 つの代替発音を指定できます。 以下に、このフィールドの考えられる使用法をいくつか示します。
-
頭字語に別の発音を指定する。 例えば、頭字語
NCAA
は、つづりのとおりに発音することも、N C double A のように口語的に発音することもできます。以下の例では、単語NCAA
に対してこれらの同音異字発音の両方を追加します。IBM Cloud
curl -X PUT -u "apikey:{apikey}" \ --header "Content-Type: application/json" \ --data "{\"sounds_like\": [\"N C A A\", \"N C double A\"]}" \ "{url}/v1/customizations/{customization_id}/words/NCAA"
IBM Cloud Pak for Data IBM Software Hub
curl -X PUT \ --header "Authorization: Bearer {token}" \ --header "Content-Type: application/json" \ --data "{\"sounds_like\": [\"N C A A\", \"N C double A\"]}" \ "{url}/v1/customizations/{customization_id}/words/NCAA"
サービスが頭字語を認識する方法について詳しくは、追加の書き起こし作業を参照してください。
-
外来語を処理する。 例えば、フランス語の単語
garçon
には、英語では見つからない文字が含まれています。gaarson
の同音異字を指定して、ç
をs
に置き換え、英語の話者が単語を発音する方法をサービスに通知することができます。
以下のトピックでは、音のような発音を指定するためのガイドラインを提供します。 音声認識では、統計アルゴリズムを使用して音声を分析するため、単語を追加した場合に、その単語が完全な正確度でトランスコードされるとは限りません。 単語を追加する際は、その単語がどのように発音される可能性があるかを検討します。 sounds_like
フィールドを使用して、単語がどのように発話される可能性があるかを表す、さまざまな発音を指定してください。
以下の言語の情報は、まだご利用いただけません:アラビア語、中国語、チェコ語、ヒンディー語、スウェーデン語。 カスタム言語モデルにこの情報が必要な場合は、IBM サポート担当員に連絡してください。
日本語以外のモデルでは、マッピングに「sounds_like」を使用します (「sounds_like」->「display_as」)。 日本語モデルでは、マッピングに単語を使用します ('word '->' display_as ')。
すべての言語の一般ガイドライン
任意の言語に同音異字を指定する場合は、以下のガイドラインに従ってください。
- 同音異字で句読文字を使用しないでください。 例えば、ピリオド、ダッシュ、下線、コンマ、文の終わりの句読文字、およびドル記号やユーロ記号、括弧、大括弧、中括弧などの特殊文字は使用しないでください。
- ご使用の言語に有効な英字を使用してください。 英語の場合、これには
a-z
とA-Z
が含まれます。 その他の言語の場合、有効な文字には、アクセント付き文字または言語固有の文字を含めることができます。 - 英語では、英語以外の文字またはアクセント付き文字を同等の英語文字に置き換えます。 例えば、
ç
の場合はs
、ñ
の場合はny
、è
の場合はe
です。 - 発音が難しい単語には、発音が可能な実際の単語または単語を使用します。 例えば、英語では、単語
Sczcesny
に同音異字shuchesnie
を使用できます。 - ダッシュなしの数字のスペルを使用します。 例えば、数値
75
の場合、英語ではseventy five
、スペイン語ではsetenta y cinco
、フランス語ではsoixante quinze
を使用します。 - 単一の文字を発音するには、文字の後にスペースを続けます。 例えば、
N C A A
、、N. C. A. A.
ではなくN.C.A.A.
、NCAA
を使用します。 - 複数の単語をスペースで区切って含めることができます。
- ほとんどの言語では、先頭または末尾のスペースを含めずに、合計で最大 40 文字がサービスによって強制されます。
- 日本語の場合、先頭または末尾のスペースを含めずに、合計で最大 25 文字までという制限が適用されます。 この制限を超えるカスタム単語または同音異字を追加すると、サービスは自動的にその単語をコーパスによって追加されたものとして扱います。 この単語は、モデルのカスタム単語として表示されません。 最も効果的なトレーニングのために、日本語のカスタム単語および同音異字には 20 文字以下を使用することをお勧めします。
日本語のガイドライン
日本語のサウンドライクを指定する際は、以下のガイドラインに従ってください
-
―
長音記号(日本語では 「長音」) を使用して、全角カタカナ文字のみを使用してください。 半角文字を使用しないでください。 (display_as
フィールドの場合、半角文字を入力すると、半角文字として書き起こし結果にレンダリングされます。) -
拗音 (日本語では拗音)は、次の音節の文脈でのみ使用してください。
イェ
,ウィ
,ウェ
,ウォ
,キィ
,キャ
,キュ
,キョ
,ギャ
,ギュ
,ギョ
,クァ
,クィ
,クェ
,クォ
グァ
,グォ
,シィ
,シェ
,シャ
,シュ
,ショ
,ジィ
,ジェ
,ジャ
,ジュ
,ジョ
,スィ
,ズィ
,チェ
チャ
,チュ
,チョ
,ヂェ
,ヂャ
,ヂュ
,ヂョ
,ツァ
,ツィ
,ツェ
,ツォ
,ティ
,テュ
,ディ
,デャ
デュ
,デョ
,トゥ
,ドゥ
,ニェ
,ニャ
,ニュ
,ニョ
,ヒャ
,ヒュ
,ヒョ
,ビャ
,ビュ
,ビョ
,ピィ
ピャ
,ピュ
,ピョ
,ファ
,フィ
,フェ
,フォ
,フュ
,ミャ
,ミュ
,ミョ
,リィ
,リェ
,リャ
,リュ
リョ
,ヴァ
,ヴィ
,ヴェ
,ヴォ
,ヴュ
-
即音 (日本語では促音)の後には、次の音節のみを使用してください。
バ
,ビ
,ブ
,ベ
,ボ
,チ
,チェ
,チャ
,チュ
,チョ
,ダ
,デ
,ディ
,ド
,ドゥ
,フ
ファ
,フィ
,フェ
,フォ
,ガ
,ギ
,グ
,ゲ
,ゴ
,ハ
,ヒ
,ヘ
,ホ
,ジ
,ジェ
,ジャ
ジュ
,ジョ
,カ
,キ
,ク
,ケ
,コ
,キャ
,キュ
,キョ
,パ
,ピ
,プ
,ペ
,ポ
,ピャ
ピュ
,ピョ
,サ
,ス
,セ
,ソ
,シ
,シェ
,シャ
,シュ
,ショ
,タ
,テ
,ト
,ツ
,ザ
ズ
,ゼ
,ゾ
-
ン
を単語の最初の文字として使用しないでください。 例えば、ンート
の代わりにウーント
を使用してください。後者は無効です。 -
文字シーケンス
ウー
は、左側のコンテキストではあいまいです。ロ
やト
のように、音素/o/
で終わる文字 (音節) は使用しないでください。 このような場合は、ウー
の代わりにウウ
または単にウ
を使用してください。 例えば、ロウーマン
の代わりにロウウマン
またはロウマン
を使用します。 -
数多くの複合語が接頭部 + 名詞 または名詞 + 接尾部で構成されています。 基本モデルの文字シーケンスは、頻繁に出現するほとんどの複合語 (例えば、
長電話
および古新聞
) をカバーしますが、まれに出現する複合語はカバーしません。 コーパスに一般的に複合語が含まれている場合は、カスタマイズの最初のステップとして、複合語を 1 語として追加します。 例えば、古鉛筆
は一般的な日本語のテキストでは一般的ではありません。もし頻繁に使用する場合は、カスタムモデルに追加して文字起こしの精度を向上させます。 -
末尾につまる音を使用しないでください。
韓国語のガイドライン
韓国語の音訳を指定する際には、以下のガイドラインに従ってください
- 韓国語のハングル文字、記号、および音節を使用します。
- ラテン語 (英語) の英字
a-z
およびA-Z
を使用することもできます。 - 上記のセットに含まれていない文字や記号は使用しないでください。
display_as フィールドの使用
display_as
フィールドは、書き起こしでの単語の表示方法を指定します。 デフォルトでは、サービスはカスタム単語のスペルと一致するようにフィールドを設定します。 このフィールドは、単語のスペルとは異なるストリングをサービスに表示させたい場合のためのものです。 例えば、hhonors
という単語を HHonors
として表示するように指定できます。
IBM Cloud
curl -X PUT -u "apikey:{apikey}" \
--header "Content-Type: application/json" \
--data "{\"display_as\": \"HHonors\"}" \
"{url}/v1/customizations/{customization_id}/words/hhonors"
IBM Cloud Pak for Data IBM Software Hub
curl -X PUT \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--data "{\"display_as\": \"HHonors\"}" \
"{url}/v1/customizations/{customization_id}/words/hhonors"
別の例として、IBM
という単語を IBM™
として表示するように指定することもできます。
IBM Cloud
curl -X PUT -u "apikey:{apikey}" \
--header "Content-Type: application/json" \
--data "{\"display_as\":\"IBM™\"}" \
"{url}/v1/customizations/{customization_id}/words/IBM"
IBM Cloud Pak for Data IBM Software Hub
curl -X PUT \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--data "{\"display_as\":\"IBM™\"}" \
"{url}/v1/customizations/{customization_id}/words/IBM"
日本語以外のモデルでは、マッピングに「sounds_like」を使用します (「sounds_like」->「display_as」)。 日本語モデルでは、マッピングに単語を使用します ('word '->' display_as ')。
スマート・フォーマット設定および数値編集との対話
認識要求で smart_formatting
パラメーターまたは redaction
パラメーターを使用する場合は、サービスがスマート・フォーマット設定および編集を単語に適用してから、単語の display_as
フィールドを考慮することに注意してください。 この場合、これらの機能がカスタム単語の表示方法に干渉しないことを確認するために、結果を試してみる必要がある可能性があります。 また、その結果を考慮してカスタム単語を追加しなければならない可能性があります。
例えば、one
フィールドを display_as
に設定して、カスタム単語 one
を追加するとします。 スマート・フォーマット設定によって、単語 one
は数字の 1
に変更されるため、display-as の値は適用されません。 この問題を回避するには、カスタム単語として数字 1
を追加して、この単語に同じ display_as
フィールドを適用します。
これらの機能の処理について詳しくは、スマート・フォーマット設定および数値の編集を参照してください。
カスタム単語の追加または変更時の動作
カスタム単語の追加または変更の要求に対するサービスの応答は、指定したフィールドおよび値によって異なります。 また、単語の文字シーケンスが基本モデルの文字シーケンスに存在するかどうかによっても異なります。
-
sounds_like
フィールドとdisplay_as
フィールドの両方を省略します。display_as
フィールドにはword
フィールドの値が設定されます。 サービスは、sounds_like
フィールドを単語の発音に設定しようとしません。
-
sounds_like
フィールドのみを指定します。- *
sounds_like
フィールドが有効な場合は、以下のようになります。*サービスは、sounds_like
フィールドの値を指定された値に設定します。 また、サービスはdisplay_as
フィールドをword
フィールドの値に設定します。 sounds_like
フィールドが無効な場合:POST /v1/customizations/{customization_id}/words
メソッドが、モデルの単語リソース内でその単語にerror
フィールドを 追加します。PUT /v1/customizations/{customization_id}/words/{word_name}
メソッドは 400 応答コードで失敗し、エラー・メッセージが返されます。 サービスは その単語を単語リソースに追加しません。
- *
-
display_as
フィールドのみを指定します。- サービスは、
display_as
フィールドを指定値に設定します。 サービスは、sounds_like
フィールドを単語の発音に設定しようとしません。
- サービスは、
-
sounds_like
フィールドとdisplay_as
フィールドの両方を指定します。- *
sounds_like
フィールドが有効な場合、*サービスはsounds_like
フィールドおよびdisplay_as
フィールドを指定された値に設定します。 - *
sounds_like
フィールドが無効な場合、*サービスはsounds_like
フィールドが指定されている一方、display_as
フィールドが指定されていない場合と同様に対応します。
- *
追加の書き起こし作業
大規模音声モデルおよび次世代モデルに基づくカスタム言語モデルでは、サービスにより、最も効果的な書き起こしを確実に行うためのさらなる取り組みが行われます
-
カスタム単語の同音異字発音の場合、このサービスは、カスタム単語内の定義だけでなく、同音異字の反転も使用します。 例えば、単語
IEEE
のsounds_like
フィールドがI triple E
であるとすると、サービスは「単語」I triple E
に対してIEEE
の逆同音異字も効果的に使用します。 これにより、音声認識での同音異字発音の適用が強化されます。 (ユーザーがスペースを含むカスタム単語を作成することはできないことに注意してください。) -
コーパスから解析される頭字語、またはカスタム単語として定義される頭字語の場合、サービスは追加の音声認識作業を行います。 頭字語とは、2 つ以上の連続した大文字で構成される単語のことです。 頭字語に 1 つ以上の母音が含まれている場合、サービスはその頭字語を一連の個々の文字およびを発音語として認識しようとします。
例えば、頭字語
NASA
は、4 つの個別文字として読んだり、nassa
のような単語として発音したりすることができます。 サービスは、音声認識中に両方の検査を行います。 これにより、頭字語を書き起こしで正しく表現する機能が強化されます。
大規模な音声モデルおよび次世代モデルの単語リソースの検証
特に、コーパスをカスタム言語モデルに追加したり、一度に複数のカスタム単語を追加したりする場合は、必ず以下の検証を実行してください。
- コーパスでタイプミスやその他のエラーを探します。 特に大きなコーパスを追加する場合に誤りが生じやすくなります。 コーパスをモデルに追加する前に、コーパスを詳しく確認してください。
- カスタム単語でタイプミスやその他のエラーを探します。 モデルに直接追加するカスタム単語を詳しく確認してください。
- 同音異字発音を確認してください。 サービスは、何も指定されていないカスタム単語の同音異字発音を生成しようとします。 これらの発音のほとんどは十分に正確なものです。 しかし、単語の中には発音を生成できないものもあるため、単語の定義が完全かつ有効であることを確認する必要があります。 珍しいつづりの単語や発音が難しい単語、頭字語や技術用語についても、発音の正確度を確認することが推奨されます。
タイプミスは、コーパス・ファイルに残されている誤った形式の HTML タグと同様に、存在しない単語のカスタム・モデルを変更する意図しない結果になります。
カスタム・モデルのカスタム単語を検証し、必要に応じて修正するには、以下のメソッドを使用します。
GET /v1/customizations/{customization_id}/words
メソッドを使用してカスタム・モデルのすべての単語をリストするか、GET /v1/customizations/{customization_id}/words/{word_name}
メソッドを使用して個々の単語を照会します。 詳しくは、カスタム言語モデルからのカスタム単語のリストを参照してください。POST /v1/customizations/{customization_id}/words
メソッドまたはPUT /v1/customizations/{customization_id}/words/{word_name}
メソッドを使用して、カスタム・モデル内の単語を変更し、エラーを修正したり、表示形式の値を追加したりします。 詳しくは、 大規模な音声モデルおよび次世代モデルのカスタム単語の処理 を参照してください。DELETE /v1/customizations/{customization_id}/words/{word_name}
メソッドを使用して、エラー (例えば、タイプミスやその他の誤りによって) 導入された無関係な単語を削除します。 詳しくは、カスタム言語モデルからの単語の削除を参照してください。