このトピックでは、Fun-ASR-Flash 非リアルタイム音声認識 HTTP API のパラメーターとインターフェイスの詳細について説明します。
サポートされている音声フォーマット、ファイルサイズの制限、時間の制限などの入力要件については、音声仕様をご参照ください。
ストリーミングモードでは、クライアントは以下を処理する必要があります:
サービスエンドポイント
- シンガポール
- 中国 (北京)
POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation{WorkspaceId} を実際の ワークスペース ID に置き換えます。リクエストヘッダー
| パラメーター | タイプ | 必須 | 説明 |
|---|---|---|---|
Authorization | string | はい | 認証トークン。Bearer <your_api_key> というフォーマットです。<your_api_key> を、実際の API キーに置き換えてください。 |
Content-Type | string | はい | リクエストボディのメディアタイプ。 application/json に固定されています。 |
X-DashScope-SSE | string | いいえ | 結果が SSE ストリームとして返されるかどうかを制御します。enable に設定すると SSE ストリーミングが有効になり、サーバーは中間および最終認識結果を複数のメッセージで返します。disable に設定するか、パラメーターを省略すると、最終結果のみが返されます。 |
リクエストボディmodelstring(必須)モデル名。inputobject(必須)入力情報。
プロパティ messages array(object)(必須)メッセージリスト。認識する音声と、オプションで認識精度を向上させるための会話コンテキストが含まれます。
プロパティ role string(必須)メッセージのロール。有効な値:
array(object)(必須)メッセージコンテンツのリスト。
プロパティ type string(必須)コンテンツタイプ。各リクエストには、タイプが input_audio のメッセージが少なくとも 1 つ必要です。有効な値:
object(条件付き必須)type が input_audio の場合は必須です。
プロパティ data string(必須)認識する音声データ。サポートされている音声フォーマット、ファイルサイズの制限、時間の制限などの入力要件については、音声仕様をご参照ください。2 つのメソッドがサポートされています:
https://example.com/audio/sample.wav例 (Base64): data:audio/wav;base64,{BASE64_ENCODED_DATA}string(条件付き必須)type が input_text の場合、前のターンのユーザーの発話の認識結果、またはドメイン固有の単語リストを入力します。 type が text の場合、前のターンの大規模言語モデルの応答を入力します。 テキストの長さは文字単位で測定され、各文字は 1 としてカウントされます。 1 つのコンテキストターン内のすべてのメッセージにわたる text フィールドの合計の長さは 400 文字を超えることはできません。 超過分は末尾から切り捨てられます。object(必須)モデルパラメーター。テキスト調整機能はデフォルトで無効で、まだ提供されていません。テキスト調整では、音声認識と同時に、意味のないフィラーや言いよどみによる重複の削除、発話中の言い直しへの対応、口語表現の整理、句読点とテキスト形式の標準化を行います。話者の最終的な意図と重要な情報をできる限り保ちながら、簡潔で流暢かつ読みやすい結果を出力します。
プロパティ format string(必須)音声フォーマット。実際の音声フォーマットに合わせて設定します。サポートされている値は wav、 mp3、 opus です。詳細については、「音声仕様」をご参照ください。sample_ratestring(オプション)オーディオのサンプルレート (Hz) です。たとえば、16000 は 16 kHz のサンプルレートを意味します。詳細については、「オーディオ仕様」をご参照ください。vocabulary_idstring(オプション)プリコンパイルされたホットワードリストの ID。この ID は、ホットワードリスト作成 API を呼び出して事前に生成します。認識時に ID を渡して、リスト内のホットワードを使用します。語彙が既知で比較的安定しており、リクエスト間で同じ単語リストを再利用する必要があるシナリオに適しています。使用方法の詳細については、プリコンパイルされたホットワードをご参照ください。language_hints array[string](オプション)認識する言語コードを指定します。事前に言語が不明な場合は省略すると、モデルが自動検出します。最大 1 個の値を指定でき、それ以上指定した場合は最初の 1 個だけが有効です。
サポートされている言語コード
| 以下の例では、シンガポールリージョンの構成を使用しています。{WorkspaceId} を実際のワークスペース ID に置き換えてください。構成はリージョンによって異なり、シンガポールリージョンの API キーは北京リージョンのものとは異なります。
|
レスポンスボディrequest_idstringこのリクエストの一意の識別子。outputobject出力結果。
プロパティ text stringこれまでに蓄積された認識された全文。sentenceobject現在の文の詳細。
プロパティ sentence_id integer文番号。1 から始まります。sentence_endboolean文の最終結果であるかどうか。 true は、文の認識が完了したことを示します。begin_timeinteger文の開始時刻 (ミリ秒)。end_timeintegerミリ秒単位の文の終了時間。sentence_end が true の場合にのみ返されます。textstring現在の文の認識されたテキスト。channel_idintegerチャンネル番号。0 から始まります。wordsarray単語レベルのタイムスタンプのリスト。
プロパティ text string単語のテキスト。begin_timeinteger単語の開始時刻 (ミリ秒)。end_timeinteger単語の終了時刻 (ミリ秒)。punctuationstring単語の後の句読点。句読点がない場合は空の文字列。fixedboolean単語が確定されたかどうか。 false の場合、単語のタイムスタンプが後続のイベントで調整される可能性があります。object使用量情報です。sentence_end が true の場合にのみ返されます。
プロパティ duration integer処理された音声の長さ (秒)。 |
|
SSE ストリーミング結果の処理ロジック
ストリーミングモードでは、クライアントは以下を処理する必要があります:
- 受信した SSE イベントごとに、
dataフィールドの JSON を解析します。 output.sentence.sentence_endで現在の文が終了したかを判断します。trueの場合は認識が完了し、単語レベルのタイムスタンプが確定しているため、最終結果として使用できます。falseの場合は認識中であり、後続のイベントでテキストやタイムスタンプが更新される可能性があります。usageは文の終了イベントでのみ返され、処理済みの音声時間を含みます。