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

Alibaba Cloud Model Studio:RESTful API

最終更新日:Mar 25, 2026

本トピックでは、FunAudio-ASR RESTful API を使用した音声ファイル認識におけるパラメーターおよび API の詳細について説明します。

ユーザーガイド: モデルの概要および選択に関する推奨事項については、「音声ファイル認識 — Fun-ASR/Paraformer」をご参照ください。

本サービスは、タスク送信 APIタスク照会 API を提供します。まずタスクを送信し、その後タスクが完了するまで照会 API をポーリングしてください。

前提条件

Model Studio を有効化済みであり、API キーを作成済みである必要があります。環境変数としてエクスポート(ハードコーディングしない)することで、セキュリティリスクを防止してください。

説明

一時的なアクセスまたは高リスク操作(機密データへのアクセス/削除)を厳密に制御する必要がある場合は、一時認証トークン を使用してください。

長期使用の API キーと比較して、一時トークンはより安全(有効期間:60 秒)であり、API キーの漏洩リスクを低減します。

一時トークンを使用するには、コード内の認証に用いる API キーを一時認証トークンに置き換えてください。

モデルの可用性

国際

国際デプロイモード」では、エンドポイントおよびデータストレージは シンガポールリージョンに配置されます。モデル推論の計算リソースは、中国本土を除くグローバルに動的にスケジュールされます。

モデル

バージョン

単価

無料クォータ (注)

fun-asr

現在は fun-asr-2025-11-07 です。

Stable

$0.000035/秒

36,000 秒(10 時間)

有効期間:90 日

fun-asr-2025-11-07

fun-asr-2025-08-25 と比較して、遠距離 VAD の精度が向上しています。

Snapshot

fun-asr-2025-08-25

fun-asr-mtl

現在は fun-asr-mtl-2025-08-25 です。

Stable

fun-asr-mtl-2025-08-25

Snapshot

  • 対応言語:

    • fun-asr および fun-asr-2025-11-07:標準中国語、広東語、呉語、閩南語、客家語、贛語、湘語、晋語。また、中原、西南、冀魯、江淮、蘭銀、膠遼、東北、北京、香港・台湾地域(河南省、陝西省、湖北省、四川省、重慶市、雲南省、貴州省、広東省、広西チワン族自治区、河北省、天津市、山東省、安徽省、南京市、江蘇省、杭州市、甘粛省、寧夏回族自治区を含む)の標準中国語アクセントにも対応しています。さらに英語および日本語も対応しています。

    • fun-asr-2025-08-25:標準中国語および英語。

    • fun-asr-mtl および fun-asr-mtl-2025-08-25:標準中国語、広東語、英語、日本語、韓国語、ベトナム語、インドネシア語、タイ語、マレー語、フィリピン語、アラビア語、ヒンディー語、ブルガリア語、クロアチア語、チェコ語、デンマーク語、オランダ語、エストニア語、フィンランド語、ギリシャ語、ハンガリー語、アイルランド語、ラトビア語、リトアニア語、マルタ語、ポーランド語、ポルトガル語、ルーマニア語、スロバキア語、スロベニア語、スウェーデン語。

  • 対応サンプルレート: 任意

  • 対応音声フォーマット: aac、amr、avi、flac、flv、m4a、mkv、mov、mp3、mp4、mpeg、ogg、opus、wav、webm、wma、wmv

中国本土

中国本土デプロイモード」では、エンドポイントおよびデータストレージは 北京リージョンに配置されます。モデル推論の計算リソースは中国本土内に限定されます。

モデル

バージョン

単価

無料クォータ (注)

fun-asr

現在は fun-asr-2025-11-07 です。

Stable

$0.000032 / 秒

無料クォータはありません。

fun-asr-2025-11-07

fun-asr-2025-08-25 と比較して、遠距離 VAD の精度が向上しています。

Snapshot

fun-asr-2025-08-25

fun-asr-mtl

現在は fun-asr-mtl-2025-08-25 です。

Stable

fun-asr-mtl-2025-08-25

Snapshot

  • 対応言語:

    • fun-asr および fun-asr-2025-11-07:標準中国語、広東語、呉語、閩南語、客家語、贛語、湘語、晋語。また、中原、西南、冀魯、江淮、蘭銀、膠遼、東北、北京、香港・台湾地域(河南省、陝西省、湖北省、四川省、重慶市、雲南省、貴州省、広東省、広西チワン族自治区、河北省、天津市、山東省、安徽省、南京市、江蘇省、杭州市、甘粛省、寧夏回族自治区を含む)の標準中国語アクセントにも対応しています。さらに英語および日本語も対応しています。

    • fun-asr-2025-08-25:標準中国語および英語。

    • fun-asr-mtl および fun-asr-mtl-2025-08-25:標準中国語、広東語、英語、日本語、韓国語、ベトナム語、インドネシア語、タイ語、マレー語、フィリピン語、アラビア語、ヒンディー語、ブルガリア語、クロアチア語、チェコ語、デンマーク語、オランダ語、エストニア語、フィンランド語、ギリシャ語、ハンガリー語、アイルランド語、ラトビア語、リトアニア語、マルタ語、ポーランド語、ポルトガル語、ルーマニア語、スロバキア語、スロベニア語、スウェーデン語。

  • 対応サンプルレート: 任意

  • 対応音声フォーマット: aac、amr、avi、flac、flv、m4a、mkv、mov、mp3、mp4、mpeg、ogg、opus、wav、webm、wma、wmv

制限事項

入力は、パブリックネットワークからアクセス可能なファイル URL(HTTP/HTTPS)である必要があります。例:https://your-domain.com/file.mp3ローカルファイルおよび Base64 エンコーディングされた音声はサポートされていません

SDKを使用して、OSSに保存されているファイルにアクセスする場合、oss:// プレフィックスを持つ一時URLを使用することはできません。

RESTful API を使用して OSS に保存されたファイルにアクセスする場合、oss:// プレフィックスを含む一時的な URL を使用できます:

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

  • アップロード認証情報取得 API の呼び出し上限は 100 QPS であり、スケーリングはサポートされません。本番環境、高同時実行数シナリオ、ストレステストシナリオでは使用しないでください。

  • 本番環境では、ファイルの長期的な可用性を確保し、レート制限の問題を回避するために、OSS などの安定したストレージサービスをご利用ください。

URL は file_urls パラメーターで指定します。1 回のリクエストで最大 100 個の URL を指定できます。

  • 対応音声フォーマット

    aacamraviflacflvm4amkvmovmp3mp4mpegoggopuswavwebmwmawmv

    重要

    音声および動画フォーマットは多種多様であり、すべてのフォーマットを網羅的にテストすることは技術的に困難です。本 API では、すべてのフォーマットが正しく認識されることを保証できません。ご使用のファイルを実際にテストし、期待通りの音声認識結果が得られることを確認してください。

  • 音声サンプルレート: 任意

  • 音声ファイルサイズおよび再生時間

    最大ファイルサイズは 2 GB、最大再生時間は 12 時間です。これらの制限を超えるファイルについては、アップロード前に分割または圧縮を行ってください。ファイルの前処理に関するベストプラクティスについては、「ファイル転写効率を向上させるための動画ファイルの前処理(音声ファイル認識シナリオ向け)」をご参照ください。

  • バッチ処理の音声ファイル数

    1 回のリクエストで最大 100 個のファイル URL を指定できます。

  • 認識可能な言語: fun-asr は中国語および英語をサポートします。fun-asr-mtl-2025-08-25 は中国語、広東語、英語、日本語、タイ語、ベトナム語、インドネシア語をサポートします。

  • API 呼び出し方法の制限

    フロントエンドから直接 API を呼び出すことはできません。代わりにバックエンドプロキシをご利用ください。

タスク送信 API

基本情報

説明

音声認識タスクを送信します。

URL

以下はシンガポールリージョン向けの URL です。北京リージョンのモデルを使用する場合は、上記の URL を置き換えてください:https://dashscope.aliyuncs.com/api/v1/services/audio/asr/transcription

https://dashscope-intl.aliyuncs.com/api/v1/services/audio/asr/transcription

リクエストメソッド

POST

リクエストヘッダー

Authorization: Bearer {api-key} // これを実際の API キーに置き換えてください
Content-Type: application/json
X-DashScope-Async: enable // このヘッダーは必須です。省略するとタスクが送信されません。

メッセージ本文

以下のメッセージ本文には、すべてのリクエストパラメーターが含まれています。必要に応じて、任意のフィールドを省略できます:

{
    "model":"fun-asr", // モデル名。必須。
    "input":{
        "file_urls":[
            "https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_female2.wav",
            "https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_male2.wav"
        ] // 認識対象のファイル。必須。
    },
    "parameters":{ 
        "channel_id":[
            0
        ], // 音声トラックのインデックス。任意。
        "special_word_filter": "xxx", // 機密ワード。任意。
        "diarization_enabled":false, // 自動話者分離。任意。
        "speaker_count": 2 // 話者の参考数。任意。
    }
}

リクエストパラメーター

リクエストサンプルを表示

タスク送信 API を呼び出す cURL サンプルを以下に示します:

# ======= 重要 =======
# 以下はシンガポールリージョン向けの URL です。北京リージョンのモデルを使用する場合は、URL を置き換えてください:https://dashscope.aliyuncs.com/api/v1/services/audio/asr/transcription
# シンガポールリージョンおよび北京リージョンの API キーは異なります。API キーの取得方法については、「https://www.alibabacloud.com/help/en/model-studio/get-api-key」をご参照ください。
# === 実行前にこのコメントを削除してください ===

curl --location 'https://dashscope-intl.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",
              "https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_male2.wav"]},"parameters":{"channel_id":[0]}}'

パラメーター

デフォルト値

必須

説明

model

string

-

はい

音声および動画ファイルの文字起こしに使用するモデル名。詳しくは、「モデルの可用性」をご参照ください。

file_urls

array[string]

-

はい

音声および動画ファイルの URL(HTTP/HTTPS)。1 回のリクエストで最大 100 個の URL を指定できます。

OSS に音声ファイルを保存している場合、RESTful API では oss:// プレフィックスで始まる一時 URL をサポートしています。

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

  • アップロード認証情報取得 API の呼び出し上限は 100 QPS であり、スケーリングはサポートされません。本番環境、高同時実行数シナリオ、ストレステストシナリオでは使用しないでください。

  • 本番環境では、ファイルの長期的な可用性を確保し、レート制限の問題を回避するために、OSS などの安定したストレージサービスをご利用ください。

vocabulary_id

string

-

いいえ

ホットワード ID。この ID に対応するホットワードが、認識タスクで有効になります。デフォルトでは無効です。「ホットワードのカスタマイズ」をご参照ください。

channel_id

array[integer]

[0]

いいえ

マルチトラックファイル内で認識対象とする音声トラックのインデックス(0 から始まる)。例:[0] = 最初のトラックのみ、[0, 1] = 最初および 2 番目のトラック。デフォルトは [0] です。

重要

各トラックは別途課金されます。例:[0, 1] = ファイルあたり 2 回の課金。

special_word_filter

string

-

いいえ

音声認識中に処理される機密ワードを指定します。異なる機密ワードに対して異なる処理方法をサポートしています。

このパラメーターを渡さない場合、システム組み込みの機密ワードフィルタリングロジックが有効になります。Alibaba Cloud Model Studio 機密ワードリストに一致する認識結果内のワードは、同じ長さのアスタリスク(*)に置き換えられます。

このパラメーターを渡す場合、以下の機密ワード処理ポリシーを実装できます:

  • アスタリスク(*)で置き換え:一致した機密ワードを、同じ長さのアスタリスク(*)に置き換えます。

  • 除外:一致した機密ワードを認識結果から完全に削除します。

このパラメーターの値は、以下の構造を持つ JSON 文字列である必要があります:

{
  "filter_with_signed": {
    "word_list": ["test"]
  },
  "filter_with_empty": {
    "word_list": ["start", "happen"]
  },
  "system_reserved_filter": true
}

JSON フィールドの説明:

  • filter_with_signed

    • 型:オブジェクト。

    • 必須:いいえ。

    • 説明:アスタリスク(*)で置き換えられる機密ワードのリストを設定します。認識結果内で一致したワードは、同じ長さのアスタリスク(*)に置き換えられます。

    • 例:上記の JSON 例に基づくと、「Help me test this piece of code」という音声認識結果は、「Help me **** this piece of code」となります。

    • 内部フィールド:

      • word_list:置き換え対象の機密ワードを列挙する文字列配列。

  • filter_with_empty

    • 型:オブジェクト。

    • 必須:いいえ。

    • 説明:認識結果から削除(フィルター)される機密ワードのリストを設定します。認識結果内で一致したワードは完全に削除されます。

    • 例:上記の JSON 例に基づくと、「Is the game about to start?」という音声認識結果は、「Is the game about to?」となります。

    • 内部フィールド:

      • word_list:完全に削除(フィルター)される機密ワードを列挙する文字列配列。

  • system_reserved_filter

    • 型:ブール値。

    • 必須:いいえ。

    • デフォルト値:true。

    • 説明: システムのプリセット禁止用語ルールを有効にするかどうかを指定します。このパラメーターを true に設定すると、システムに組み込まれている禁止用語のフィルタリングロジックも有効になります。認識結果に含まれる単語が Alibaba Cloud Model Studio 禁止用語リスト に一致する場合、その単語は同じ長さのアスタリスク (*) に置き換えられます。

diarization_enabled

boolean

false

いいえ

自動話者分離はデフォルトで無効です。この機能はシングルチャンネル音声にのみ適用可能であり(マルチチャンネル音声ではサポートされません)。

有効にすると、認識結果に話者を区別するための speaker_id フィールドが含まれます。

speaker_id の例については、「認識結果の説明」をご参照ください。

speaker_count

integer

-

いいえ

話者の参考数(2~100 の整数)。このパラメーターは、diarization_enabled が true の場合にのみ有効です。デフォルトでは話者数は自動検出されます。このパラメーターはアルゴリズムを補助しますが、正確な数を保証するものではありません。

language_hints

array[string]

-

いいえ

認識に使用する言語コード。自動言語検出を行う場合は、未設定のままにしてください。

システムは配列の最初の値のみを読み取り、それ以降の値は無視されます。

各モデルがサポートする言語コードは以下のとおりです:

  • fun-asr、fun-asr-2025-11-07:

    • zh:中国語

    • en:英語

    • ja:日本語

  • fun-asr-2025-08-25:

    • zh:中国語

    • en:英語

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

    • zh:中国語

    • en:英語

    • ja:日本語

    • ko:韓国語

    • vi:ベトナム語

    • id:インドネシア語

    • th:タイ語

    • ms:マレー語

    • tl:フィリピン語

    • ar:アラビア語

    • hi:ヒンディー語

    • bg:ブルガリア語

    • hr:クロアチア語

    • cs:チェコ語

    • da:デンマーク語

    • nl:オランダ語

    • et:エストニア語

    • fi:フィンランド語

    • el:ギリシャ語

    • hu:ハンガリー語

    • ga:アイルランド語

    • lv:ラトビア語

    • lt:リトアニア語

    • mt:マルタ語

    • pl:ポーランド語

    • pt:ポルトガル語

    • ro:ルーマニア語

    • sk:スロバキア語

    • sl:スロベニア語

    • sv:スウェーデン語

応答パラメーター

応答サンプルを表示

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

パラメーター

説明

audio_format

string

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

channels

array[integer]

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

original_sampling_rate

integer

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

original_duration_in_milliseconds

integer

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

channel_id

integer

文字起こし結果の対象となる音声トラックのインデックス(0 から始まる)。

content_duration

integer

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

重要

課金は、音声コンテンツの持続時間のみに基づいて行われます(非音声部分は課金されません)。音声の持続時間は、通常、総音声ファイルの持続時間よりも短くなります。AI を使用した音声検出には、わずかな誤差が生じる場合があります。

transcript

string

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

sentences

array

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

words

array

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

begin_time

integer

開始タイムスタンプ(ms)。

end_time

integer

終了タイムスタンプ(ms)。

text

string

音声文字起こし結果。

speaker_id

integer

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

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

punctuation

string

単語の後に予測される句読点(ある場合)。

タスク照会 API

基本情報

説明

音声認識タスクのステータスおよび結果を照会します。

URL

以下はシンガポールリージョン向けの URL です。北京リージョンのモデルを使用する場合は、URL を置き換えてください:https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}

https://dashscope-intl.aliyuncs.com/api/v1/tasks/{task_id}

リクエストメソッド

POST

リクエストヘッダー

Authorization: Bearer {api-key} // これを実際の API キーに置き換えてください

メッセージ本文

なし。

リクエストパラメーター

リクエストサンプルを表示

タスク照会 API を呼び出す cURL サンプルを以下に示します:

# ======= 重要 =======
# 以下はシンガポールリージョン向けの URL です。北京リージョンのモデルを使用する場合は、URL を置き換えてください:https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}
# シンガポールリージョンおよび北京リージョンの API キーは異なります。API キーの取得方法については、「https://www.alibabacloud.com/help/en/model-studio/get-api-key」をご参照ください。
# === 実行前にこのコメントを削除してください ===

curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/tasks/{task_id}' --header "Authorization: Bearer $DASHSCOPE_API_KEY"

パラメーター

デフォルト値

必須

説明

task_id

string

-

はい

クエリ対象のタスク ID。タスク送信 API から返される task_id です。

応答パラメーター

応答サンプルを表示

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

正常なサンプル

{
  "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_male2.wav",
        "transcription_url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/pre/filetrans-16k/20240912/15%3A11/3bdf7689-b598-409d-806a-121cff5e4a31-1.json?Expires=1726211500&OSSAccessKeyId=yourOSSAccessKeyId&Signature=Fj%2BaF%2FH0Kayj3w3My2ECBeP****%3D",
        "subtask_status": "SUCCEEDED"
      },
      {
        "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": 2,
      "SUCCEEDED": 2,
      "FAILED": 0
    }
  },
  "usage": {
    "duration": 9
  }
}

異常なサンプル

code フィールドにはエラーコードが、message フィールドにはエラーメッセージが含まれます。これらの 2 つのフィールドは、エラー発生時にのみ表示されます。「エラーコード」を参照してトラブルシューティングを行ってください。

{
    "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/long_audio_demo_cn.mp3",
            "transcription_url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/prod/paraformer-v2/20241216/xxxx",
            "subtask_status": "SUCCEEDED"
        },
        {
            "file_url": "https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/sensevoice/rich_text_exaple_1.wav",
            "code": "InvalidFile.DownloadFailed",
            "message": "音声ファイルをダウンロードできませんでした。",
            "subtask_status": "FAILED"
        }
    ],
    "task_metrics": {
        "TOTAL": 2,
        "SUCCEEDED": 1,
        "FAILED": 1
    }
}

パラメーター

説明

task_id

string

照会対象のタスク ID。

task_status

string

照会対象のタスクのステータス。

説明

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

subtask_status

string

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

file_url

string

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

transcription_url

string

認識結果へのリンク(有効期間:24 時間)。有効期限が切れた後は、以前の URL からのタスク照会および結果のダウンロードは失敗します。

結果は JSON 形式で保存されます。ファイルをダウンロードするか、HTTP リクエストで直接読み取ることができます。

JSON フィールドの説明については、「認識結果の説明」をご参照ください。

認識結果の説明

認識結果は 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

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

channel_id

integer

文字起こし対象の音声トラックのインデックス(0 から始まる)。

content_duration

integer

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

重要

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

transcript

string

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

sentences

array

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

words

array

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

begin_time

integer

開始タイムスタンプ(ms)。

end_time

integer

終了タイムスタンプ(ms)。

text

string

音声文字起こし結果。

speaker_id

integer

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

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

punctuation

string

単語の後に予測される句読点(ある場合)。

完全なサンプル

ご利用のプログラミング言語の HTTP ライブラリを使用してタスクを送信および照会します。まず送信 API を使用してタスクを送信し、その後タスクが完了するまで照会 API をポーリングします。

以下は Python でのサンプルです:

import requests
import json
import os
import time

# シンガポールリージョンおよび北京リージョンの API キーは異なります。API キーの取得方法については、「https://www.alibabacloud.com/help/en/model-studio/get-api-key」をご参照ください。
# 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください:api_key = "sk-xxx"
api_key = os.getenv("DASHSCOPE_API_KEY")
file_urls = [
    "https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_female2.wav",
    "https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_male2.wav",
]

# シンガポールリージョンおよび北京リージョンのリージョンが異なります。北京リージョンを使用する場合は、次の行を置き換えてください:region = "dashscope.aliyuncs.com"
region = "dashscope-intl.aliyuncs.com"

# 文字起こし対象のファイル URL のリストを含むタスクを送信
def submit_task(apikey, file_urls) -> str:

    headers = {
        "Authorization": f"Bearer {apikey}",
        "Content-Type": "application/json",
        "X-DashScope-Async": "enable",
    }
    data = {
        "model": "fun-asr",
        "input": {"file_urls": file_urls},
        "parameters": {
            "channel_id": [0],
        },
    }
    # 音声ファイル文字起こしサービスの URL
    service_url = (
        f"https://{region}/api/v1/services/audio/asr/transcription"
    )
    response = requests.post(
        service_url, headers=headers, data=json.dumps(data)
    )

    # 応答内容を出力
    if response.status_code == 200:
        return response.json()["output"]["task_id"]
    else:
        print("タスクに失敗しました!")
        print(response.json())
        return None


# タスクステータスを再帰的に照会し、成功するまで待機
def wait_for_complete(task_id):
    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
        "X-DashScope-Async": "enable",
    }

    pending = True
    while pending:
        # タスクステータス照会サービスの URL
        service_url = f"https://{region}/api/v1/tasks/{task_id}"
        response = requests.post(
            service_url, headers=headers
        )
        if response.status_code == 200:
            status = response.json()['output']['task_status']
            if status == 'SUCCEEDED':
                print("タスクが成功しました!")
                pending = False
                return response.json()['output']['results']
            elif status == 'RUNNING' or status == 'PENDING':
                pass
            else:
                print("タスクに失敗しました!")
                pending = False
        else:
            print("照会に失敗しました!")
            pending = False
        print(response.json())
        time.sleep(0.1)


task_id = submit_task(apikey=api_key, file_urls=file_urls)
print("task_id: ", task_id)
result = wait_for_complete(task_id)
print("文字起こし結果: ", result)

エラーコード

エラーが発生した場合は、「エラーメッセージ」を参照してトラブルシューティングを行ってください。

タスクに複数のサブタスクが含まれる場合、いずれかのサブタスクが成功すると、全体のタスクステータスは SUCCEEDED とマークされます。各サブタスクの結果を確認するには、subtask_status フィールドを確認する必要があります。

エラー応答の例:

{
    "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/long_audio_demo_cn.mp3",
            "transcription_url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/prod/paraformer-v2/20241216/xxxx",
            "subtask_status": "SUCCEEDED"
        },
        {
            "file_url": "https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/sensevoice/rich_text_exaple_1.wav",
            "code": "InvalidFile.DownloadFailed",
            "message": "音声ファイルをダウンロードできませんでした。",
            "subtask_status": "FAILED"
        }
    ],
    "task_metrics": {
        "TOTAL": 2,
        "SUCCEEDED": 1,
        "FAILED": 1
    }
}

よくある質問

機能

Q:Base64 エンコーディングされた音声はサポートされていますか?

本サービスは、パブリックネットワークからアクセス可能な URL からの音声のみを認識します。Base64 エンコーディングされた音声、バイナリストリーム、ローカルファイルはサポートされていません。

Q:音声ファイルをパブリックネットワークからアクセス可能な URL として提供するにはどうすればよいですか?

一般的には、以下の手順に従います。これは一般的なガイドであり、ストレージ製品によって具体的な手順は異なります。当社では、Object Storage Service (OSS) への音声ファイルのアップロード を推奨します。

1. ストレージおよびホスティング方法の選択

例を以下に示します:

  • Object Storage Service(推奨):

    • クラウドプロバイダーのオブジェクトストレージサービス(例:OSS)を使用し、音声ファイルをバケットにアップロードして、アクセス権限を公開に設定します。

    • メリット:高い可用性、CDN 加速対応、簡単な管理。

  • Web サーバー:

    • Nginx や Apache などの HTTP/HTTPS アクセスをサポートする Web サーバーに音声ファイルを配置します。

    • メリット:小規模プロジェクトやローカルテストに適しています。

  • コンテンツデリバリーネットワーク(CDN):

    • CDN に音声ファイルをホストし、CDN が提供する URL を介してアクセスします。

    • メリット:ファイル転送を高速化し、高同時実行数のシナリオに適しています。

2. 音声ファイルのアップロード

選択したストレージ/ホスティング方法に基づいて音声ファイルをアップロードします。例:

  • Object Storage Service:

    • クラウドプロバイダーのコンソールにログインし、バケットを作成します。

    • 音声ファイルをアップロードし、アクセス権限を「公開読み取り」に設定するか、一時アクセスリンクを生成します。

  • Web サーバー:

    • サーバー上の指定されたディレクトリ(例:/var/www/html/audio/)に音声ファイルを配置します。

    • ファイルが HTTP/HTTPS でアクセス可能であることを確認します。

3. パブリックネットワークからアクセス可能な URL の生成

例を以下に示します:

  • Object Storage Service:

    • ファイルをアップロードすると、システムが自動的にパブリックアクセス URL を生成します(通常は https://<bucket-name>.<region>.aliyuncs.com/<file-name> の形式)。

    • よりユーザーフレンドリなドメイン名を使用するには、カスタムドメイン名をアタッチし、HTTPS を有効化できます。

  • Web サーバー:

    • ファイルのアクセス URL は、通常サーバーアドレスとファイルパスの組み合わせ(例:https://your-domain.com/audio/file.mp3)になります。

  • CDN:

    • CDN 加速を設定した後、CDN が提供する URL(例:https://cdn.your-domain.com/audio/file.mp3)を使用します。

4. URL の可用性の確認

パブリックネットワーク環境で、生成された URL がアクセス可能であることを確認します。例:

  • ブラウザで URL を開き、音声ファイルが再生可能かどうかを確認します。

  • curl や Postman などのツールを使用して、URL が正しい HTTP 応答(ステータスコード 200)を返すことを確認します。

SDKを使用してOSSに保存されているファイルにアクセスする場合、oss:// プレフィックスを含む一時URLを使用することはできません。

RESTful API を使用して OSS に保存されたファイルにアクセスする場合、oss:// プレフィックスを含む一時的な URL を使用できます:

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

  • アップロード認証情報取得 API の呼び出し上限は 100 QPS であり、スケーリングはサポートされません。本番環境、高同時実行数シナリオ、ストレステストシナリオでは使用しないでください。

  • 本番環境では、ファイルの長期的な可用性を確保し、レート制限の問題を回避するために、OSS などの安定したストレージサービスをご利用ください。

Q:認識結果を得るまでにどのくらい時間がかかりますか?

タスクは送信後に PENDING ステータスに入ります。キュー待ち時間(通常数分)はキューの長さおよびファイルの再生時間によって異なります。音声ファイルが長いほど、処理時間も長くなります。

トラブルシューティング

コードエラーについては、「エラーコード」を参照してトラブルシューティングを行ってください。

Q:OSS 音声ファイルの一時パブリック URL にアクセスできない場合、どうすればよいですか?

A:ヘッダーで X-DashScope-OssResourceResolveenable に設定します。

この方法は推奨されません。

Java および Python SDK では、ヘッダーの設定はサポートされていません。

Q:継続的なポーリングを行っても結果が得られないのはなぜですか?

レート制限が原因である可能性があります。

Q:音声が認識されない(認識結果がない)のはなぜですか?

音声フォーマットおよびサンプルレートが正しく、パラメーター制約を満たしているかを確認してください。

ffprobe ツールを使用して、音声コンテナ、コーデック、サンプルレート、チャンネルに関する情報を取得できます:

ffprobe -v error -show_entries format=format_name -show_entries stream=codec_name,sample_rate,channels -of default=noprint_wrappers=1 input.xxx