音声認識にカスタム言語モデルの使用
カスタム言語モデルを作成およびトレーニングすると、language_customization_id
照会パラメーターを使用して、そのモデルを音声認識要求で使用できます。 デフォルトでは、要求でカスタム言語モデルは使用されません。 同じ分野または異なる分野を対象とした複数のカスタム言語モデルを作成できます。 ただし、音声認識要求に対して一度に指定できるカスタム言語モデルは 1 つのみです。 カスタム・モデルを所有するサービスのインスタンスの資格情報を使用して要求を発行する必要があります。
カスタム言語モデルは、そのモデルを作成する際に使用された基本モデルでのみ使用できます。 カスタム・モデルがデフォルト以外のモデルに基づいている場合は、model
照会パラメーターを使用してその基本モデルも指定する必要があります。 詳しくは、 デフォルト・モデルの使用 を参照してください。
カスタム・モデルの単語に与える重みをサービスに指示する方法については、カスタマイズの重み付けの使用を参照してください。 カスタム言語モデルで文法を使用する例は、音声認識での文法の使用を参照してください。
カスタム言語モデルの使用例
以下の例は、各音声認識インターフェースでのカスタム言語モデルの使用を示しています。 この場合、使用されるカスタム・モデルは、次世代モデル en-US_Telephony
に基づいています。
-
WebSocket インターフェースの場合は、
/v1/recognize
メソッドを使用します。 指定されたカスタム・モデルは、接続を介して送信されるすべての要求に使用されます。var access_token = {access_token}; var wsURI = '{ws_url}/v1/recognize' + '?access_token=' + access_token + '&model=en-US_Telephony' + '&language_customization_id={customization_id}'; var websocket = new WebSocket(wsURI);
-
同期 HTTP インターフェースの場合は、
POST /v1/recognize
メソッドを使用します。 指定されたカスタム・モデルはこの要求で使用されます。IBM Cloud
curl -X POST -u "apikey:{apikey}" \ --header "Content-Type: audio/flac" \ --data-binary @audio-file.flac \ "{url}/v1/recognize?model=en-US_Telephony&language_customization_id={customization_id}"
IBM Cloud Pak for Data IBM Software Hub
curl -X POST \ --header "Authorization: Bearer {token}" \ --header "Content-Type: audio/flac" \ --data-binary @audio-file.flac \ "{url}/v1/recognize?model=en-US_Telephony&language_customization_id={customization_id}"
-
非同期 HTTP インターフェースの場合は、
POST /v1/recognitions
メソッドを使用します。 指定されたカスタム・モデルはこの要求で使用されます。IBM Cloud
curl -X POST -u "apikey:{apikey}" \ --header "Content-Type: audio/flac" \ --data-binary @audio-file.flac \ "{url}/v1/recognitions?model=en-US_Telephony&language_customization_id={customization_id}"
IBM Cloud Pak for Data IBM Software Hub
curl -X POST \ --header "Authorization: Bearer {token}" \ --header "Content-Type: audio/flac" \ --data-binary @audio-file.flac \ "{url}/v1/recognitions?model=en-US_Telephony&language_customization_id={customization_id}"
カスタマイズの重み付けの使用
カスタム言語モデルは、カスタム・モデルとカスタマイズされる基本モデルを組み合わせたものです。 サービスに対して、音声認識について、基本モデルからの単語と比較した場合のカスタム言語モデルからの単語に対する重み付けを指定できます。 カスタム・モデルに割り当てられる重み付けは、カスタマイズの重み付け と呼ばれます。
カスタム言語モデルの相対的な重みは、 0.0 から 1.0:
- 大規模な音声モデルに基づくカスタム・モデルの場合、デフォルトのカスタマイズの重みは 0.5です。
- 前世代モデルに基づくカスタム・モデルの場合、デフォルトのカスタマイズの重みは 0.3です。
- ほとんどの次世代モデルに基づくカスタム・モデルの場合、デフォルトのカスタマイズの重みは 0.2です。
- 改善された次世代モデルに基づくカスタム・モデルの場合、デフォルトのカスタマイズの重みは 0.1です。
改善された言語モデル・カスタマイズを使用するモデルを識別するには、 次世代モデルのカスタマイズ・サポート の表 2 の 「言語モデル・カスタマイズ」 列で (改善された) 日付を探してください。 必ず、使用しているサービスのバージョン IBM Cloud または IBM Cloud Pak for Dataの日付を確認してください。
通常はデフォルトの重み付けによって最高のパフォーマンスが実現されます。 カスタム・モデルの単語と基本語彙の単語の両方を認識できます。
ただし、書き起こし対象の音声でカスタム・モデルの単語を頻繁に使用する場合は、カスタマイズの重みを増やすことで書き起こし結果の正確度を向上させることができます。 カスタマイズの重み付けは注意して設定してください。 重みを高くすると、カスタム・モデルのドメインの句の正確度を向上させることができますが、非ドメインの句のパフォーマンスに悪影響を与える可能性もあります。 (重み付けを 0.0 に設定した場合でも、言語モデルのカスタマイズの実装によって書き起こしにカスタム単語が含まれる可能性がわずかにあります。)
カスタマイズの重み付けを指定するには、customization_weight
パラメーターを使用します。 このパラメーターは、カスタム言語モデルをトレーニングする場合や音声認識要求でそのモデルを使用する場合に指定できます。
-
以下の例では、トレーニング要求について、
0.5
メソッドを使用してカスタマイズの重み付けPOST /v1/customizations/{customization_id}/train
を指定しています。IBM Cloud
curl -X POST -u "apikey:{apikey}" \ "{url}/v1/customizations/{customization_id}/train?customization_weight=0.5"
IBM Cloud Pak for Data IBM Software Hub
curl -X POST \ --header "Authorization: Bearer {token}" \ "{url}/v1/customizations/{customization_id}/train?customization_weight=0.5"
トレーニング中にカスタマイズの重み付けを設定すると、カスタム言語モデルで重み付けが保存されます。 カスタム・モデルを使用する各認識要求で重み付けを渡す必要はありません。
-
以下の例では、認識要求について、
0.7
メソッドを使用してカスタマイズの重み付けPOST /v1/recognize
を指定しています。IBM Cloud
curl -X POST -u "apikey:{apikey}" \ --header "Content-Type: audio/flac" \ --data-binary @audio-file1.flac \ "{url}/v1/recognize?language_customization_id={customization_id}&customization_weight=0.7"
IBM Cloud Pak for Data IBM Software Hub
curl -X POST \ --header "Authorization: Bearer {token}" \ --header "Content-Type: audio/flac" \ --data-binary @audio-file1.flac \ "{url}/v1/recognize?language_customization_id={customization_id}&customization_weight=0.7"
音声認識中にカスタマイズの重み付けを設定すると、トレーニング中にモデルに保存された重み付けがオーバーライドされます。
カスタム言語モデルの使用のトラブルシューティング
カスタム言語モデルを音声認識に適用したのに、サービスがそのモデルに含まれる単語を使用していない場合は、以下の可能性がある問題を確認します。
- 前述の例に示されているように、カスタマイズ ID を認識要求に適切に渡したことを確認します。
- カスタム・モデルのステータスが
available
であることを確認します。これはモデルが完全にトレーニングされ、使用する準備ができていることを意味します。 詳しくは、カスタム言語モデルのリストを参照してください。 - 新しい単語に対して生成された発音が正しいことを確認します。 詳しくは、以下を参照してください