Logo
主なインターフェース

一発話認識 API

60秒以内の短い音声を認識し、会話チャットやコントロールコマンドなどの短い音声認識シーンに適用されます。

WebSocket インターフェース(ストリーミング)

エンドポイント

ws://<ip_address>:7100/ws/v1

ip_address を実際のサーバーIPに置き換えてください。

インタラクションフロー

フローチャート

1. 接続を確立し、パラメータを送信

クライアントが一発話認識リクエストを発行し、サーバーがリクエストの有効性を確認します。このリクエストメッセージには、パラメータを設定する必要があります。JSON形式で送信します。

送信パラメータ(headerオブジェクト):

パラメータタイプ必須説明
namespaceStringはいメッセージの名前空間:SpeechRecognizer は一発話認識を表す
nameStringはいイベント名:StartRecognition は開始段階を表す

送信パラメータ(payloadオブジェクト):

パラメータタイプ必須説明デフォルト値
lang_typeStringはい言語オプション、「音声認識サービス使用マニュアル」の「言語サポート」セクションを参照必須
formatStringいいえ音声エンコード形式、「音声認識サービス使用マニュアル」の「音声エンコード」セクションを参照pcm
sample_rateIntegerいいえ音声サンプルレート、「音声認識サービス使用マニュアル」の「基本用語」セクションを参照16000
enable_intermediate_resultBooleanいいえ中間認識結果を返すかどうかfalse
enable_punctuation_predictionBooleanいいえ後処理で句読点を追加するかどうかfalse
enable_inverse_text_normalizationBooleanいいえ後処理でITNを実行するかどうか、「音声認識サービス使用マニュアル」の「基本用語」セクションを参照false
enable_wordsBooleanいいえ単語情報の返却を有効にするかどうか、「音声認識サービス使用マニュアル」の「基本用語」セクションを参照false
enable_intermediate_wordsBooleanいいえ中間結果の単語情報の返却を有効にするかどうか、「音声認識サービス使用マニュアル」の「基本用語」セクションを参照false
enable_modal_particle_filterBooleanいいえ言い淀みフィルターを有効にするかどうか、「音声認識サービス使用マニュアル」の「実用機能」セクションを参照false
hotwords_idStringいいえ単語辞書ID、「音声認識サービス使用マニュアル」の「実用機能」セクションおよび「音声認識サービス単語インターフェースプロトコル」を参照なし
hotwords_weightFloatいいえ単語辞書の重み、範囲[0.1, 1.0]0.4
correction_words_idStringいいえ強制置換辞書ID、「音声認識サービス使用マニュアル」の「実用機能」セクションおよび「音声認識サービス強制置換インターフェースプロトコル」を参照
複数の強制置換辞書IDを使用する場合は、各IDを縦線 | で区切る;all はすべての強制置換辞書IDを使用することを表す
なし
forbidden_words_idStringいいえNG単語辞書ID、「音声認識サービス使用マニュアル」の「実用機能」セクションおよび「音声認識サービスNG単語インターフェースプロトコル」を参照
複数のNG単語辞書IDを使用する場合は、各IDを縦線 | で区切る;all はすべてのNG単語辞書IDを使用することを表す
なし
gainIntいいえ振幅ゲイン係数、範囲[1, 20]、「音声認識サービス使用マニュアル」の「基礎知識」および「実用機能」セクションを参照
1は増幅なし、2は元の振幅の2倍(1倍増幅)、といった具合だ
1
max_suffix_silenceIntいいえ音声後置静寂検出閾値(秒)、範囲 1~10。句末の静寂がこのしきい値を超えると自動的に認識を終了。
パラメータ値が0またはこのパラメータが未送信の場合、後置静寂検出機能を有効にしない。
0
user_idStringいいえユーザー定義情報、応答メッセージでそのまま返される、最大36文字なし

送信例:

{
    "header": {
        "namespace": "SpeechRecognizer",
        "name": "StartRecognition"
    },
    "payload": {
        "lang_type": "zh-cmn-Hans-CN",
        "format": "pcm",
        "sample_rate": 16000,
        "enable_intermediate_result": true,
        "enable_punctuation_prediction": true,
        "enable_inverse_text_normalization": true,
        "enable_words":true,
        "user_id":"conversation_001"
    }
}

戻りパラメータ(headerオブジェクト):

パラメータタイプ説明
namespaceStringメッセージの名前空間:SpeechRecognizer は一発話認識を表す
nameStringイベント名:RecognitionStarted は開始段階を表す
statusStringステータスコード
status_textStringステータスコードの説明
task_idStringタスクのグローバル一意のID、問題のトラブルシューティングのためにこの値を記録してください
user_idString接続を確立するときに送信した user_id

戻り例:

{
    "header":{
        "namespace":"SpeechRecognizer",
        "name":"RecognitionStarted",
        "appkey":"",
        "status":"00000",
        "status_text":"success",
        "task_id":"0220a729ac9d4c9997f51592ecc83847",
        "message_id":"",
        "user_id":"conversation_001"
    },
    "payload":{
        "paragraph": 0,
        "index":0,
        "time":0,
        "begin_time":0,
        "speaker_id":"",
        "result":"",
        "confidence":0,
        "words":null
    }
}

2. 音声データを送信し、認識結果を受信

音声バイナリデータを繰り返し送信し、認識結果を継続的に受信します。

認識結果は「中間結果」と「最終結果」に分かれます。詳細は「音声認識サービス使用マニュアル」の「基本用語」セクションを参照してください。

  • enable_intermediate_resulttrue に設定されている場合、サーバーは RecognitionResultChanged メッセージを何度も返し、これは認識の中間結果を示します。

  • enable_intermediate_resultfalse に設定されている場合、このステップではサーバーからメッセージは返されません。

注意:

最後に取得した中間結果と最終結果は必ずしも同じではありません。最終認識結果として RecognitionCompleted イベントに対応する結果を使用してください。

送信パラメータ:音声バイナリデータを分割して送信し、1回のデータパケットのサイズは7680 Byteを推奨します。

戻りパラメータ(headerオブジェクト):

パラメータタイプ説明
namespaceStringメッセージの名前空間、SpeechRecognizer は一発話認識を表す
nameStringメッセージ名、RecognitionResultChanged は認識の中間結果を表す
statusIntegerステータスコード、リクエストの成功可否を示し、サービスステータスコードを参照
status_textStringステータスメッセージ
task_idStringタスクのグローバル一意のID、問題のトラブルシューティングのためにこの値を記録してください
message_idStringこのメッセージのID
user_idString接続を確立するときに送信した user_id

戻りパラメータ(payloadオブジェクト):

パラメータタイプ説明
indexInteger一発話認識に対しては、恒久的に1
timeInteger現在処理されている音声の長さ、単位はミリ秒
begin_timeInteger現在の文に対応する開始時間、単位はミリ秒
speaker_idString一句话認識に対しては、恒久的に空の値
resultString認識結果
confidenceFloat結果の信頼度、範囲 [0, 1]
wordsList<iWord>中間結果の単語情報、enable_intermediate_words が true に設定されている場合にのみ結果が返される
volumeInteger音量、範囲 [0, 100]

中間結果の単語情報 iWord オブジェクト:

パラメータタイプ説明
wordStringテキスト
start_timeInteger単語の開始時間、単位はミリ秒
end_timeInteger単語の終了時間、単位はミリ秒
stableBoolean単語の状態が固定されているか
false の場合、後続の中間結果でその単語が変更される可能性がある;それ以外の場合、変更されない。

戻り例:

{
    "header": {
        "namespace": "SpeechRecognizer",
        "name": "RecognitionResultChanged",
        "status": "00000",
        "status_text": "success",
        "task_id": "0220a729ac9d4c9997f51592ecc83847",
        "message_id": "43u134hcih2lcp7q1c94dhm5ic2op9l2",
        "user_id":"conversation_001"
    },
    "payload": {
        "index": 1,
        "time": 1920,
        "begin_time": 0,
        "speaker_id": "",
        "result": "",
        "confidence": 1,
        "words": [
            {
                "word": "あらゆる",
                "start_time": 0,
                "end_time": 1920,
                "stable": false
            }
        ]
    }
}

3. 停止して最終結果を取得

クライアントは一発話認識の停止リクエストを送信し、サーバーに音声データの送信終了と音声認識の停止を通知します。サーバーは最終認識結果を返し、その後自動的に接続を解除します。

送信パラメータ(headerオブジェクト):

パラメータタイプ説明
namespaceStringメッセージの名前空間、SpeechRecognizer は一発話認識を表す
nameStringメッセージ名、StopRecognition は認識の停止を表す

送信例:

{
    "header": {
        "namespace": "SpeechRecognizer",
        "name": "StopRecognition"
    }
}

戻りパラメータ(headerオブジェクト):

パラメータタイプ説明
namespaceStringメッセージの名前空間、SpeechRecognizer は一発話認識を表す
nameStringメッセージ名、RecognitionCompleted は認識の完了を表す
statusIntegerステータスコード、リクエストの成功可否を示し、サービスステータスコードを参照
status_textStringステータスメッセージ
task_idStringタスクのグローバル一意のID、問題のトラブルシューティングのためにこの値を記録してください
message_idStringこのメッセージのID
user_idString接続を確立するときに送信した user_id

戻りパラメータ(payloadオブジェクト):

パラメータタイプ説明
indexInteger一発話認識に対しては、恒久的に1
timeInteger現在処理されている音声の長さ、単位はミリ秒
begin_timeInteger現在の文に対応する開始時間、単位はミリ秒
speaker_idString一句话認識に対しては、恒久的に空の値
resultString認識結果
confidenceFloat結果の信頼度、範囲 [0, 1]
wordsList<eWord>単語情報、enable_wordstrue に設定されている場合にのみ返される
volumeInteger音量、範囲 [0, 100]

最終結果の語情報 eWords オブジェクト:

パラメータタイプ説明
wordStringテキスト
start_timeInteger単語の開始時間、単位はミリ秒
end_timeInteger単語の終了時間、単位はミリ秒
typeStringタイプ
normal は通常のテキスト、forbidden はNG単語、modal は言い淀み、punc は句読点を示す

戻り例:

{
    "header": {
        "namespace": "SpeechRecognizer",
        "name": "RecognitionCompleted",
        "status": "00000",
        "status_text": "success",
        "task_id": "0220a729ac9d4c9997f51592ecc83847",
        "message_id": "45kbrouk4yvz81fjueyao2s7y7o6gjz6",
        "user_id":"conversation_001"
    },
    "payload": {
        "index": 1,
        "time": 5292,
        "begin_time": 0,
        "speaker_id": "",
        "result": "优化和改进外商投资房地产管理。",
        "confidence": 0.9,
        "words": [{
            "word": "优化",
            "start_time": 390,
            "end_time": 1110,
            "type": "normal"
        }, {
            "word": "和",
            "start_time": 1110,
            "end_time": 1440,
            "type": "normal"
        }, {
            "word": "改进",
            "start_time": 1440,
            "end_time": 2130,
            "type": "normal"
        }, {
            "word": "外商投资",
            "start_time": 2160,
            "end_time": 3570,
            "type": "normal"
        }, {
            "word": "房地产",
            "start_time": 3600,
            "end_time": 4290,
            "type": "normal"
        }, {
            "word": "管理",
            "start_time": 4290,
            "end_time": 4860,
            "type": "normal"
        }]
    }
}

HTTP インターフェース(同期)

HTTP リクエストライン

プロトコルURLメソッド
HTTP/1.1http://<ip_address>:7100/api/v1POST

<ip_address> を実際のサーバーIPに置き換えてください。

リクエストヘッダー

HTTP リクエストヘッダーは「キーワード/値」のペアで構成され、各行に1ペアが含まれ、キーワードと値はコロン:で区切られます。設定内容は以下の通りです:

名称タイプ必須説明
Content-typeStringはい"application/octet-stream" でなければならず、HTTPボディのデータがバイナリデータであることを示す

リクエストパラメータ

クライアントは音声認識リクエストを送信し、リクエストクエリパラメータ(query)でパラメータ設定を行う必要があります。各パラメータの意味は以下の通りです: