短文認識サービスは、60秒以内の短い音声認識を行います。このサービスは、チャット会話、音声コマンド制御、アプリケーションの音声検索、音声入力などのシナリオに適用されます。
機能
パルス符号変調(PCM)でエンコードされた 16 ビットモノラルオーディオファイルをサポートします。
8,000 Hz および 16,000 Hz のオーディオサンプリングレートをサポートします。
60秒以内の短い音声を認識します。
サービスレスポンスに関する以下の設定項目を指定できます。
中間結果を返すかどうか
後処理中に句読点を追加するかどうか
漢数字をアラビア数字に変換するかどうか
Intelligent Speech Interaction コンソールでプロジェクトを管理する際に、さまざまな言語の音声を認識するための言語モデルを選択できます。詳細については、「プロジェクトの管理」をご参照ください。
現在サポートされている言語と方言モデルには、ベトナム語、タイ語、トルコ語、ロシア語、ポルトガル語、マレーシア語、イタリア語、カザフ語、インドネシア語、ヒンディー語、ドイツ語、フランス語、フィリピン語、アラビア語、日本語、韓国語、英語、中国語普通話、広東語が含まれます。
エンドポイント
アクセスタイプ | 説明 | URL |
インターネットからの外部アクセス | このエンドポイントを使用すると、インターネット経由で任意のホストから短文認識サービスにアクセスできます。デフォルトでは、インターネットアクセス URL は SDK に組み込まれています。 | wss://nls-gateway-ap-southeast-1.aliyuncs.com/ws/v1 |
1. クライアントの認証
サーバーとの WebSocket 接続を確立するには、クライアントは認証にトークンを使用する必要があります。トークンの取得方法の詳細については、「トークンの取得」をご参照ください。
2. 認識の開始と確認
クライアントは、サーバーに短文認識を開始するリクエストを送信します。サーバーは、リクエストが有効であることを確認します。
クライアントがサービスリクエストを送信するには、リクエストパラメーターを設定する必要があります。リクエストパラメーターは、SDK の SpeechRecognizer オブジェクトの set メソッドを使用して設定できます。次の表に、リクエストパラメーターを示します。
パラメーター | タイプ | 必須 | 説明 |
appkey | String | はい | Intelligent Speech Interaction コンソールで作成されたプロジェクトの appkey。 |
format | String | いいえ | オーディオコーディング形式。デフォルト値:PCM。 短文認識サービスは、PCM エンコードされた 16 ビットモノラルオーディオファイルをサポートします。 |
sample_rate | Integer | いいえ | オーディオサンプリングレート。単位:Hz。デフォルト値:16000。 このパラメーターを設定した後、Intelligent Speech Interaction コンソールで、プロジェクトに適用可能なオーディオサンプリングレートのモデルまたはシーンを指定する必要があります。 |
enable_intermediate_result | Boolean | いいえ | 中間結果を返すかどうかを指定します。デフォルト値:False。 |
enable_punctuation_prediction | Boolean | いいえ | 後処理中に句読点を追加するかどうかを指定します。デフォルト値:False。 |
enable_inverse_text_normalization | Boolean | いいえ | 後処理中に逆テキスト正規化(ITN)を有効にするかどうかを指定します。有効な値:True および False。デフォルト値:False。このパラメーターを True に設定すると、漢数字はアラビア数字に変換されます。 |
customization_id | String | いいえ | カスタム言語モデルの ID。 |
vocabulary_id | String | いいえ | カスタムホットワードの語彙 ID。 |
enable_voice_detection | Boolean | いいえ | 音声検出を有効にするかどうかを指定します。デフォルト値:False。 |
max_start_silence | Integer | いいえ | 開始無音の最大期間。単位:ミリ秒。有効な値:(0、60000]。このパラメーターは、enable_voice_detection パラメーターが True に設定されている場合にのみ有効になります。 開始無音の実際の期間がこのパラメーターの値を超えると、サーバーは TaskFailed イベントを送信して認識タスクを終了します。 |
max_end_silence | Integer | いいえ | 終了無音の最大期間。単位:ミリ秒。有効な値:200~2000。このパラメーターは、enable_voice_detection パラメーターが True に設定されている場合にのみ有効になります。 終了無音の実際の期間がこのパラメーターの値を超えると、サーバーは RecognitionCompleted メッセージを送信して認識タスクを完了します。その後、後続の音声は処理されなくなります。 |
3. 音声データの送信と認識
クライアントは、サーバーに音声データを周期的に送信し、サーバーから認識結果を継続的に受信します。
enable_intermediate_result パラメーターが True に設定されている場合、サーバーは複数の RecognitionResultChanged メッセージを送信して中間結果を返します。たとえば、サーバーは次の中間結果を返します。
// 天気 // 北京の天気サーバーは次のレスポンスを返します。
{ "header": { "namespace": "SpeechRecognizer", "name": "RecognitionResultChanged", "status": 20000000, "message_id": "e06d2b5d50ca40d5a50d4215c7c8****", "task_id": "4c3502c7a5ce4ac3bdc488749ce4****", "status_text": "Gateway:SUCCESS:Success." // ゲートウェイ:成功:成功。 }, "payload": { "result": "Weather in Beijing" // 北京の天気 } }次の表に、header オブジェクトのパラメーターを示します。
パラメーター
タイプ
説明
namespace
String
メッセージの名前空間。
name
String
メッセージの名前。 RecognitionResultChanged メッセージは、中間結果が取得されたことを示します。
status
Integer
ステータスコード。リクエストが成功したかどうかを示します。詳細については、このトピックの「サービスステータスコード」セクションを参照してください。
status_text
String
ステータスメッセージ。
task_id
String
認識タスクのグローバル一意識別子(GUID)。トラブルシューティングを容易にするために、このパラメーターの値を記録します。
message_id
String
メッセージの ID。
次の表に、payload オブジェクトの result パラメーターを示します。
パラメーター
タイプ
説明
result
String
認識タスクの中間結果。
説明最新の中間結果は、最終結果と異なる場合があります。 RecognitionCompleted メッセージに含まれる result を最終結果として使用してください。
enable_intermediate_result パラメーターが False に設定されている場合、サーバーはこのステップでメッセージを返しません。
4. 認識の停止と完了
クライアントは、サーバーに短文認識を停止するリクエストを送信します。サーバーは最終的な認識結果を返します。たとえば、サーバーは次の最終的な認識結果を返します。
{
"header": {
"namespace": "SpeechRecognizer",
"name": "RecognitionCompleted",
"status": 20000000,
"message_id": "10490c992aef44eaa4246614838f****",
"task_id": "4c3502c7a5ce4ac3bdc488749ce4****",
"status_text": "Gateway:SUCCESS:Success." // ゲートウェイ:成功:成功。
},
"payload": {
"result": "Weather in Beijing." // 北京の天気。
}
}次の表に、header オブジェクトのパラメーターを示します。
パラメーター | タイプ | 説明 |
namespace | String | メッセージの名前空間。 |
name | String | メッセージの名前。 RecognitionCompleted メッセージは、認識タスクが完了したことを示します。 |
status | Integer | ステータスコード。リクエストが成功したかどうかを示します。詳細については、このトピックの「サービスステータスコード」セクションを参照してください。 |
status_text | String | ステータスメッセージ。 |
task_id | String | 認識タスクの GUID。トラブルシューティングを容易にするために、このパラメーターの値を記録します。 |
message_id | String | SDK によって自動的に生成されるメッセージの ID。 |
次の表に、payload オブジェクトの result パラメーターを示します。
パラメーター | タイプ | 説明 |
result | String | 最終的な認識結果。 |
サービスステータスコード
各レスポンスメッセージには、サービスステータスコードを示す status フィールドが含まれています。次の表に、一般的なエラーコード、ゲートウェイエラーコード、および構成エラーコードを示します。
一般的なエラーコード
エラーコード
説明
解決策
40000001
クライアントの認証に失敗したため返されるエラーメッセージ。
クライアントが使用しているトークンが正しいか、有効かどうかを確認してください。
40000002
リクエストが無効なため返されるエラーメッセージ。
クライアントから送信されたリクエストが要件を満たしているかどうかを確認してください。
403
トークンの有効期限が切れているか、リクエストに無効なパラメーターが含まれているため返されるエラーメッセージ。
クライアントが使用しているトークンが有効かどうかを確認してください。
パラメーター値が有効かどうかを確認してください。
40000004
クライアントのアイドル状態のタイムアウトのため返されるエラーメッセージ。
クライアントが長時間(例:10 秒)サーバーにデータを送信していないかどうかを確認してください。
40000005
リクエスト数が上限を超えたため返されるエラーメッセージ。
同時接続数または 1 秒あたりのクエリ数(QPS)が上限を超えているかどうかを確認してください。同時接続数が上限を超えている場合は、Intelligent Speech Interaction を試用版から商用版にアップグレードすることをお勧めします。サービスを商用版にアップグレードした場合は、より高い同時実行性のためにより多くのリソースを購入することをお勧めします。
41050008
指定されたオーディオサンプリングレートが、選択されたモデルのサンプリングレートと一致しないため返されるエラーメッセージ。
サービスコールに指定されたオーディオサンプリングレートが、コンソールでプロジェクトの appkey にバインドされている自動音声認識(ASR)モデルのオーディオサンプリングレートと一致するかどうかを確認してください。
41010101
指定されたオーディオサンプリングレートがサポートされていないため返されるエラーメッセージ。
サービスコールに指定されたオーディオサンプリングレートが、コンソールでプロジェクトの appkey にバインドされている ASR モデルのオーディオサンプリングレートと一致するかどうかを確認してください。
41010120
クライアントタイムアウトエラーが発生したため返されるエラーメッセージ。
クライアントが少なくとも 10 秒連続してサーバーにデータを送信していないかどうかを確認してください。
40000000
クライアントエラーが発生したため返されるエラーメッセージ。これはデフォルトのクライアントエラーコードです。
エラーメッセージに基づいてエラーを解決するか、チケットを送信してください。
50000000
サーバーエラーが発生したため返されるエラーメッセージ。これはデフォルトのサーバーエラーコードです。
エラーコードがたまに返される場合は、無視してください。エラーコードが複数回返される場合は、チケットを送信してください。
50000001
内部コールエラーが発生したため返されるエラーメッセージ。
エラーコードがたまに返される場合は、無視してください。エラーコードが複数回返される場合は、チケットを送信してください。
52010001
内部コールエラーが発生したため返されるエラーメッセージ。
エラーコードがたまに返される場合は、無視してください。エラーコードが複数回返される場合は、チケットを送信してください。
ゲートウェイエラーコード
エラーコード
説明
解決策
40010001
メソッドがサポートされていないため返されるエラーメッセージ。
SDK を使用している場合は、チケットを送信してください。
40010002
命令がサポートされていないため返されるエラーメッセージ。
SDK を使用している場合は、チケットを送信してください。
40010003
命令形式が無効なため返されるエラーメッセージ。
SDK を使用している場合は、チケットを送信してください。
40010004
クライアントが予期せず切断されたため返されるエラーメッセージ。
サーバーがリクエストされたタスクを完了する前に、クライアントが切断されたかどうかを確認してください。
40010005
タスクが異常な状態にあるため返されるエラーメッセージ。
現在のタスクステータスで命令がサポートされているかどうかを確認してください。
構成エラーコード
エラーコード
説明
解決策
40020105
アプリケーションが存在しないため返されるエラーメッセージ。
ルートを解決して、アプリケーションが存在するかどうかを確認してください。
40020106
指定された appkey とトークンが一致しないため返されるエラーメッセージ。
アプリケーションの appkey が正しいか、トークンと同じ Alibaba Cloud アカウントに属しているかどうかを確認してください。
40020503
RAM ユーザー認証に失敗したため返されるエラーメッセージ。
Alibaba Cloud アカウントを使用して、RAM ユーザーに pctowap open platform(POP)API へのアクセスを承認します。