Skip to main content

非リアルタイム音声認識 (Qwen-ASR) API リファレンス

Qwen-ASR モデルの入出力パラメーターです。 API は OpenAI 互換または DashScope プロトコルを使用して呼び出します。

モデルの接続タイプ

モデルごとにサポートされる接続タイプは異なります。

モデル

接続タイプ

Qwen3-ASR-Flash-Filetrans

DashScope 非同期呼び出しのみをサポート

Qwen3-ASR-Flash

OpenAI 互換および DashScope 同期

OpenAI 互換

米国リージョンは OpenAI 互換モードをサポートしていません。

URL

  • シンガポール
  • 米国 (バージニア)
  • 中国 (北京)
HTTP リクエストアドレス: POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completionsSDK 呼び出しの base_url: https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1{WorkspaceId} を実際のワークスペース 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 へ

リクエストボディ

modelstring(必須)モデル名。このパラメーターは Qwen3-ASR-Flash モデルにのみ適用されます。messagesarray(必須)メッセージのリスト。

メッセージタイプ

システムメッセージobject (任意)背景テキストやエンティティ用語集など、音声認識のコンテキストを提供するために使用されます。モデルのロール設定やその他の従来のシステムプロンプトの設定はサポートしていません。システムメッセージを使用する場合、messages リストの最初のメッセージである必要があります。
rolestring(必須)system に設定します。
ユーザーメッセージobject(必須)ユーザーがモデルに送信したメッセージ。
contentarray(必須)ユーザーメッセージのコンテンツ。配列には 1 つのメッセージのみが許可されます。

プロパティ

typestring(必須)入力が音声であることを示す input_audio に設定します。input_audioobject(必須)認識対象の音声。このパラメーターの使用方法の詳細については、「リクエスト例」をご参照ください。input_audio.data は、パブリックにアクセス可能な音声ファイル URL または Base64 Data URI を受け付けます。ローカルファイルの絶対パスは直接指定できません。ローカル音声ファイルは、読み込んで Data URI にエンコードしてから送信してください。SDK を使用する場合、音声ファイルが OSS に保存されている場合、oss:// で始まる一時 URL はサポートされません。RESTful API を使用する場合、音声ファイルが OSS に保存されている場合、oss:// で始まる一時 URL はサポートされます。注意:
  • 一時 URL は 48 時間有効です。有効期限が切れると使用できなくなります。本番環境では使用しないでください。
  • ファイルアップロード認証情報 API は 100 QPS にレート制限されており、スケールアップできません。本番環境、高同時実行、またはストレステストシナリオでは使用しないでください。
  • 本番環境では、長期的なファイルの可用性を確保し、レート制限の問題を回避するために、Alibaba Cloud OSS などの安定したストレージサービスを使用することを推奨します。
rolestring(必須)ユーザーメッセージのロール。user に設定します。
asr_optionsobject(任意)特定の機能を有効にするかどうかを指定します。
asr_options は標準の OpenAI パラメーターではありません。OpenAI Python SDK では extra_body を介して渡してください。Node.js SDK では、asr_options をリクエストボディのトップレベルのパラメーターとして渡してください。

プロパティ

language string (任意) デフォルト値なし音声の言語がわかっている場合は、このパラメーターを使用して指定することで、認識精度を向上させることができます。指定できる言語は 1 つだけです。音声の言語が不明な場合や、複数の言語 (中国語、英語、日本語、韓国語の混合など) が含まれる場合は、このパラメーターを指定しないでください。
  • zh:中国語 (標準語、四川語、閩南語、呉語)
  • yue:広東語
  • en:英語
  • ja:日本語
  • de:ドイツ語
  • ko:韓国語
  • ru:ロシア語
  • fr:フランス語
  • pt:ポルトガル語
  • ar:アラビア語
  • it:イタリア語
  • es:スペイン語
  • hi:ヒンディー語
  • id:インドネシア語
  • th:タイ語
  • tr:トルコ語
  • uk:ウクライナ語
  • vi:ベトナム語
  • cs:チェコ語
  • da:デンマーク語
  • fil:フィリピン語
  • fi:フィンランド語
  • is:アイスランド語
  • ms:マレー語
  • no:ノルウェー語
  • pl:ポーランド語
  • sv:スウェーデン語
enable_itnboolean (任意) デフォルト: false逆テキスト正規化 (ITN) を有効にするかどうかを指定します。この機能は、中国語と英語の音声にのみ適用されます。
  • true
  • false (デフォルト)
streamboolean(任意) デフォルト: falseストリーミング出力を使用するかどうかを指定します。「ストリーミング出力」をご参照ください。有効な値:
  • false:モデルは生成後に完全なコンテンツを返します。
  • true:モデルはコンテンツを生成しながら同時に出力します。コンテンツの一部が生成されるたびにデータブロック (チャンク) が返されます。完全な応答を組み立てるには、これらのブロックをリアルタイムで読み取る必要があります。
true に設定すると、リクエストタイムアウトのリスクが軽減されます。stream_optionsobject(任意)ストリーミング出力の設定項目。このパラメーターは、stream が true に設定されている場合にのみ有効です。

プロパティ

include_usageboolean(任意) デフォルト: false応答の最後のデータブロックにトークン消費情報を含めるかどうかを指定します。有効な値:
  • true
  • false (デフォルト)
ストリーミング出力中、トークン消費情報は応答の最後のデータブロックにのみ表示されます。

リクエスト例

OpenAI Python SDK は 1.52.0 以降、Node.js SDK は 4.68.0 以降を使用してください。
  • 入力:音声ファイル URL
  • 入力:Base64 エンコードされた音声ファイル
  • Python SDK
  • Node.js SDK
  • cURL
from openai import OpenAI
import os

try:
    client = OpenAI(
        # The API Key differs between the Singapore/US regions and the Beijing region. Get an API Key: https://www.alibabacloud.com/help/model-studio/get-api-key
        # If you have not configured the environment variable, replace the following line with your Alibaba Cloud Model Studio API Key: api_key = "sk-xxx",
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        # The following is the configuration for the Singapore region. When calling, replace "{WorkspaceId}" with your actual workspace ID. The configuration differs by region.
        base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
    )

    stream_enabled = False  # Whether to enable streaming output
    completion = client.chat.completions.create(
        model="qwen3-asr-flash",
        messages=[
            {
                "content": [
                    {
                        "type": "input_audio",
                        "input_audio": {
                            "data": "{YOUR_AUDIO_URL}"
                        }
                    }
                ],
                "role": "user"
            }
        ],
        stream=stream_enabled,
        # When stream is set to False, the stream_options parameter cannot be set
        # stream_options={"include_usage": True},
        extra_body={
            "asr_options": {
                # "language": "zh",
                "enable_itn": False
            }
        }
    )
    if stream_enabled:
        full_content = ""
        print("The streaming output is:")
        for chunk in completion:
            # If stream_options.include_usage is True, the choices field of the last chunk is an empty list and needs to be skipped (you can get the Token usage via chunk.usage)
            print(chunk)
            if chunk.choices and chunk.choices[0].delta.content:
                full_content += chunk.choices[0].delta.content
        print(f"The complete content is: {full_content}")
    else:
        print(f"The non-streaming output is: {completion.choices[0].message.content}")
except Exception as e:
    print(f"Error message: {e}")

レスポンスボディ

Qwen3-ASR-Flash は OpenAI 互換 API 経由で呼び出した場合、タイムスタンプを返しません。タイムスタンプが必要な場合は、Qwen-Audio-ASR-Filetrans シリーズを使用してください。呼び出し方法については、HTTP APIをご参照ください。
感情ラベルは、ストリーミング出力では choices[].delta.annotations[].emotion、非ストリーミング出力では choices[].message.annotations[].emotion に含まれます。idstringこの呼び出しの一意の識別子。choicesarrayモデルからの出力情報。
finish_reasonstring有効な値:
  • null:出力はまだ生成中です。
  • stop:出力は自然に終了したか、停止条件によって終了しました。
  • length:出力が最大長制限を超えました。
indexintegerchoices 配列内の現在のオブジェクトのインデックス。messageobjectモデルによって出力されたメッセージオブジェクト。

プロパティ

rolestring出力メッセージのロール。assistant に設定されます。contentstring音声認識結果。annotationsarray言語などの出力アノテーション情報。

プロパティ

languagestring認識された音声の言語。language リクエストパラメーターが指定されている場合、この値は指定されたパラメーターと同じです。
  • zh:中国語 (標準語、四川語、閩南語、呉語)
  • yue:広東語
  • en:英語
  • ja:日本語
  • de:ドイツ語
  • ko:韓国語
  • ru:ロシア語
  • fr:フランス語
  • pt:ポルトガル語
  • ar:アラビア語
  • it:イタリア語
  • es:スペイン語
  • hi:ヒンディー語
  • id:インドネシア語
  • th:タイ語
  • tr:トルコ語
  • uk:ウクライナ語
  • vi:ベトナム語
  • cs:チェコ語
  • da:デンマーク語
  • fil:フィリピン語
  • fi:フィンランド語
  • is:アイスランド語
  • ms:マレー語
  • no:ノルウェー語
  • pl:ポーランド語
  • sv:スウェーデン語
typestring音声情報を示す audio_info に設定します。emotionstring感情認識は常に有効で、追加設定は不要です。 認識された音声の感情。以下の感情がサポートされています:
  • surprised:驚き
  • neutral:中立
  • happy:喜び
  • sad: 悲しい
  • disgusted:嫌悪
  • angry:怒り
  • fearful: 恐ろしい
createdintegerリクエストが作成されたときの UNIX タイムスタンプ (秒単位)。modelstringこのリクエストに使用されたモデル。objectstring常に chat.completion です。usageobjectこのリクエストのトークン消費情報。

プロパティ

completion_tokens integerモデル出力のトークン数。completion_tokens_details objectモデル出力のトークンの詳細な情報。
text_tokens integerモデル出力テキストのトークン数。
prompt_tokens object入力のトークン数。prompt_tokens_details object入力のトークンの詳細な情報。
audio_tokens integer入力音声の長さをトークンで表したもの。音声からトークンへの変換ルール:音声 1 秒ごとに 25 トークンに変換されます。1 秒未満の持続時間は 1 秒としてカウントされます。text_tokens integerこのパラメーターは無視できます。
seconds integer音声の持続時間 (秒)。total_tokens integer入出力トークンの合計数 (total_tokens = completion_tokens + prompt_tokens)。
{
    "choices": [
        {
            "finish_reason": "stop",
            "index": 0,
            "message": {
                "annotations": [
                    {
                        "emotion": "neutral",
                        "language": "zh",
                        "type": "audio_info"
                    }
                ],
                "content": "Welcome to Alibaba Cloud.",
                "role": "assistant"
            }
        }
    ],
    "created": 1767683986,
    "id": "chatcmpl-487abe5f-d4f2-9363-a877-xxxxxxx",
    "model": "qwen3-asr-flash",
    "object": "chat.completion",
    "usage": {
        "completion_tokens": 12,
        "completion_tokens_details": {
            "text_tokens": 12
        },
        "prompt_tokens": 42,
        "prompt_tokens_details": {
            "audio_tokens": 42,
            "text_tokens": 0
        },
        "seconds": 1,
        "total_tokens": 54
    }
}

DashScope 同期

URL

  • シンガポール
  • 米国 (バージニア)
  • 中国 (北京)
HTTP リクエストアドレス: POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generationSDK 呼び出しの base_url: https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1{WorkspaceId} を実際のワークスペース 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 へ

リクエストボディ

modelstring(必須)モデル名。このパラメーターは Qwen3-ASR-Flash モデルにのみ適用されます。messagesarray(必須)メッセージのリスト。
HTTP 呼び出しを行う場合、messages を input オブジェクトに配置します。

メッセージタイプ

システムメッセージobject (任意)背景テキストやエンティティ用語集など、音声認識のコンテキストを提供するために使用されます。モデルのロール設定やその他の従来のシステムプロンプトの設定はサポートしていません。システムメッセージを設定する場合、メッセージリストの先頭に配置してください。Qwen3-ASR-Flash のみがこのパラメーターをサポートします。
rolestring(必須)system に設定します。
ユーザーメッセージobject(必須)ユーザーがモデルに送信したメッセージ。
contentarray(必須)ユーザーメッセージのコンテンツ。配列には 1 つのメッセージのみが許可されます。

プロパティ

audiostring(必須)認識対象の音声。このパラメーターの使用方法の詳細については、「リクエスト例」をご参照ください。DashScope を使用する場合、Qwen3-ASR-Flash モデルは、Base64 エンコードされたファイル、ローカルファイルの絶対パス、およびパブリックネットワーク経由でアクセス可能な音声ファイルの URL の 3 つの入力形式をサポートします。SDK を使用する場合、音声ファイルが OSS に保存されている場合、oss:// で始まる一時 URL はサポートされません。RESTful API を使用する場合、音声ファイルが OSS に保存されている場合、oss:// で始まる一時 URL はサポートされます。注意:
  • 一時 URL は 48 時間有効です。有効期限が切れると使用できなくなります。本番環境では使用しないでください。
  • ファイルアップロード認証情報 API は 100 QPS にレート制限されており、スケールアップできません。本番環境、高同時実行、またはストレステストシナリオでは使用しないでください。
  • 本番環境では、長期的なファイルの可用性を確保し、レート制限の問題を回避するために、Alibaba Cloud OSS などの安定したストレージサービスを使用することを推奨します。
rolestring(必須)ユーザーメッセージのロール。user に設定します。
asr_optionsobject(任意)特定の機能を有効にするかどうかを指定します。このパラメーターは Qwen3-ASR-Flash モデルでのみサポートされます。

プロパティ

language string (任意) デフォルト値なし音声の言語がわかっている場合は、このパラメーターを使用して指定することで、認識精度を向上させることができます。指定できる言語は 1 つだけです。音声の言語が不明な場合や、複数の言語 (中国語、英語、日本語、韓国語の混合など) が含まれる場合は、このパラメーターを指定しないでください。
  • zh:中国語 (標準語、四川語、閩南語、呉語)
  • yue:広東語
  • en:英語
  • ja:日本語
  • de:ドイツ語
  • ko:韓国語
  • ru:ロシア語
  • fr:フランス語
  • pt:ポルトガル語
  • ar:アラビア語
  • it:イタリア語
  • es:スペイン語
  • hi:ヒンディー語
  • id:インドネシア語
  • th:タイ語
  • tr:トルコ語
  • uk:ウクライナ語
  • vi:ベトナム語
  • cs:チェコ語
  • da:デンマーク語
  • fil:フィリピン語
  • fi:フィンランド語
  • is:アイスランド語
  • ms:マレー語
  • no:ノルウェー語
  • pl:ポーランド語
  • sv:スウェーデン語
enable_itnboolean (任意) デフォルト: false逆テキスト正規化 (ITN) を有効にするかどうかを指定します。この機能は、中国語と英語の音声にのみ適用されます。
  • true
  • false (デフォルト)

リクエスト例

Qwen3-ASR-Flash は、最長 5 分間の録音をサポートし、入力として公開音声ファイルの URL またはローカルファイルのアップロードを受け付け、ストリーミングモードで認識結果を返すことができます。
  • 入力:音声ファイルの URL
  • 入力:Base64 エンコードされた音声ファイル
  • 入力:ローカル音声ファイルの絶対パス
  • ストリーミング出力
curl -X POST "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation" \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen3-asr-flash",
    "input": {
        "messages": [
            {
                "content": [
                    {
                        "audio": "{YOUR_AUDIO_URL}"
                    }
                ],
                "role": "user"
            }
        ]
    },
    "parameters": {
        "asr_options": {
            "enable_itn": false
        }
    }
}'

レスポンスボディ

request_idstringこの呼び出しの一意の識別子。
Java SDK によって返されるパラメーターは requestId.
outputobject呼び出し結果情報。

プロパティ

choicesarrayモデル出力。result_format が message の場合に返されます。
finish_reasonstring有効な値:
  • null:出力はまだ生成中です。
  • stop:出力は自然に終了したか、停止条件によって終了しました。
  • length:出力が最大長制限を超えました。
messageobjectモデルによって出力されたメッセージオブジェクト。

プロパティ

rolestring出力メッセージのロール。assistant に設定されます。contentarray出力メッセージのコンテンツ。

プロパティ

textstring音声認識結果。
annotationsarray言語などの出力アノテーション情報。

プロパティ

languagestring認識された音声の言語。language リクエストパラメーターが指定されている場合、この値は指定されたパラメーターと同じです。
  • zh:中国語 (標準語、四川語、閩南語、呉語)
  • yue:広東語
  • en:英語
  • ja:日本語
  • de:ドイツ語
  • ko:韓国語
  • ru:ロシア語
  • fr:フランス語
  • pt:ポルトガル語
  • ar:アラビア語
  • it:イタリア語
  • es:スペイン語
  • hi:ヒンディー語
  • id:インドネシア語
  • th:タイ語
  • tr:トルコ語
  • uk:ウクライナ語
  • vi:ベトナム語
  • cs:チェコ語
  • da:デンマーク語
  • fil:フィリピン語
  • fi:フィンランド語
  • is:アイスランド語
  • ms:マレー語
  • no:ノルウェー語
  • pl:ポーランド語
  • sv:スウェーデン語
typestring音声情報を示す audio_info に設定します。emotionstring感情認識は常に有効で、追加設定は不要です。 認識された音声の感情。以下の感情がサポートされています:
  • surprised:驚き
  • neutral:中立
  • happy:喜び
  • sad:悲しみ
  • disgusted:嫌悪
  • angry:怒り
  • fearful:恐怖
usageobjectこのリクエストのトークン消費情報。

プロパティ

input_tokens_details objectQwen3-ASR-Flash の入力コンテンツの長さをトークンで表したもの。
text_tokens integerこのパラメーターは無視できます。
output_tokens_details objectQwen3-ASR-Flash からの出力コンテンツの長さをトークンで表したもの。
text_tokens integerQwen3-ASR-Flash によって出力された認識テキストの長さをトークンで表したもの。
seconds integerQwen3-ASR-Flash の音声持続時間 (秒)。
{
    "output": {
        "choices": [
            {
                "finish_reason": "stop",
                "message": {
                    "annotations": [
                        {
                            "language": "zh",
                            "type": "audio_info",
                            "emotion": "neutral"
                        }
                    ],
                    "content": [
                        {
                            "text": "Welcome to Alibaba Cloud."
                        }
                    ],
                    "role": "assistant"
                }
            }
        ]
    },
    "usage": {
        "input_tokens_details": {
            "text_tokens": 0
        },
        "output_tokens_details": {
            "text_tokens": 6
        },
        "seconds": 1
    },
    "request_id": "568e2bf0-d6f2-97f8-9f15-a57b11dc6977"
}

DashScope 非同期呼び出し

プロセスの説明

非同期呼び出しは、長時間の音声ファイルや時間のかかるタスク向けに設計されています。リクエストのタイムアウトを防ぐために、「送信-ポーリング」の 2 段階のプロセスを使用します:
  1. ステップ 1:タスクの送信
    • クライアントは非同期処理リクエストを開始します。
    • リクエストを検証した後、サーバーはタスクをすぐに実行しません。代わりに、タスクが正常に作成されたことを示す一意の task_id を返します。
  2. ステップ 2:結果の取得
    • クライアントは task_id を使用して結果クエリ API をポーリングします。
    • タスクが完了すると、結果クエリ API は最終的な認識結果を返します。
統合環境に基づいて、SDK を使用するか、RESTful API を直接呼び出すかを選択できます。
  • SDK を使用します。サンプルコードについては、「リクエスト例」をご参照ください。リクエストパラメーターについては、タスクの送信操作のリクエストボディをご参照ください。応答については、「非同期呼び出し結果の説明」をご参照ください。 SDK は、基盤となる API 呼び出しの詳細を自動的に処理します。
    1. タスクの送信:async_call() (Python) または asyncCall() (Java) メソッドを呼び出してタスクを送信します。このメソッドは、task_id を含むタスクオブジェクトを返します。
    2. 結果の取得:前のステップで返されたタスクオブジェクトまたは task_id を使用して、fetch() メソッドを呼び出して結果を取得します。SDK は、タスクが完了するかタイムアウトするまで、内部のポーリングロジックを自動的に処理します。
  • RESTful API を使用する RESTful API を直接呼び出すことで、最大限の柔軟性が得られます。
    1. タスクを送信します。リクエストが成功した場合、レスポンスボディには task_id が含まれます。
    2. 前のステップの task_id を使用して、タスク実行結果を取得します。

完全な例

  • HTTP
  • Java SDK
  • Python SDK
  • 認識結果のダウンロード
Java
import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;
import okhttp3.*;

import java.io.IOException;
import java.util.concurrent.TimeUnit;

public class Main {
    // The following is the configuration for the Singapore region. When calling, replace "{WorkspaceId}" with your actual workspace ID. The configuration differs by region.
    private static final String API_URL_SUBMIT = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/asr/transcription";
    // The following is the configuration for the Singapore region. When calling, replace "{WorkspaceId}" with your actual workspace ID. The configuration differs by region.
    private static final String API_URL_QUERY = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/";
    private static final Gson gson = new Gson();

    public static void main(String[] args) {
        // The API Key differs between the Singapore and Beijing regions. Get an API Key: https://www.alibabacloud.com/help/model-studio/get-api-key
        // If you have not configured the environment variable, replace the following line with your Alibaba Cloud Model Studio API Key: String apiKey = "sk-xxx"
        String apiKey = System.getenv("DASHSCOPE_API_KEY");

        OkHttpClient client = new OkHttpClient();

        // 1. Submit the task
        /*String payloadJson = """
                {
                    "model": "qwen3-asr-flash-filetrans",
                    "input": {
                        "file_url": "{YOUR_AUDIO_URL}"
                    },
                    "parameters": {
                        "channel_id": [0],
                        "enable_itn": false,
                        "language": "zh"
                    }
                }
                """;*/
        String payloadJson = """
                {
                    "model": "qwen3-asr-flash-filetrans",
                    "input": {
                        "file_url": "{YOUR_AUDIO_URL}"
                    },
                    "parameters": {
                        "channel_id": [0],
                        "enable_itn": false,
                        "enable_words": true
                    }
                }
                """;

        RequestBody body = RequestBody.create(payloadJson, MediaType.get("application/json; charset=utf-8"));
        Request submitRequest = new Request.Builder()
                .url(API_URL_SUBMIT)
                .addHeader("Authorization", "Bearer " + apiKey)
                .addHeader("Content-Type", "application/json")
                .addHeader("X-DashScope-Async", "enable")
                .post(body)
                .build();

        String taskId = null;

        try (Response response = client.newCall(submitRequest).execute()) {
            if (response.isSuccessful() && response.body() != null) {
                String respBody = response.body().string();
                ApiResponse apiResp = gson.fromJson(respBody, ApiResponse.class);
                if (apiResp.output != null) {
                    taskId = apiResp.output.taskId;
                    System.out.println("Task submitted, task_id: " + taskId);
                } else {
                    System.out.println("Submission response content: " + respBody);
                    return;
                }
            } else {
                System.out.println("Task submission failed! HTTP code: " + response.code());
                if (response.body() != null) {
                    System.out.println(response.body().string());
                }
                return;
            }
        } catch (IOException e) {
            e.printStackTrace();
            return;
        }

        // 2. Poll the task status
        boolean finished = false;
        while (!finished) {
            try {
                TimeUnit.SECONDS.sleep(2);  // Wait 2 seconds before querying again
            } catch (InterruptedException e) {
                Thread.currentThread().interrupt();
                return;
            }

            String queryUrl = API_URL_QUERY + taskId;
            Request queryRequest = new Request.Builder()
                    .url(queryUrl)
                    .addHeader("Authorization", "Bearer " + apiKey)
                    .addHeader("Content-Type", "application/json")
                    .get()
                    .build();

            try (Response response = client.newCall(queryRequest).execute()) {
                if (response.body() != null) {
                    String queryResponse = response.body().string();
                    ApiResponse apiResp = gson.fromJson(queryResponse, ApiResponse.class);

                    if (apiResp.output != null && apiResp.output.taskStatus != null) {
                        String status = apiResp.output.taskStatus;
                        System.out.println("Current task status: " + status);
                        if ("SUCCEEDED".equalsIgnoreCase(status)
                                || "FAILED".equalsIgnoreCase(status)
                                || "UNKNOWN".equalsIgnoreCase(status)) {
                            finished = true;
                            System.out.println("Task completed, final result: ");
                            System.out.println(queryResponse);
                        }
                    } else {
                        System.out.println("Query response content: " + queryResponse);
                    }
                }
            } catch (IOException e) {
                e.printStackTrace();
                return;
            }
        }
    }

    static class ApiResponse {
        @SerializedName("request_id")
        String requestId;
        Output output;
    }

    static class Output {
        @SerializedName("task_id")
        String taskId;
        @SerializedName("task_status")
        String taskStatus;
    }
}

タスクの送信

URL

  • シンガポール
  • 中国 (北京)
HTTP リクエストアドレス: POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/asr/transcriptionSDK 呼び出しの base_url: https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1{WorkspaceId} を実際のワークスペース 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 へ

リクエストボディ

modelstring(必須)モデル名。このパラメーターは Qwen3-ASR-Flash-Filetrans モデルにのみ適用されます。inputobject(必須)

プロパティ

file_url string(必須)認識対象の音声ファイルの URL。URL はパブリックネットワーク経由でアクセス可能である必要があります。SDK を使用する場合、音声ファイルが OSS に保存されている場合、oss:// で始まる一時 URL はサポートされません。RESTful API を使用する場合、音声ファイルが OSS に保存されている場合、oss:// で始まる一時 URL はサポートされます。注意:
  • 一時 URL は 48 時間有効です。有効期限が切れると使用できなくなります。本番環境では使用しないでください。
  • ファイルアップロード認証情報 API は 100 QPS にレート制限されており、スケールアップできません。本番環境、高同時実行、またはストレステストシナリオでは使用しないでください。
  • 本番環境では、長期的なファイルの可用性を確保し、レート制限の問題を回避するために、Alibaba Cloud OSS などの安定したストレージサービスを使用することを推奨します。
parametersobject(任意)

プロパティ

language string (任意) デフォルト値なし音声の言語がわかっている場合は、このパラメーターを使用して指定することで、認識精度を向上させることができます。指定できる言語は 1 つだけです。音声の言語が不明な場合や、複数の言語 (中国語、英語、日本語、韓国語の混合など) が含まれる場合は、このパラメーターを指定しないでください。
  • zh:中国語 (標準語、四川語、閩南語、呉語)
  • yue:広東語
  • en:英語
  • ja:日本語
  • de:ドイツ語
  • ko:韓国語
  • ru:ロシア語
  • fr:フランス語
  • pt:ポルトガル語
  • ar:アラビア語
  • it:イタリア語
  • es:スペイン語
  • hi:ヒンディー語
  • id:インドネシア語
  • th:タイ語
  • tr:トルコ語
  • uk:ウクライナ語
  • vi:ベトナム語
  • cs:チェコ語
  • da:デンマーク語
  • fil:フィリピン語
  • fi:フィンランド語
  • is:アイスランド語
  • ms:マレー語
  • no:ノルウェー語
  • pl:ポーランド語
  • sv:スウェーデン語
enable_itnboolean (任意) デフォルト: false逆テキスト正規化 (ITN) を有効にするかどうかを指定します。この機能は、中国語と英語の音声にのみ適用されます。
  • true
  • false (デフォルト)
enable_wordsboolean(任意) デフォルト: false単語レベルのタイムスタンプを返すかどうかを指定します:
  • false:文レベルのタイムスタンプを返します。
  • true:単語レベルのタイムスタンプを返します。 単語レベルのタイムスタンプは、中国語、英語、日本語、韓国語、ドイツ語、フランス語、スペイン語、イタリア語、ポルトガル語、ロシア語のみでサポートされています。他の言語の精度は保証できません。
このパラメーターは、文のセグメンテーションルールにも影響します:
  • false:文のセグメンテーションは音声アクティビティ検出 (VAD) に基づいています。
  • true:文のセグメンテーションは VAD と句読点に基づいています。
channel_idarray(任意) デフォルト: [0]マルチトラック音声ファイルで認識するオーディオトラックのインデックスを指定します。インデックスは 0 から始まります。たとえば、[0] は最初のオーディオトラックが認識されることを示し、[0, 1] は最初と 2 番目のオーディオトラックが同時に認識されることを示します。このパラメーターを省略した場合、デフォルトで最初のオーディオトラックが処理されます。
指定された各オーディオトラックは個別に課金されます。たとえば、1 つのファイルに対して [0, 1] をリクエストすると、2 回の個別の料金が発生します。
  • cURL
  • Java
  • Python
# ======= Important =======
# The following configuration is for the Singapore region. Replace "{WorkspaceId}" with your actual workspace ID. The configuration varies by region.
# The API keys for the Singapore and Beijing regions are different. For more information about how to obtain an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
# === Delete this comment before running the command. ===

curl --location --request POST '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": "qwen3-asr-flash-filetrans",
    "input": {
        "file_url": "{YOUR_AUDIO_URL}"
    },
    "parameters": {
        "channel_id":[
            0
        ],
        "enable_itn": false
    }
}'

レスポンスボディ

request_idstringこの呼び出しの一意の識別子。outputobject呼び出し結果情報。

プロパティ

task_idstringタスク ID。この ID は、音声認識タスクをクエリするための API のリクエストパラメーターとして渡されます。task_statusstringタスクのステータス:
  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • UNKNOWN:タスクが存在しないか、ステータスが不明です。
{
    "request_id": "92e3decd-0c69-47a8-************",
    "output": {
        "task_id": "8fab76d0-0eed-4d20-************",
        "task_status": "PENDING"
    }
}

タスク実行結果の取得

URL

  • シンガポール
  • 中国 (北京)
HTTP リクエストアドレス: GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}SDK 呼び出しの base_url: https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1{WorkspaceId} を実際のワークスペース 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 へ

リクエストボディ

task_idstring(必須)タスク ID。タスクの送信操作の応答から task_id を渡して、音声認識結果をクエリします。
  • cURL
  • Java
  • Python
# ======= Important =======
# The following configuration is for the Singapore region. Replace "{WorkspaceId}" with your actual workspace ID. The configuration varies by region.
# The API keys for the Singapore and Beijing regions are different. For more information about how to obtain an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
# === Delete this comment before running the command. ===

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

レスポンスボディ

request_idstringこの呼び出しの一意の識別子。outputobject呼び出し結果情報。

プロパティ

task_idstringタスク ID。この ID は、音声認識タスクをクエリするための API のリクエストパラメーターとして渡されます。task_statusstringタスクのステータス:
  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • UNKNOWN:タスクが存在しないか、ステータスが不明です。
resultobject音声認識結果。
transcription_urlstring認識結果ファイルのダウンロード URL。リンクは 24 時間有効です。リンクの有効期限が切れると、以前の URL を使用してタスクをクエリしたり、結果をダウンロードしたりすることはできません。
認識結果は JSON ファイルとして保存されます。このリンクからファイルをダウンロードするか、HTTP リクエストを使用してファイルの内容を直接読み取ることができます。
詳細については、「非同期呼び出し結果の説明」をご参照ください。
submit_timestringタスクが送信された時刻。schedule_timestringタスクがスケジュールされた時刻、つまり実行の開始時刻。end_timestringタスクが終了した時刻。task_metricsobjectタスクメトリック。サブタスクのステータスに関する統計情報が含まれます。
TOTALintegerサブタスクの総数。SUCCEEDEDinteger成功したサブタスクの数。FAILEDinteger失敗したサブタスクの数。
codestringエラーコード。これはタスクが失敗した場合にのみ返されます。messagestringエラーメッセージ。これはタスクが失敗した場合にのみ返されます。usageobjectこのリクエストのトークン消費情報。
seconds integerQwen3-ASR-Flash の音声持続時間 (秒)。
{
    "request_id": "6769df07-2768-4fb0-ad59-************",
    "output": {
        "task_id": "9be1700a-0f8e-4778-be74-************",
        "task_status": "RUNNING",
        "submit_time": "2025-10-27 14:19:31.150",
        "scheduled_time": "2025-10-27 14:19:31.233",
        "task_metrics": {
            "TOTAL": 1,
            "SUCCEEDED": 0,
            "FAILED": 0
        }
    }
}

非同期呼び出し結果の説明

file_url string認識された音声ファイルの URL。audio_infoobject認識された音声ファイルに関する情報。

プロパティ

format string音声フォーマット。sample_rate integer音声サンプリングレート。
transcriptsarray完全な認識結果のリスト。各要素は、オーディオトラックの認識されたコンテンツに対応します。

プロパティ

channel_idintegerオーディオトラックのインデックス。0 から始まります。textstring認識されたテキスト。sentencesobject文レベルの認識結果のリスト。

プロパティ

begin_time integer文の開始タイムスタンプ (ミリ秒)。end_time integer文の終了タイムスタンプ (ミリ秒)。textstring認識されたテキスト。sentence_idinteger文のインデックス。0 から始まります。languagestring認識された音声の言語。language リクエストパラメーターが指定されている場合、この値は指定されたパラメーターと同じです。
  • zh:中国語 (標準語、四川語、閩南語、呉語)
  • yue:広東語
  • en:英語
  • ja:日本語
  • de:ドイツ語
  • ko:韓国語
  • ru:ロシア語
  • fr:フランス語
  • pt:ポルトガル語
  • ar:アラビア語
  • it:イタリア語
  • es:スペイン語
  • hi:ヒンディー語
  • id:インドネシア語
  • th:タイ語
  • tr:トルコ語
  • uk:ウクライナ語
  • vi:ベトナム語
  • cs:チェコ語
  • da:デンマーク語
  • fil:フィリピン語
  • fi:フィンランド語
  • is:アイスランド語
  • ms:マレー語
  • no:ノルウェー語
  • pl:ポーランド語
  • sv:スウェーデン語
emotionstring感情認識は常に有効で、追加設定は不要です。 認識された音声の感情。以下の感情がサポートされています:
  • surprised
  • neutral
  • happy
  • sad
  • disgusted
  • angry
  • fearful
wordsobject単語レベルの認識結果のリスト。この結果は、enable_words リクエストパラメーターが true に設定されている場合に表示されます。

プロパティ

begin_time integer開始タイムスタンプ (ミリ秒)。end_time integer終了タイムスタンプ (ミリ秒)。textstring認識されたテキスト。punctuationstring句読点。
{
    "file_url": "https://***.wav",
    "audio_info": {
        "format": "wav",
        "sample_rate": 16000
    },
    "transcripts": [
        {
            "channel_id": 0,
            "text": "Senior staff, Principal Doris Jackson, Wakefield faculty, and of course my fellow classmates.I am honored to have been chosen to speak before my classmates along with the students across America today.",
            "sentences": [
                {
                    "sentence_id": 0,
                    "begin_time": 240,
                    "end_time": 6720,
                    "language": "en",
                    "emotion": "happy",
                    "text": "Senior staff, Principal Doris Jackson, Wakefield faculty, and of course my fellow classmates.",
                    "words": [
                        {
                            "begin_time": 240,
                            "end_time": 1120,
                            "text": "Senior ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 1120,
                            "end_time": 1200,
                            "text": "staff",
                            "punctuation": ","
                        },
                        {
                            "begin_time": 1680,
                            "end_time": 1920,
                            "text": " Principal ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 2000,
                            "end_time": 2320,
                            "text": "Doris ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 2320,
                            "end_time": 2960,
                            "text": "Jackson",
                            "punctuation": ","
                        },
                        {
                            "begin_time": 3360,
                            "end_time": 3840,
                            "text": " Wakefield ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 3840,
                            "end_time": 4480,
                            "text": "faculty",
                            "punctuation": ","
                        },
                        {
                            "begin_time": 4800,
                            "end_time": 4960,
                            "text": " and ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 4960,
                            "end_time": 5040,
                            "text": "of ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 5040,
                            "end_time": 5520,
                            "text": "course ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 5520,
                            "end_time": 5680,
                            "text": "my ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 5760,
                            "end_time": 6000,
                            "text": "fellow ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 6000,
                            "end_time": 6720,
                            "text": "classmates",
                            "punctuation": "."
                        }
                    ]
                },
                {
                    "sentence_id": 1,
                    "begin_time": 12268,
                    "end_time": 17388,
                    "language": "en",
                    "emotion": "neutral",
                    "text": "I am honored to have been chosen to speak before my classmates along with the students across America today.",
                    "words": [
                        {
                            "begin_time": 12268,
                            "end_time": 12428,
                            "text": "I ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 12428,
                            "end_time": 12508,
                            "text": "am ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 12588,
                            "end_time": 12828,
                            "text": "honored ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 12908,
                            "end_time": 12908,
                            "text": "to ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 12908,
                            "end_time": 13068,
                            "text": "have ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 13068,
                            "end_time": 13228,
                            "text": "been ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 13228,
                            "end_time": 13628,
                            "text": "chosen ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 13628,
                            "end_time": 13708,
                            "text": "to ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 13708,
                            "end_time": 14028,
                            "text": "speak ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 14028,
                            "end_time": 14268,
                            "text": "before ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 14268,
                            "end_time": 14428,
                            "text": "my ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 14428,
                            "end_time": 15148,
                            "text": "classmates ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 15308,
                            "end_time": 15468,
                            "text": "as ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 15468,
                            "end_time": 15628,
                            "text": "well ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 15628,
                            "end_time": 15788,
                            "text": "as ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 15788,
                            "end_time": 15788,
                            "text": "the ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 15788,
                            "end_time": 16188,
                            "text": "students ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 16188,
                            "end_time": 16588,
                            "text": "across ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 16588,
                            "end_time": 16988,
                            "text": "America ",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 16988,
                            "end_time": 17388,
                            "text": "today",
                            "punctuation": "."
                        }
                    ]
                }
            ]
        }
    ]
}