すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Model Studio:Fun-ASR HTTP API による音声ファイルの文字起こし

最終更新日:Jul 03, 2026

Fun-ASR HTTP API を使用して、音声ファイルの文字起こしタスクを送信し、DashScope 経由で結果を取得します。

ユーザーガイド: 非リアルタイム音声認識。サポートされている音声フォーマット、ファイルサイズ制限、および再生時間制限については、「音声仕様」をご参照ください。

DashScope 非同期呼び出し (Fun-ASR)

仕組み

即時に結果を返す同期呼び出しとは異なり、非同期モードは長尺の音声ファイルや処理に時間がかかるタスクに対応します。このモードでは、長時間の処理中にリクエストがタイムアウトしないよう、タスク送信後にポーリングするワークフローを採用しています。

  1. ステップ 1:タスクを送信します

    • クライアントが非同期処理リクエストを送信します。

    • サーバーはリクエストを検証した後、タスクを即座に実行せずに一意の task_id を返し、タスクが正常に作成されたことを示します。

  2. ステップ 2:結果を取得します

    • クライアントは返された task_id を使用して、結果取得エンドポイントを繰り返しポーリングします。

    • タスクが完了すると、結果取得エンドポイントが最終的な文字起こし結果を返します。

サービスエンドポイント

中国 (北京)

タスク送信エンドポイント:POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/asr/transcription

タスククエリエンドポイント:GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/{task_id}

{WorkspaceId} は、ご利用のワークスペース IDに置き換えてください。

シンガポール

タスク送信エンドポイント:POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/asr/transcription

タスククエリエンドポイント:GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}

{WorkspaceId} は、ご利用のワークスペース IDに置き換えてください。

シンガポール

タスク送信エンドポイント: POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/asr/transcription

クエリタスクエンドポイント: GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}

{WorkspaceId} を実際のワークスペース IDに置き換えてください。

中国 (北京)

タスク送信エンドポイント:POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/asr/transcription

タスククエリのエンドポイント: GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/{task_id}

{WorkspaceId} を実際のワークスペース IDに置き換えます。

重要

Alibaba Cloud Model Studio は、中国 (北京) リージョンおよびシンガポールリージョン向けにワークスペース専用ドメインをリリースしました。新しい専用ドメインは、推論リクエストに対して優れたパフォーマンスと高い安定性を提供します。以下の通り、新しいドメインへの移行を推奨します。

  • 中国 (北京):dashscope.aliyuncs.com から {WorkspaceId}.cn-beijing.maas.aliyuncs.com

  • シンガポール:dashscope-intl.aliyuncs.com から {WorkspaceId}.ap-southeast-1.maas.aliyuncs.com

{WorkspaceId} は、実際の ワークスペース ID に置き換えてください。既存のドメインは引き続き完全に機能します。

重要

新しいドメイン (https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com) を通じてタスクを送信する場合、リクエストボディに parameters オブジェクトを含める必要があります。パラメーターを設定しない場合でも、空のオブジェクト {} を渡してください。これを行わないと、タスクは正常に送信されますが、文字起こしが失敗します。

{WorkspaceId} は、実際の ワークスペース ID に置き換えてください。

リクエストヘッダー

パラメーター

タイプ

必須

説明

Authorization

string

はい

Bearer <your_api_key> 形式の認証トークン。<your_api_key> は、実際の API キーに置き換えてください。タスク送信エンドポイントおよびタスク照会エンドポイントの両方で必要です。

Content-Type

string

はい

リクエストボディのメディアタイプ。タスク送信エンドポイントでのみ必要です。application/json に設定します。

X-DashScope-Async

string

はい

非同期タスク識別子。タスク送信エンドポイントでのみ必要です。enable に設定します。このヘッダーを省略すると、タスク送信が失敗します。

タスク送信

音声文字起こしタスクを送信します。このエンドポイントは非同期で応答するため、結果を取得するには「タスク照会」を使用してポーリングしてください。

リクエストボディ

以下の URL はシンガポールリージョン用です。WorkspaceId は実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。シンガポールおよび北京の API キーは異なります。

curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/asr/transcription' \
     --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
     --header "Content-Type: application/json" \
     --header "X-DashScope-Async: enable" \
     --data '{
    "model": "fun-asr",
    "input": {
        "file_urls": [
            "https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_female2.wav"
        ]
    },
    "parameters": {
        "channel_id": [0]
    }
}'

model string (必須)

音声および動画ファイルの文字起こしに使用するモデル名。

有効な値:

  • fun-asr

  • fun-asr-2025-11-07

  • fun-asr-2025-08-25

  • fun-asr-mtl

  • fun-asr-mtl-2025-08-25

input object (必須)

入力パラメーターオブジェクト。

プロパティ

file_urls array[string] (必須)

文字起こし対象の音声または動画ファイル URL のリスト。HTTP および HTTPS をサポートします。1 回のリクエストで受け付けられる URL は 1 つだけです。サポートされている音声フォーマット、ファイルサイズ制限、および再生時間制限については、「音声仕様」をご参照ください。

音声ファイルが Alibaba Cloud OSS に保存されている場合、RESTful API は oss:// で始まる一時 URL もサポートします。

重要
  • 一時 URL の有効期限は 48 時間であり、期限切れ後は使用できません。本番環境では使用しないでください。

  • ファイルアップロード認証情報 API は 100 QPS で速度制限されており、スケールアップできません。本番環境、高同時実行、または負荷テストのシナリオでは使用しないでください。

  • 本番環境では、長期的な可用性を確保し、速度制限を回避するために、Alibaba Cloud OSS などの安定したストレージにファイルを保存してください。

  • OSS 一時公開 URL にアクセスできない場合は、リクエストヘッダーX-DashScope-OssResourceResolveenable に設定してください(推奨されません)。

    Java SDK および Python SDK はカスタムリクエストヘッダーをサポートしていません。

parameters object (任意)

リクエストパラメーターオブジェクト。

重要

新しいドメイン (https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com) を使用する場合、parameters は必須です。パラメーターを設定しない場合でも、空のオブジェクト {} を渡してください。このフィールドを省略すると、タスクは正常に送信されますが、照会結果エンドポイントが文字起こし失敗を返します。

プロパティ

vocabulary_id string (任意)

カスタム語彙 ID。設定すると、この ID に関連付けられたカスタム語彙が文字起こし中に有効になります。デフォルトでは無効です。使用方法については、「カスタムホットワード」をご参照ください。

channel_id array[integer] (任意)

マルチトラック音声ファイルで文字起こしする音声トラックのインデックスを指定します。インデックスは 0 から始まります。たとえば、[0] は最初のトラック、[0, 1] は最初と 2 番目のトラックを文字起こしします。省略した場合、最初のトラックのみが処理されます。

重要

指定された各トラックは個別に課金されます。たとえば、単一ファイルに対して [0, 1] をリクエストすると、2 回分の課金が発生します。

デフォルト:[0]。

special_word_filter string (任意)

文字起こし中に処理する禁止用語を指定します。異なる単語に対して異なる処理方法が適用されます。詳細については、「禁止用語フィルター」をご参照ください。

diarization_enabled boolean (任意)

話者分離を有効にするかどうか。デフォルトでは無効です。

モノラル音声にのみ適用されます。マルチチャンネル音声は話者分離をサポートしていません。

有効にすると、文字起こし結果に異なる話者を区別するための speaker_id フィールドが含まれます。

説明

話者分離を有効にする場合、音声の再生時間を 2 時間以内に抑えてください。それより長い音声では、文字起こしが失敗したりタイムアウトしたりする可能性があります。

speaker_id の例については、「文字起こし結果の説明」をご参照ください。

デフォルト:false。

speaker_count integer (任意)

重要

話者分離が有効になっている場合 (diarization_enabledtrue に設定されている場合) のみ有効です。

予想される話者の数に関するヒント。有効な値:2 以上 100 以下の整数。

デフォルトでは、システムが話者の数を自動的に検出します。この値を指定すると、アルゴリズムが指定された数に向かって調整されますが、出力にその正確な数が保証されるわけではありません。

language_hints array[string] (任意)

文字起こし対象の音声の言語。言語が不明な場合は、このパラメーターを省略してください。モデルが言語を自動的に検出します。

配列内の最初の値のみが読み取られます。追加の値は無視されます。

サポートされている言語コードを表示

  • fun-asr, fun-asr-2025-11-07, fun-asr-mtl, fun-asr-mtl-2025-08-25:

    • 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-2025-08-25:

    • zh: 中国語

    • en: 英語

レスポンスボディ

{
  "output": {
    "task_status": "PENDING",
    "task_id": "c2e5d63b-96e1-4607-bb91-************"
  },
  "request_id": "77ae55ae-be17-97b8-9942--************"
}

request_id string

このリクエストの一意な識別子。

output object

タスク送信時に返されるデータ。

プロパティ

task_id string

タスク ID。文字列 として、タスク照会 に渡します。

task_status string

タスクのステータス。タスクが正常に送信されると、PENDING が返されます。

タスク照会

音声文字起こしタスクのステータスおよび結果を返します。タスクが終了状態になるまで、このエンドポイントをポーリングしてください。

リクエストボディ

以下の URL はシンガポールリージョン用です。WorkspaceId は実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。シンガポールおよび北京の API キーは異なります。

curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}' \
     --header "Authorization: Bearer $DASHSCOPE_API_KEY"

task_id string (必須)

重要

URL パスパラメーター。リクエストボディはありません。

照会するタスクの ID。タスク送信 によって task_id として返されたものです。

レスポンスボディ

成功例

{
  "request_id": "f9e1afad-94d3-997e-a83b-************",
  "output": {
    "task_id": "f86ec806-4d73-485f-a24f-************",
    "task_status": "SUCCEEDED",
    "submit_time": "2024-09-12 15:11:40.041",
    "scheduled_time": "2024-09-12 15:11:40.071",
    "end_time": "2024-09-12 15:11:40.903",
    "results": [
      {
        "file_url": "https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_female2.wav",
        "transcription_url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/pre/filetrans-16k/20240912/15%3A11/409a4b92-445b-4dd8-8c1d-f110954d82d8-1.json?Expires=1726211500&OSSAccessKeyId=yourOSSAccessKeyId&Signature=v5Owy5qoAfT7mzGmQgH0g8C****%3D",
        "subtask_status": "SUCCEEDED"
      }
    ],
    "task_metrics": {
      "TOTAL": 1,
      "SUCCEEDED": 1,
      "FAILED": 0
    }
  },
  "usage": {
    "duration": 9
  }
}

エラー例

{
    "task_id": "7bac899c-06ec-4a79-8875-xxxxxxxxxxxx",
    "task_status": "SUCCEEDED",
    "submit_time": "2024-12-16 16:30:59.170",
    "scheduled_time": "2024-12-16 16:30:59.204",
    "end_time": "2024-12-16 16:31:02.375",
    "results": [
        {
            "file_url": "https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/sensevoice/rich_text_exaple_1.wav",
            "code": "FILE_DOWNLOAD_FAILED",
            "message": "The audio file cannot be downloaded.",
            "subtask_status": "FAILED"
        }
    ],
    "task_metrics": {
        "TOTAL": 1,
        "SUCCEEDED": 0,
        "FAILED": 1
    }
}

request_id string

このリクエストの一意な識別子。

output object

タスク照会時に返されるデータ。

プロパティ

task_id string

照会されたタスクの ID。

task_status string

照会されたタスクのステータス。

説明

タスクに複数のサブタスクが含まれる場合、いずれかのサブタスクが成功すれば、全体のタスクステータスは SUCCEEDED とマークされます。個々のサブタスクの結果を確認するには、subtask_status フィールドをチェックしてください。

submit_time string

タスクが送信された時刻。

scheduled_time string

タスクが実行スケジュールされた時刻。

end_time string

タスクが完了した時刻。

results array[object]

文字起こし対象の各音声ファイルごとのサブタスク結果のリスト。

プロパティ

subtask_status string

サブタスクのステータス。

file_url string

この文字起こしサブタスクで処理されたファイルの URL。

transcription_url string

文字起こし結果をダウンロードするための URL。この URL の有効期限は 24 時間です。期限切れ後は、以前に返された URL を使用してタスクを照会したり結果をダウンロードしたりできなくなります。

文字起こし結果は JSON ファイルとして保存されます。この URL を通じてファイルをダウンロードするか、HTTP リクエストを直接送信して内容を読み取ることができます。JSON データ内の各フィールドの意味については、「文字起こし結果の説明」をご参照ください。

code string

重要

サブタスクが失敗した場合にのみ返されます。

失敗したサブタスクのエラーコード。

message string

重要

サブタスクが失敗した場合にのみ返されます。

失敗したサブタスクのエラーメッセージ。

task_metrics object

タスク実行全体の統計情報。

プロパティ

TOTAL integer

サブタスクの総数。

SUCCEEDED integer

成功したサブタスクの数。

FAILED integer

失敗したサブタスクの数。

その他の API:タスクステータスの一括照会およびタスクキャンセル

詳細については、「非同期タスクの管理」をご参照ください。過去 24 時間に送信された音声ファイル文字起こしタスクの一括照会および PENDING(キュー待ち)状態のタスクのキャンセルがサポートされています。

文字起こし結果の説明

認識結果は JSON ファイルとして保存されます。

認識結果の例を表示

{
    "file_url":"https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_female2.wav",
    "properties":{
        "audio_format":"pcm_s16le",
        "channels":[
            0
        ],
        "original_sampling_rate":16000,
        "original_duration_in_milliseconds":3834
    },
    "transcripts":[
        {
            "channel_id":0,
            "content_duration_in_milliseconds":3720,
            "text":"Hello world, this is Alibaba Speech Lab.",
            "sentences":[
                {
                    "begin_time":100,
                    "end_time":3820,
                    "text":"Hello world, this is Alibaba Speech Lab.",
                    "sentence_id":1,
                    "speaker_id":0, // このフィールドは、自動話者分離が有効な場合にのみ表示されます。
                    "words":[
                        {
                            "begin_time":100,
                            "end_time":596,
                            "text":"Hello ",
                            "punctuation":""
                        },
                        {
                            "begin_time":596,
                            "end_time":844,
                            "text":"world",
                            "punctuation":", "
                        }
                        // 他のコンテンツはここでは省略されています。
                    ]
                }
            ]
        }
    ]
}

主なパラメーターは以下のとおりです。

パラメーター

タイプ

説明

audio_format

string

ソースファイル内の音声のフォーマット。

channels

array[integer]

ソースファイル内の音声トラックのインデックス情報。シングルトラック音声の場合は [0]、デュアルトラック音声の場合は [0, 1] を返します。

original_sampling_rate

integer

ソースファイル内の音声のサンプルレート (Hz)。

original_duration_in_milliseconds

integer

ソースファイル内の音声の元の再生時間 (ミリ秒)。

channel_id

integer

文字起こしされた音声トラックのインデックス。0 から始まります。

content_duration_in_milliseconds

integer

音声トラック内で音声として識別されたコンテンツの再生時間 (ミリ秒)。

重要

課金は音声コンテンツの再生時間のみに基づいて行われます(非音声部分は計測されません)。音声の再生時間は通常、音声全体の再生時間よりも短くなります。AI による音声検出にはわずかな誤差が生じる可能性があります。

transcript

string

段落レベルの音声文字起こし結果。

sentences

array

文レベルの音声文字起こし結果。

words

array

単語レベルの音声文字起こし結果。

begin_time

integer

開始タイムスタンプ (ミリ秒)。

end_time

integer

終了タイムスタンプ (ミリ秒)。

text

string

音声文字起こし結果。

speaker_id

integer

現在の話者のインデックス。0 から始まります。異なる話者を区別するために使用されます。

このフィールドは、話者分離が有効になっている場合にのみ認識結果に表示されます。

punctuation

string

単語の後に予測された句読点(存在する場合)。

DashScope 同期呼び出し (Fun-ASR-Flash)

重要

この機能は SDK 呼び出しをサポートしていません。

エンドポイント

中国 (北京)

POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

{WorkspaceId} をご利用のワークスペース ID に置き換えてください。

シンガポール

POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

{WorkspaceId} をご利用のワークスペース ID に置き換えてください。

シンガポール

POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

{WorkspaceId} を実際の ワークスペース ID に置き換えます。

中国 (北京)

POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

{WorkspaceId} を実際のワークスペース ID に置き換えてください。

重要

Alibaba Cloud Model Studio は、中国 (北京) リージョンおよびシンガポールリージョン向けにワークスペース専用ドメインをリリースしました。新しい専用ドメインは、推論リクエストに対して優れたパフォーマンスと高い安定性を提供します。以下の通り、新しいドメインへの移行を推奨します。

  • 中国 (北京):dashscope.aliyuncs.com から {WorkspaceId}.cn-beijing.maas.aliyuncs.com

  • シンガポール:dashscope-intl.aliyuncs.com から {WorkspaceId}.ap-southeast-1.maas.aliyuncs.com

{WorkspaceId} は、実際の ワークスペース ID に置き換えてください。既存のドメインは引き続き完全に機能します。

リクエストヘッダー

パラメーター

タイプ

必須

説明

Authorization

string

はい

Bearer <your_api_key> 形式の認証トークン。<your_api_key> は、実際の API キーに置き換えてください。

Content-Type

string

はい

リクエストボディのメディアタイプ。application/json に設定します。

X-DashScope-SSE

string

はい

結果を SSE ストリームとして返すかどうかを制御します。enable に設定すると、中間結果および最終結果が逐次返されます。disable に設定するか、このヘッダーを省略すると、最終結果のみが返されます。

リクエストボディ

以下の URL はシンガポールリージョン用です。WorkspaceId は実際のワークスペース ID に置き換えてください。URL および API キーはリージョンによって異なります。

非ストリーミング

curl --location --request POST 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
     --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
     --header "Content-Type: application/json" \
     --header "X-DashScope-SSE: disable" \
     --data '{
    "model": "fun-asr-flash-2026-06-15",
    "input": {
        "messages": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "input_audio",
                        "input_audio": {
                            "data": "https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_female2.wav"
                        }
                    }
                ]
            }
        ]
    },
    "parameters": {
        "format": "wav",
        "sample_rate": "16000"
    }
}'

ストリーミング

curl --location --request POST 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
     --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
     --header "Content-Type: application/json" \
     --header "X-DashScope-SSE: enable" \
     --data '{
    "model": "fun-asr-flash-2026-06-15",
    "input": {
        "messages": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "input_audio",
                        "input_audio": {
                            "data": "https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_female2.wav"
                        }
                    }
                ]
            }
        ]
    },
    "parameters": {
        "format": "wav",
        "sample_rate": "16000"
    }
}'

コンテキスト付き - 非ストリーミング

curl --location --request POST 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
     --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
     --header "Content-Type: application/json" \
     --header "X-DashScope-SSE: disable" \
     --data '{
    "model": "fun-asr-flash-2026-06-15",
    "input": {
        "messages": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "input_text",
                        "text": "Hello!"
                    }
                ]
            },
            {
                "role": "assistant",
                "content": [
                    {
                        "type": "text",
                        "text": "Hello! I am Tongyi Qianwen. How can I help you?"
                    }
                ]
            },
            {
                "role": "user",
                "content": [
                    {
                        "type": "input_audio",
                        "input_audio": {
                            "data": "https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_female2.wav"
                        }
                    }
                ]
            }
        ]
    },
    "parameters": {
        "format": "wav",
        "sample_rate": "16000"
    }
}'

コンテキスト付き - ストリーミング

curl --location --request POST 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
     --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
     --header "Content-Type: application/json" \
     --header "X-DashScope-SSE: enable" \
     --data '{
    "model": "fun-asr-flash-2026-06-15",
    "input": {
        "messages": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "input_text",
                        "text": "Hello!"
                    }
                ]
            },
            {
                "role": "assistant",
                "content": [
                    {
                        "type": "text",
                        "text": "Hello! I am Tongyi Qianwen. How can I help you?"
                    }
                ]
            },
            {
                "role": "user",
                "content": [
                    {
                        "type": "input_audio",
                        "input_audio": {
                            "data": "https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_female2.wav"
                        }
                    }
                ]
            }
        ]
    },
    "parameters": {
        "format": "wav",
        "sample_rate": "16000"
    }
}'

Base64

Data URI 形式で Base64 エンコードされたデータを渡すことができます。形式は次のとおりです:data:<mediatype>;base64,<data>

  • <mediatype>:MIME タイプ

    音声フォーマットによって異なります。例:

    • WAV:audio/wav

    • MP3:audio/mpeg

  • <data>:音声ファイルの Base64 エンコード文字列

    Base64 エンコーディングによりペイロードサイズが増加します。エンコード後のデータが 10 MB の入力音声サイズ制限内に収まるように、元のファイルを十分に小さくしてください。

  • 例:data:audio/wav;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjU4LjI5LjEwMAAAAAAAAAAAAAAA//PAxABQ/BXRbMPe4IQAhl9

    サンプルコードを表示

    import base64, pathlib
    
    # input.mp3 は文字起こし対象のローカル音声ファイルです。ご自身のファイルパスに置き換え、音声要件を満たしていることを確認してください。
    file_path = pathlib.Path("input.mp3")
    base64_str = base64.b64encode(file_path.read_bytes()).decode()
    data_uri = f"data:audio/mpeg;base64,{base64_str}"
    import java.nio.file.*;
          import java.util.Base64;
    
          public class Main {
              /**
               * filePath は文字起こし対象のローカル音声ファイルです。ご自身のファイルパスに置き換え、音声要件を満たしていることを確認してください。
               */
              public static String toDataUrl(String filePath) throws Exception {
                  byte[] bytes = Files.readAllBytes(Paths.get(filePath));
                  String encoded = Base64.getEncoder().encodeToString(bytes);
                  return "data:audio/mpeg;base64," + encoded;
              }
    
              public static void main(String[] args) throws Exception {
                  System.out.println(toDataUrl("input.mp3"));
              }
          }
import base64, pathlib
import os
import requests

# input.wav は文字起こし対象のローカル音声ファイルです。ご自身のファイルパスに置き換え、音声要件を満たしていることを確認してください。
file_path = pathlib.Path("input.wav")
base64_str = base64.b64encode(file_path.read_bytes()).decode()
data_uri = f"data:audio/wav;base64,{base64_str}"

# "{WorkspaceId}" は実際のワークスペース ID に置き換えてください
url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation"

headers = {
    "Authorization": f"Bearer {os.environ['DASHSCOPE_API_KEY']}",
    "Content-Type": "application/json",
    "X-DashScope-SSE": "disable",
}

payload = {
    "model": "fun-asr-flash-2026-06-15",
    "input": {
        "messages": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "input_audio",
                        "input_audio": {
                            "data": data_uri,
                        },
                    }
                ],
            }
        ]
    },
    "parameters": {
        "format": "wav",
        "sample_rate": "16000",
    },
}

response = requests.post(url, headers=headers, json=payload)
print(response.status_code)
print(response.json())

model string (必須)

モデル名。fun-asr-flash-2026-06-15 に設定します。

input object (必須)

入力情報。

プロパティ

messages array(object) (必須)

メッセージリスト。文字起こし対象の音声を含み、必要に応じて認識精度を向上させるための会話コンテキストを含めることができます。

重要

コンテキスト機能は、専門用語の認識精度を向上させます。使用方法の詳細については、「クイックスタート」をご参照ください。制約事項:コンテキストメッセージ (input_text および text タイプ) はそれぞれ最大 5 つまでです。上限を超えた場合、最新の 5 つのみが保持されます。1 ターンあたりの合計テキスト長 (user および assistanttext フィールド長の合計) は 400 文字 (1 文字につき 1 文字としてカウント) を超えてはなりません。超過したコンテンツは末尾から静かに切り捨てられます。

重要

コンテキストを提供する場合、messages 配列内のメッセージ順序が重要です。コンテキストメッセージは会話のターン順に従う必要があり、各 user メッセージ (input_text タイプ) は対応する assistant メッセージ (text タイプ) の前に配置する必要があります。input_audio を含む user メッセージは、常に messages 配列の最後の項目でなければなりません。

プロパティ

role string (必須)

メッセージのロール。有効な値:

  • user (必須):ユーザーのメッセージ。input_audio タイプの場合、これは文字起こし対象の音声を表します。input_text タイプの場合、これは前のターンの文字起こし結果またはドメイン固有の単語リストを表します (任意、コンテキスト用)。

  • assistant (任意、コンテキスト用):前のターンの LLM 応答。

content array(object) (必須)

メッセージコンテンツのリスト。

プロパティ

type string (必須)

コンテンツタイプ。各リクエストには少なくとも 1 つの input_audio メッセージを含める必要があります。有効な値:

  • input_audio (必須):現在の文字起こしの音声入力 (ロールは user である必要があります)。input_audio オブジェクトを含めてください。

  • input_text (任意、コンテキスト用):前のターンの文字起こし結果またはドメイン固有の単語リスト (ロールは user である必要があります)。text フィールドを含めてください。

  • text (任意、コンテキスト用):前のターンの LLM 応答 (ロールは assistant である必要があります)。text フィールドを含めてください。

input_audio object (条件付き必須)

typeinput_audio の場合に必須です。

プロパティ

data string (必須)

文字起こし対象の音声データ。サポートされている音声フォーマット、ファイルサイズ制限、および再生時間制限については、「音声仕様」をご参照ください。次の 2 つの形式がサポートされています。

  • 音声ファイル URL:音声ファイルを指すパブリックにアクセス可能な URL。

  • Base64 Data URI:Base64 エンコードされた音声データを含む Data URI。data:{MIME_TYPE};base64, プレフィックスと Base64 エンコードされた音声データを連結して構成されます。サポートされている MIME タイプには audio/wav および audio/mp3 が含まれます。

例 (URL):https://example.com/audio/sample.wav

例 (Base64):data:audio/wav;base64,{BASE64_ENCODED_DATA}

text string (条件付き必須)

typeinput_text の場合、前のターンの文字起こし結果またはドメイン固有の単語リストを渡します。typetext の場合、前のターンの LLM 応答を渡します。テキスト長は 1 文字につき 1 文字としてカウントされます。1 ターン内のすべてのメッセージの text フィールド長の合計は 400 文字を超えてはなりません。超過したコンテンツは末尾から切り捨てられます。

parameters object (必須)

モデルパラメーター。

プロパティ

format string (必須)

音声フォーマット。音声ファイルの実際のフォーマットに設定します。例:wavmp3、または opus。詳細については、「音声仕様」をご参照ください。

sample_rate string (任意)

音声のサンプルレート (Hz 単位)。例:16000 は 16 kHz のサンプルレートを示します。詳細については、「音声仕様」をご参照ください。

レスポンスボディ

非ストリーミング

{
    "output": {
        "sentence": {
            "begin_time": 760,
            "channel_id": 0,
            "end_time": 3800,
            "sentence_end": true,
            "sentence_id": 1,
            "text": "Hello world, this is Alibaba Speech Lab.",
            "words": [
                {"begin_time": 760, "end_time": 1040, "fixed": true, "punctuation": "", "text": "Hello"},
                {"begin_time": 1040, "end_time": 1240, "fixed": true, "punctuation": ",", "text": " world"},
                {"begin_time": 1360, "end_time": 1880, "fixed": true, "punctuation": "", "text": "this is"},
                {"begin_time": 1880, "end_time": 2520, "fixed": true, "punctuation": "", "text": "Alibaba"},
                {"begin_time": 2520, "end_time": 2840, "fixed": true, "punctuation": "", "text": "Speech"},
                {"begin_time": 2840, "end_time": 3800, "fixed": true, "punctuation": "。", "text": "Lab"}
            ]
        },
        "text": "Hello world, this is Alibaba Speech Lab."
    },
    "usage": {
        "duration": 4
    },
    "request_id": "40e0734d-096f-9ae3-86c1-a8c013287561"
}

ストリーミング

X-DashScope-SSE: enable が設定されている場合、サーバーは Server-Sent Events (SSE) プロトコルを使用して結果を返します。各 SSE イベントは次の形式です。

id:{sequence_number}
      event:result
      :HTTP_STATUS/200
      data:{JSON data}

サンプルレスポンス:

id:1
event:result
:HTTP_STATUS/200
data:{"output":{"sentence":{"sentence_id":1,"sentence_end":true,"end_time":3800,"words":[{"end_time":1040,"punctuation":"","begin_time":760,"fixed":true,"text":"Hello"},{"end_time":1240,"punctuation":",","begin_time":1040,"fixed":true,"text":" World"},{"end_time":1880,"punctuation":"","begin_time":1360,"fixed":true,"text":"this is"},{"end_time":2520,"punctuation":"","begin_time":1880,"fixed":true,"text":"Alibaba"},{"end_time":2840,"punctuation":"","begin_time":2520,"fixed":true,"text":"Speech"},{"end_time":3800,"punctuation":"。","begin_time":2840,"fixed":true,"text":"Lab"}],"begin_time":760,"text":"Hello world, this is Alibaba Speech Lab","channel_id":0},"text":"Hello World, this is Alibaba Speech Lab."},"usage":{"duration":4},"request_id":"fc1582e4-935c-9fc2-a482-a98bf43daa69"}

request_id string

このリクエストの一意な識別子。

output object

出力結果。

プロパティ

text string

現時点で蓄積された完全な文字起こしテキスト。

sentence object

現在の文の詳細。

プロパティ

sentence_id integer

文番号。1 から始まります。

sentence_end boolean

これが文の最終結果かどうかを示します。true の場合、この文の認識が完了しています。

begin_time integer

文の開始時刻 (ミリ秒単位)。

end_time integer

文の終了時刻 (ミリ秒単位)。sentence_endtrue の場合にのみ返されます。

text string

現在の文の文字起こしテキスト。

channel_id integer

音声チャンネル番号。0 から始まります。

words array

単語レベルのタイムスタンプリスト。

プロパティ

text string

単語テキスト。

begin_time integer

単語の開始時刻 (ミリ秒単位)。

end_time integer

単語の終了時刻 (ミリ秒単位)。

punctuation string

単語の後の句読点。ない場合は空文字列。

fixed boolean

単語が確定しているかどうか。false の場合、タイムスタンプは後続のイベントで調整される可能性があります。

usage object

使用量情報。sentence_endtrue の場合にのみ返されます。

プロパティ

duration integer

処理された音声の再生時間 (秒単位)。

SSE ストリーミング結果の処理

ストリーミングモードでは、次の点に注意してください。

  1. 受信した各 SSE イベントについて、data フィールド内の JSON を解析します。

  2. output.sentence.sentence_end をチェックして、現在の文が完了しているかどうかを判断します。値が true の場合、その文の認識が完了しており、単語レベルのタイムスタンプが確定しています。値が false の場合、認識はまだ進行中であり、テキストおよびタイムスタンプは後続のイベントで変更される可能性があります。

  3. usage 情報は、文完了イベントでのみ返されます。これを使用して音声処理の再生時間を追跡します。