Skip to main content

Fun-ASR-Realtime クライアントイベント

このトピックでは、Fun-ASR-Realtime リアルタイム音声認識サービスにおいて、クライアントが WebSocket 経由でサーバーに送信するクライアントイベントについて説明します。これには、run-task (タスクの開始)、finish-task (タスクの終了) のデータ構造とフィールド定義が含まれます。

run-task

音声認識タスクを開始し、モデル、音声フォーマット、サンプルレートなどのパラメーターを設定します。 送信タイミング:WebSocket 接続が確立された直後に送信します。 応答イベント:サーバーが task-started イベントを返した後にのみ、音声を送信できます。
headerobject(必須)

プロパティ

actionstring(必須)コマンドタイプ。run-task に設定します。task_idstring(必須)クライアントが生成したタスク ID (UUID 形式) で、後続のイベントをこのタスクにリンクさせます。streamingstring(必須)duplex に設定します。
payloadobject(必須)

プロパティ

task_groupstring(必須)タスクグループ。audioに設定します。taskstring(必須)タスクタイプ。 asr に設定します。functionstring(必須)関数タイプとして recognition を設定します。modelstring(必須)モデル名。inputobject(必須)入力オブジェクト。コンテキストが提供されない場合は {} を渡します。
コンテキストをサポートしているのは、fun-asr-realtime モデルのみです。

プロパティ

contextarray(object)(任意)会話コンテキスト。ドメイン固有の語彙に対する認識精度を向上させます。使用方法の詳細については、「コンテキスト拡張」をご参照ください。
制限事項:各タイプ (input_text および text) のコンテキストメッセージは最大 5 つまで指定できます。この制限を超えた場合、最新の 5 つのメッセージのみが保持されます。1 ターンあたりの合計テキスト長 (user と assistant メッセージの text フィールドの合計長) は 400 文字を超えることはできません (文字単位でカウントされ、各文字は 1 としてカウントされます)。この制限を超えたテキストは末尾から切り捨てられます。
コンテキストを指定する場合、context 内のメッセージは特定の順序に従う必要があります。コンテキストメッセージは会話のターンごとに配置し、各ターン内で user メッセージ (タイプ input_text) は、対応する assistant メッセージ (タイプ text) の前に配置する必要があります。

プロパティ

rolestring(必須)メッセージのロール。有効値:
  • user:前のターンのユーザー発話の認識結果、またはドメイン固有の単語リスト。
  • assistant:前のターンの大規模言語モデルからの応答。
contentarray(object)(必須)メッセージコンテンツのリスト。

プロパティ

typestring(必須)コンテンツタイプ。有効値:
  • input_text:前のターンのユーザー発話の認識結果、またはドメイン固有の単語リスト (ロールが user の場合に使用)。text フィールドも指定する必要があります。
  • text:前のターンの大規模言語モデルからの応答 (ロールが assistant の場合に使用)。text フィールドも指定する必要があります。
textstring(必須)テキストコンテンツ。type が input_text の場合は、前のターンのユーザー発話の認識結果またはドメイン固有の単語リストを入力します。type が text の場合は、前のターンの大規模言語モデルからの応答を入力します。
parametersobject(必須)音声認識パラメーター。

プロパティ

formatstring(必須)音声フォーマット。有効値:
  • pcm
  • wav
  • mp3
  • opus
  • speex
  • aac
  • amr
opus/speex:Ogg カプセル化を使用する必要があります。wav:PCM エンコーディングを使用する必要があります。amr:AMR-NB タイプのみがサポートされています。
sample_rateinteger(必須)サンプルレート (単位:Hz)。有効値:8 kHz モデルは 8000 Hz のみをサポートし、その他のモデルは任意のサンプルレートをサポートします。vocabulary_idstring(任意)プリコンパイルされたホットワードリストの ID。この ID は、ホットワードリスト作成 API を呼び出して事前に生成します。認識時に ID を渡すことで、リスト内のホットワードを使用できます。語彙が既知で比較的に安定しており、リクエスト間で同じ単語リストを再利用する必要があるシナリオに適しています。使用方法の詳細については、「プリコンパイルされたホットワード」をご参照ください。language_hintsarray[string](任意)認識する音声の言語。デフォルト値はありません。設定しない場合、モデルは自動的に言語を検出します。1 つの値を設定できます。複数設定した場合は、最初の値のみが有効です。
  • fun-asr-realtime:
    • zh:中国語
    • en:英語
    • ja:日本語
    • ko:韓国語
    • vi:ベトナム語
    • th:タイ語
    • id:インドネシア語
    • ms:マレー語
    • tl:フィリピン語
    • hi:ヒンディー語
    • ar:アラビア語
    • fr:フランス語
    • de:ドイツ語
    • es:スペイン語
    • pt:ポルトガル語
    • ru:ロシア語
    • it:イタリア語
    • nl:オランダ語
    • sv:スウェーデン語
    • da:デンマーク語
    • fi:フィンランド語
    • no:ノルウェー語
    • el:ギリシャ語
    • pl:ポーランド語
    • cs:チェコ語
    • hu:ハンガリー語
    • ro:ルーマニア語
    • bg:ブルガリア語
    • hr:クロアチア語
    • sk:スロバキア語
  • fun-asr-realtime-2026-02-28:
    • zh:中国語
    • en:英語
    • ja:日本語
  • fun-asr-flash-8k-realtime, fun-asr-flash-8k-realtime-2026-01-28:
    • zh:中国語
max_sentence_silenceinteger(任意)セグメンテーションのための VAD 無音しきい値 (単位:ms)。音声セグメントの後の無音がこのしきい値を超えると、システムは文が終了したと判断します。デフォルト値:1300。有効値:[200, 6000]。multi_threshold_mode_enabledboolean(任意)マルチしきい値モードを有効にするかどうか。有効にすると、VAD セグメントが長くなりすぎるのを防ぎます。デフォルト値:false。heartbeatboolean(任意)ハートビートパケットを有効にするかどうか。デフォルト値:false。
  • true:無音音声を継続的に送信しても、サーバーへの接続を維持します。
  • false (デフォルト):無音音声を継続的に送信しても、60 秒後にタイムアウトにより接続が切断されます。
無音音声とは、音声ファイルまたはデータストリーム内の音声信号を含まないコンテンツを指します。無音音声は、Audacity や Adobe Audition などの音声編集ソフトウェアを使用したり、FFmpeg などのコマンドラインツールを使用したりするなど、いくつかの方法で生成できます。speech_noise_thresholdfloat(任意)音声とノイズを区別するためのしきい値で、音声アクティビティ検出 (VAD) の感度を調整するために使用されます。有効値:[-1.0, 1.0]。値の説明:
  • 値が -1 に近いほど:ノイズのしきい値が下がり、ノイズが音声として認識されやすくなるため、より多くのノイズが書き起こされる可能性があります。
  • 値が +1 に近いほど:ノイズのしきい値が上がり、音声がノイズとして誤って判断されやすくなるため、一部の音声がフィルタリングされる可能性があります。
これは詳細設定パラメーターです。調整すると認識結果に大きな影響を与える可能性があります。推奨事項:
  • 調整する前に、結果を十分にテストし、検証してください。
  • 実際の音声環境に基づいて、小さな増分で調整してください (0.1 のステップを推奨します)。
special_word_filter string(任意)認識結果の指定単語を同じ数のアスタリスクに置換するか、削除するためのフィルタリングルールです。値はルールオブジェクトをシリアライズした JSON 文字列です。最大 32 語を設定できます。パラメーターを省略した場合はフィルタリングしません。
  • filter_with_signed.word_list:文字列配列。一致する語を同じ文字数のアスタリスクに置換します。
  • filter_with_empty.word_list:文字列配列。一致する語を結果から削除します。
  • system_reserved_filter:ブール値、デフォルトは false。システム辞書の使用を制御します。カスタムの置換・削除ルールは上記の各リストで設定します。
{
  "special_word_filter": "{\"filter_with_signed\":{\"word_list\":[\"project\"]},\"filter_with_empty\":{\"word_list\":[\"report\"]},\"system_reserved_filter\":false}"
}
{
    "header": {
        "action": "run-task",
        "task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
        "streaming": "duplex"
    },
    "payload": {
        "task_group": "audio",
        "task": "asr",
        "function": "recognition",
        "model": "fun-asr-realtime",
        "parameters": {
            "format": "pcm",
            "sample_rate": 16000
        },
        "input": {}
    }
}

finish-task

すべての音声が送信されたことをサーバーに通知し、タスクの終了を要求します。 送信タイミング:すべての音声データが送信された後に送信します。 応答イベント:サーバーは task-finished イベントを返します。
headerobject(必須)

プロパティ

actionstring(必須)コマンドの種類であり、 finish-task に設定します。task_idstring(必須)クライアントが生成したタスク ID (UUID 形式) で、run-task イベントの task_id と一致する必要があります。streamingstring(必須)duplex に設定します。
payloadobject(必須)

プロパティ

inputobject(必須){} に設定します。
{
    "header": {
        "action": "finish-task",
        "task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
        "streaming": "duplex"
    },
    "payload": {
        "input": {}
    }
}