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

Alibaba Cloud Model Studio:Python SDK

最終更新日:Mar 25, 2026

Fun-ASR 音声ファイル認識 Python SDK のパラメーターとインターフェースについて説明します。

ユーザーガイド:モデルと選択の推奨事項の詳細については、「音声ファイル認識 - Fun-ASR/Paraformer」をご参照ください。

前提条件

モデルの可用性

国際版

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

モデル

バージョン

単価

無料クォータ (注)

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 は中国語、広東語、英語、日本語、タイ語、ベトナム語、インドネシア語をサポートします。

クイックスタート

音声認識コアクラス(Transcription) は、タスクの送信、完了待ち、結果の照会を行うためのインターフェイスを提供します。認識方式には以下の 2 種類があります。

  • 非同期送信と同期待ち:タスクを送信し、完了するまでブロックして結果を取得します。

  • 非同期送信と非同期照会:タスクを送信した後、必要に応じて結果を照会します。

非同期送信と同期待ち

image
  1. Transcription クラスの async_call() メソッドを、リクエストパラメーター を指定して呼び出します。

    説明
    • タスクは送信後に PENDING ステータスになります。キュー待ち時間(通常数分程度)は、キューの長さおよびファイルの持続時間に依存します。処理が開始されると、音声認識は大幅に高速化された速度で完了します。

    • 認識結果およびダウンロード URL は、タスク完了後 24 時間で有効期限切れとなります。有効期限切れ後は、タスクの照会ができなくなります。

  2. Transcription.wait() を呼び出して、タスク完了までブロックします。

    タスクステータス: PENDINGRUNNINGSUCCEEDEDFAILEDwait メソッドは、PENDING/RUNNING ステータスでブロックし、ステータスが SUCCEEDED または FAILED に遷移した時点で戻ります。

    TranscriptionResponse を返します。

完全なサンプルコードを表示するには、クリックしてください。

from http import HTTPStatus
from dashscope.audio.asr import Transcription
import dashscope
import os
import json

# シンガポールリージョン。中国 (北京) リージョンの場合は、https://dashscope.aliyuncs.com/api/v1 を使用してください。
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

# API キーはリージョンごとに異なります。API キーの取得方法については、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご参照ください。
# DASHSCOPE_API_KEY が設定されていない場合は、dashscope.api_key = "sk-xxx" を使用してください。
dashscope.api_key = os.getenv("DASHSCOPE_API_KEY")

task_response = Transcription.async_call(
    model='fun-asr',
    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']
)

transcribe_response = Transcription.wait(task=task_response.output.task_id)
if transcribe_response.status_code == HTTPStatus.OK:
    print(json.dumps(transcribe_response.output, indent=4, ensure_ascii=False))
    print('transcription done!')

非同期送信と非同期照会

image
  1. Transcription クラスの async_call() メソッドを、リクエストパラメーター を指定して呼び出します。

    説明
    • タスクは送信後に PENDING ステータスになります。キュー待ち時間(通常数分程度)は、キューの長さおよびファイルの持続時間に依存します。処理が開始されると、音声認識は大幅に高速化された速度で完了します。

    • 認識結果およびダウンロード URL は、タスク完了後 24 時間で有効期限切れとなります。有効期限切れ後は、タスクの照会ができなくなります。

  2. Transcription.fetch() をポーリングして、最終結果を取得します。

    ステータスが SUCCEEDED または FAILED になった時点でポーリングを停止します。

    TranscriptionResponse を返します。

完全なサンプルコードを表示するには、クリックしてください。

from http import HTTPStatus
from dashscope.audio.asr import Transcription
import dashscope
import os
import json

# シンガポールリージョン。中国 (北京) リージョンの場合は、https://dashscope.aliyuncs.com/api/v1 を使用してください。
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

# API キーはリージョンごとに異なります。API キーの取得方法については、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご参照ください。
# DASHSCOPE_API_KEY が設定されていない場合は、dashscope.api_key = "sk-xxx" を使用してください。
dashscope.api_key = os.getenv("DASHSCOPE_API_KEY")

transcribe_response = Transcription.async_call(
    model='fun-asr',
    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']
)

while True:
    if transcribe_response.output.task_status == 'SUCCEEDED' or transcribe_response.output.task_status == 'FAILED':
        break
    transcribe_response = Transcription.fetch(task=transcribe_response.output.task_id)

if transcribe_response.status_code == HTTPStatus.OK:
    print(json.dumps(transcribe_response.output, indent=4, ensure_ascii=False))
    print('transcription done!')

リクエストパラメーター

Transcription.async_call() でリクエストパラメーターを設定します。

パラメーター

デフォルト

必須

説明

model

str

-

はい

音声/動画の文字起こしに使用するモデルです。詳細については、「モデルの可用性」をご参照ください。

file_urls

list[str]

-

はい

文字起こし対象の音声/動画ファイルの URL (HTTP/HTTPS) です。リクエストごとに最大 100 個の URL を指定できます。

ご利用の音声ファイルが OSS に保存されている場合、SDK は `oss://` プレフィックスで始まる一時的な URL をサポートしていません。

channel_id

list[int]

[0]

いいえ

マルチトラックファイルで認識するオーディオトラックのインデックス (0 から始まるインデックス) です。例:`[0]` は最初のトラックのみ、`[0, 1]` は最初のトラックと 2 番目のトラックを意味します。デフォルト:`[0]`。

重要

各トラックは個別に課金されます。例:`[0, 1]` の場合、ファイルごとに 2 回課金されます。

special_word_filter

str

-

いいえ

音声認識中に処理する禁止用語を指定し、禁止用語ごとに異なる処理メソッドをサポートします。

このパラメーターが渡されない場合、システムに組み込まれた禁止用語フィルタリングロジックが有効になります。認識結果に含まれる単語が 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

bool

False

いいえ

話者ダイアライゼーションの自動化はデフォルトで無効になっています。この機能はシングルチャンネルオーディオにのみ適用され、マルチチャンネルオーディオではサポートされていません。

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

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

speaker_count

int

-

いいえ

参考話者数 (整数、2~100)。diarization_enabled が true の場合にのみ適用されます。

デフォルト:自動検出。このパラメーターはアルゴリズムをガイドするのに役立ちますが、正確な話者数を保証するものではありません。

language_hints

list[str]

-

いいえ

認識用の言語コードです。設定しない場合は、自動言語検出が使用されます。

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

各モデルでサポートされている言語コードは以下の通りです:

  • 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:スウェーデン語

speech_noise_threshold

float

-

いいえ

応答結果

TranscriptionResponse

TranscriptionResponse は、task_idtask_status などのタスクの基本情報をカプセル化し、実行結果を含むオブジェクトです。実行結果は output プロパティに対応します。詳細については、「TranscriptionOutput」をご参照ください。

サンプルの TranscriptionResponse 構造を表示するには、クリックしてください

PENDING ステータス

{
    "status_code":200,
    "request_id":"251aceab-a6aa-9fc4-b7f7-0cc6d3e2a9f3",
    "code":null,
    "message":"",
    "output":{
        "task_id":"7d0a58a3-1dbe-4de9-8cff-5f48213128b0",
        "task_status":"PENDING",
        "submit_time":"2025-02-13 16:55:08.573",
        "scheduled_time":"2025-02-13 16:55:08.592",
        "task_metrics":{
            "TOTAL":2,
            "SUCCEEDED":0,
            "FAILED":0
        }
    },
    "usage":null
}

RUNNING ステータス

{
    "status_code":200,
    "request_id":"d9d530f1-853c-9848-a5f1-f5de59086ff7",
    "code":null,
    "message":"",
    "output":{
        "task_id":"6351feef-9694-45d2-9d32-63454f2ffb8d",
        "task_status":"RUNNING",
        "submit_time":"2025-02-13 17:31:20.681",
        "scheduled_time":"2025-02-13 17:31:20.703",
        "task_metrics":{
            "TOTAL":2,
            "SUCCEEDED":1,
            "FAILED":0
        }
    },
    "usage":null
}

SUCCEEDED ステータス

{
    "status_code":200,
    "request_id":"16668704-6702-9e03-8ab7-a32a5d7bb095",
    "code":null,
    "message":"",
    "output":{
        "task_id":"6351feef-9694-45d2-9d32-63454f2ffb8d",
        "task_status":"SUCCEEDED",
        "submit_time":"2025-02-13 17:31:20.681",
        "scheduled_time":"2025-02-13 17:31:20.703",
        "end_time":"2025-02-13 17:31:21.867",
        "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/prod/paraformer-v2/20250213/17%3A31/20ee4e4f-0404-4806-b617-c7d4c62eed19-1.json?Expires=1739525481&OSSAccessKeyId=yourOSSAccessKeyId&Signature=3q%2B1uQmRwltd7FPn5HQM2mBKw74%3D",
                "subtask_status":"SUCCEEDED"
            },
            {
                "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/prod/paraformer-v2/20250213/17%3A31/be4f14c5-e46b-47ff-b03a-476ae9a45fd3-1.json?Expires=1739525481&OSSAccessKeyId=yourOSSAccessKeyId&Signature=EUX%2FRkGcn46L5d93ihQmpWUeYE4%3D",
                "subtask_status":"SUCCEEDED"
            }
        ],
        "task_metrics":{
            "TOTAL":2,
            "SUCCEEDED":2,
            "FAILED":0
        }
    },
    "usage":{
        "duration":9
    }
}

FAILED ステータス

{
    "status_code":200,
    "request_id":"16668704-6702-9e03-8ab7-a32a5d7bb095",
    "code":null,
    "message":"",
    "output":{
        "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": "The audio file cannot be downloaded.",
                "subtask_status": "FAILED"
            }
        ],
        "task_metrics": {
            "TOTAL": 2,
            "SUCCEEDED": 1,
            "FAILED": 1
        }
    },
    "usage":{
        "duration":9
    }
}

留意すべきパラメーター:

パラメーター

説明

status_code

HTTP リクエストのステータスコードです。

code

  • 最上位の code は無視できます。

  • output.results 配下の code はエラーコードです。エラーコード を参照し、message フィールドと併せて障害のトラブルシューティングを行ってください。

message

  • 最上位の message は無視できます。

  • output.results 配下の message はエラーメッセージです。エラーコード を参照し、code フィールドと併せて障害のトラブルシューティングを行ってください。

task_id

タスク ID です。

task_status

タスクのステータスです。

有効な値は PENDINGRUNNINGSUCCEEDED、および FAILED です。

タスクに複数のサブタスクが含まれる場合、1 つ以上のサブタスクが成功すれば、全体のタスクステータスは SUCCEEDED とマークされます。特定のサブタスクの結果を確認するには、subtask_status フィールドを確認してください。

results

サブタスクの認識結果です。

subtask_status

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

有効な値は PENDINGRUNNINGSUCCEEDED、および FAILED です。

file_url

認識対象の音声ファイルの URL です。

transcription_url

音声認識結果の URL です。

認識結果は JSON ファイルとして保存されます。transcription_url で指定された URL からファイルをダウンロードするか、HTTP リクエストを使用してファイルの内容を直接読み取ることができます。JSON ファイルの内容について詳しくは、「認識結果の説明」をご参照ください。

TranscriptionOutput

TranscriptionOutput は、TranscriptionResponseoutput プロパティであり、タスク実行結果を含みます。

サンプルの TranscriptionOutput 構造を表示するには、クリックしてください

PENDING ステータス

{
    "task_id":"f2f7c2fa-0cd9-4bb2-a283-27b26ee4bb67",
    "task_status":"PENDING",
    "submit_time":"2025-02-13 17:59:27.754",
    "scheduled_time":"2025-02-13 17:59:27.789",
    "task_metrics":{
        "TOTAL":2,
        "SUCCEEDED":0,
        "FAILED":0
    }
}

RUNNING ステータス

{
    "task_id":"f2f7c2fa-0cd9-4bb2-a283-27b26ee4bb67",
    "task_status":"RUNNING",
    "submit_time":"2025-02-13 17:59:27.754",
    "scheduled_time":"2025-02-13 17:59:27.789",
    "task_metrics":{
        "TOTAL":2,
        "SUCCEEDED":0,
        "FAILED":0
    }
}

SUCCEEDED ステータス

{
    "task_id":"f2f7c2fa-0cd9-4bb2-a283-27b26ee4bb67",
    "task_status":"SUCCEEDED",
    "submit_time":"2025-02-13 17:59:27.754",
    "scheduled_time":"2025-02-13 17:59:27.789",
    "end_time":"2025-02-13 17:59:28.828",
    "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/prod/paraformer-v2/20250213/17%3A59/70e737cc-bf8c-418b-b0c8-83fab192a0fa-1.json?Expires=1739527168&OSSAccessKeyId=yourOSSAccessKeyId&Signature=AtGjIKI%2BdgbzjJIu%2BHsr1R5nSAY%3D",
            "subtask_status":"SUCCEEDED"
        },
        {
            "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/prod/paraformer-v2/20250213/17%3A59/ce1ebe74-be78-4ac8-b4f8-8e438a14d1c2-1.json?Expires=1739527168&OSSAccessKeyId=yourOSSAccessKeyId&Signature=z5s0ROpSU8HwiM8WHPNVpkuFG3A%3D",
            "subtask_status":"SUCCEEDED"
        }
    ],
    "task_metrics":{
        "TOTAL":2,
        "SUCCEEDED":2,
        "FAILED":0
    }
}

FAILED ステータス

code フィールドにはエラーコードが、message フィールドにはエラーメッセージが指定されます。これらのフィールドは例外発生時のみ返されます。エラーコード を参照し、障害のトラブルシューティングを行ってください。

{
    "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": "The audio file cannot be downloaded.",
            "subtask_status": "FAILED"
        }
    ],
    "task_metrics": {
        "TOTAL": 2,
        "SUCCEEDED": 1,
        "FAILED": 1
    }
}

主なパラメーター:

パラメーター

説明

code

エラーコードです。エラーコード を参照し、message フィールドと併せて障害のトラブルシューティングを行ってください。

message

エラーメッセージです。code フィールドと併せて エラーコード を参照し、障害のトラブルシューティングを行ってください。

task_id

タスク ID です。

task_status

タスクのステータスです。

有効な値は PENDINGRUNNINGSUCCEEDED、および FAILED です。

タスクに複数のサブタスクが含まれる場合、1 つ以上のサブタスクが成功すれば、全体のタスクステータスは SUCCEEDED とマークされます。特定のサブタスクの結果を確認するには、subtask_status フィールドを確認してください。

results

サブタスクの認識結果です。

subtask_status

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

有効な値は PENDINGRUNNINGSUCCEEDED、および FAILED です。

file_url

認識対象の音声ファイルの URL です。

transcription_url

音声認識結果の URL です。

認識結果は JSON ファイルとして保存されます。transcription_url で指定された URL からファイルをダウンロードするか、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, // このフィールドは、自動スピーカー識別(speaker diarization)が有効な場合にのみ表示されます。
                    "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 から始まる)です。複数の話者を区別するために使用されます。

このフィールドは、スピーカー識別(speaker diarization)が有効な場合にのみ認識結果に表示されます。

punctuation

string

予測された単語後の句読点(該当する場合)です。

主要インターフェイス

コアクラス (Transcription)

インポート: from dashscope.audio.asr import Transcription

メンバーメソッド

メソッドシグネチャ

説明

async_call

@classmethod
def async_call(cls,
               model: str,
               file_urls: List[str],
               phrase_id: str = None,
               api_key: str = None,
               workspace: str = None,
               **kwargs) -> TranscriptionResponse

音声認識タスクを非同期で送信します。

wait

@classmethod
def wait(cls,
         task: Union[str, TranscriptionResponse],
         api_key: str = None,
         workspace: str = None,
         **kwargs) -> TranscriptionResponse

非同期タスクが完了するまで(タスクステータスが SUCCEEDED または FAILED になるまで)現在のスレッドをブロックします。

このメソッドは TranscriptionResponse を返します。

fetch

@classmethod
def fetch(cls,
          task: Union[str, TranscriptionResponse],
          api_key: str = None,
          workspace: str = None,
          **kwargs) -> TranscriptionResponse

現在のタスクの実行結果を非同期で照会します。

このメソッドは TranscriptionResponse を返します。

エラーコード

エラーが発生した場合は、「エラーメッセージ」をご参照ください。

タスクに複数のサブタスクが含まれる場合、少なくとも 1 つのサブタスクが成功すれば、全体のタスクステータスは 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: 連続ポーリングを行っても結果が得られないのはなぜですか?

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

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