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

Alibaba Cloud Model Studio:Qwen-Audio-3.0-ASR-Flash-Filetrans/Fun-ASR 非リアルタイム音声認識 Python SDK

最終更新日:Sep 02, 2026

このトピックでは、Qwen-Audio-3.0-ASR-Flash-Filetrans/Fun-ASR 非リアルタイム音声認識 Python SDK のパラメーターとインターフェイスについて説明します。

ユーザーガイド:非リアルタイム音声認識。サポートされている音声フォーマット、ファイルサイズの制限、持続時間の制限などの入力要件については、「音声仕様」をご参照ください。

前提条件

サービスを有効化し、API キーを取得済みであること。コードの漏洩によるセキュリティリスクを防ぐため、コードにハードコーディングするのではなく、API キーを環境変数として設定してください。

注記サードパーティのアプリケーションやユーザーに一時的なアクセスを提供する必要がある場合、または機密データへのアクセスや削除などの高リスク操作を厳密に制御したい場合は、一時的な認証トークンの使用を推奨します。

長期的な API キーと比較して、一時的な認証トークンは有効期間が短く (60 秒)、セキュリティが高いため、一時的な呼び出しシナリオに適しており、API キー漏洩のリスクを効果的に低減します。

使用方法:コード内で、認証に元々使用していた API キーを、取得した一時的な認証トークンに置き換えます。

クイックスタート

コアクラス (Transcription) は、タスクを非同期で送信し、タスクが完了するまで同期的に待機し、タスク結果を非同期でクエリするためのインターフェイスを提供します。非リアルタイム音声認識は、次のいずれかの方法で実行できます。

  • タスクを非同期で送信し、同期的に待機する:タスクを送信した後、タスクが完了するまで現在のスレッドをブロックし、認識結果を返します。
  • タスクを非同期で送信し、非同期で結果をクエリする:タスクを送信した後、必要なときにクエリインターフェイスを呼び出して結果を取得します。

非同期で送信し、同期的に待機

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

    注記

    • ファイル文字起こしサービスは、API を介して送信されたタスクをベストエフォート方式で処理します。タスクを送信すると、キュー登録済み (PENDING) 状態になります。キューの待機時間はキューの長さとファイルの持続時間によって異なり、正確には言えませんが、通常は数分以内です。処理が開始されると、音声認識はリアルタイムの数百倍の速度で完了します。
    • 各タスクが完了した後、認識結果とダウンロード URL は 24 時間有効です。有効期限が切れると、以前のクエリで返された URL を介してタスクをクエリしたり、結果をダウンロードしたりすることはできなくなります。
  2. コアクラス (Transcription)wait メソッドを呼び出して、タスクが完了するのを同期的に待機します。

    タスクは、PENDINGRUNNINGSUCCEEDEDFAILED のいずれかの状態になります。タスクが PENDING または RUNNING 状態の間、wait インターフェイスはブロックします。タスクが SUCCEEDED または FAILED 状態に達すると、wait インターフェイスはブロックを停止し、タスクの結果を返します。

    waitTranscriptionResponse を返します。

クリックして完全な例を表示

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

# 以下はシンガポールリージョンの設定です。{WorkspaceId} を実際のワークスペース ID に置き換えてください。設定はリージョンによって異なります。
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'

# シンガポールと北京リージョンの API キーは異なります。API キーの取得:https://www.alibabacloud.com/help/model-studio/get-api-key
# 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください:dashscope.api_key = "sk-xxx"
dashscope.api_key = os.getenv("DASHSCOPE_API_KEY")

task_response = Transcription.async_call(
    model='qwen-audio-3.0-asr-flash-filetrans',
    file_urls=['{YOUR_AUDIO_URL}']
)

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!')

非同期で送信し、非同期で結果をクエリ

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

    注記

    • ファイル文字起こしサービスは、API を介して送信されたタスクをベストエフォート方式で処理します。タスクを送信すると、キュー登録済み (PENDING) 状態になります。キューの待機時間はキューの長さとファイルの持続時間によって異なり、正確には言えませんが、通常は数分以内です。処理が開始されると、音声認識はリアルタイムの数百倍の速度で完了します。
    • 各タスクが完了した後、認識結果とダウンロード URL は 24 時間有効です。有効期限が切れると、以前のクエリで返された URL を介してタスクをクエリしたり、結果をダウンロードしたりすることはできなくなります。
  2. コアクラス (Transcription)fetch メソッドをループで呼び出し、最終的なタスク結果を取得します。

    タスクステータスが SUCCEEDED または FAILED になったら、ポーリングを停止し、結果を処理します。

    fetchTranscriptionResponse を返します。

クリックして完全な例を表示

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

# 以下はシンガポールリージョンの設定です。呼び出し時に、{WorkspaceId} を実際のワークスペース ID に置き換えてください。設定はリージョンによって異なります。
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'

# シンガポールと北京リージョンでは API キーが異なります。API キーの取得:https://www.alibabacloud.com/help/model-studio/get-api-key
# 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください:dashscope.api_key = "sk-xxx"
dashscope.api_key = os.getenv("DASHSCOPE_API_KEY")

transcribe_response = Transcription.async_call(
    model='qwen-audio-3.0-asr-flash-filetrans',
    file_urls=['{YOUR_AUDIO_URL}']
)

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!')

サービスエンドポイント

デフォルトでは、SDK は北京リージョンのサービスエンドポイントを使用します。別のリージョンに切り替えるには、初期化の前に dashscope.base_http_api_url を変更します。

シンガポール

https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1

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

中国 (北京)

https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1

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

シンガポールリージョンに切り替えるには:
import dashscope

# コードの冒頭でこれを設定します
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'

  • API キーはリージョンによって異なります。対応するリージョンの API キーを使用していることを確認してください。
  • リージョン設定はグローバル設定であり、DashScope SDK を介して行われるすべての API 呼び出しに影響します。

リクエストパラメーター

コアクラス (Transcription)async_call メソッドを介してリクエストパラメーターを設定します。

パラメータータイプ必須説明

model

str

はい

モデル名。サポートされている値には、Qwen-Audio-3.0-ASR-Flash-Filetrans および Fun-ASR モデルファミリーが含まれます。詳細については、「サポートされているモデルとリージョン」をご参照ください。

file_urls

list[str]

はい

文字起こしする音声または動画ファイルの URL のリスト。HTTP と HTTPS がサポートされています。1 回のリクエストでサポートされる URL は 1 つだけです。サポートされている音声フォーマット、ファイルサイズの制限、持続時間の制限などの入力要件については、「音声仕様」をご参照ください。

録音が Alibaba Cloud OSS に保存されている場合、RESTful API は oss:// で始まる一時的な URL をサポートしますが、SDK は oss:// で始まる一時的な URL をサポートしません。

重要

  • 一時的な URL は 48 時間有効で、有効期限が切れると使用できなくなります。本番環境では使用しないでください。

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

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

  • OSS の一時的なパブリック URL に設定された音声ファイル URL が到達不能な場合は、リクエストヘッダーで X-DashScope-OssResourceResolveenable に設定します (非推奨)。

    SDK はリクエストヘッダーの設定をサポートしていません。

vocabulary_id

str

いいえ

プリコンパイルされたホットワードリストの ID。

この ID は、ホットワードリスト作成 API を呼び出して事前に生成します。認識時に ID を渡して、リスト内のホットワードを使用します。

語彙が既知で比較的安定しており、リクエスト間で同じ単語リストを再利用する必要があるシナリオに適しています。

使用方法の詳細については、「プリコンパイル済みホットワード」をご参照ください。

vocabulary

dict

いいえ

即時ホットワード。

キーと値のペアとして渡されます。キーはホットワードのテキスト (string)、値はホットワードの重み (integer) です。事前にホットワードリストを作成する必要はありません。重みの範囲は [1, 5] または 50 に設定されます。[1, 5] の値は、値が大きくなるにつれてモデルがその単語を出力する可能性が高くなります。値 50 はスーパーホットワードを指定し、再現率を大幅に向上させますが、スーパーホットワードの数は 50 を超えることはできません。

一時的な、セッションレベルのホットワード最適化に適しています。

プリコンパイル済みホットワードと一緒に設定した場合、即時ホットワードのみが有効になります。使用方法の詳細については、「即時ホットワード」をご参照ください。

重要qwen-audio-3.0-asr-flash-filetrans のみがインラインホットワードをサポートしています。

例:

from dashscope.audio.asr import Transcription

vocab = {"Zhang San": 5, "Li Si": 5}
result = Transcription.async_call(
    model="qwen-audio-3.0-asr-flash-filetrans",
    vocabulary=vocab,
    file_urls=['{ご自身の音声ファイルの URL}']
)

channel_id

list[int]

いいえ

マルチトラック音声ファイルで認識するオーディオトラックのインデックス。インデックスは 0 から始まります。たとえば、[0] は最初のトラックを認識し、[0, 1] は最初のトラックと 2 番目のトラックを同時に認識します。このパラメーターを省略すると、最初のトラックのみが処理されます。

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

デフォルト値:[0]。

special_word_filter

str

いいえ

音声認識中に処理する禁止用語。禁止用語ごとに異なる処理方法を設定できます。詳細については、「禁止用語フィルター」をご参照ください。

diarization_enabled

bool

いいえ

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

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

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

注記話者分離を有効にする場合、音声の持続時間を 2 時間以内にしてください。そうしないと、認識が失敗したり、タイムアウトしたりする可能性があります。

デフォルト値:False。

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

speaker_count

int

いいえ

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

話者数の参照値。有効な範囲は 2 から 100 (両端を含む) の整数です。

デフォルトでは、話者数は自動的に検出されます。この値を設定した場合、アルゴリズムが可能な場合に指定された数を出力するように誘導するだけであり、正確な数が保証されるわけではありません。

デフォルト値なし。

language_hints

list[str]

いいえ

認識する言語コード。事前に言語を特定できない場合は、設定せずにモデルが自動的に言語を検出するようにします。

Qwen-Audio-3.0-ASR-Flash-Filetrans モデルの場合、最大 4 つの値を設定できます。最初の 4 つを超える値は無視されます。Fun-ASR モデルの場合、1 つの値しか設定できません。複数設定した場合、最初の値のみが有効になります。

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

  • qwen-audio-3.0-asr-flash-filetrans, 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: 英語

応答

TranscriptionResponse

TranscriptionResponse は、基本的なタスク情報 (task_idtask_status) とタスク結果 (output 属性のコンテンツ、TranscriptionOutput を参照) をラップします。

クリックして TranscriptionResponse 構造のサンプルを表示

{
    "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":1,
            "SUCCEEDED":0,
            "FAILED":0
        }
    },
    "usage":null
}
{
    "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":1,
            "SUCCEEDED":0,
            "FAILED":0
        }
    },
    "usage":null
}
{
    "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":"{YOUR_AUDIO_URL}",
                "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=YOUR_ACCESS_KEY_ID&Signature=YOUR_SIGNATURE",
                "subtask_status":"SUCCEEDED"
            }
        ],
        "task_metrics":{
            "TOTAL":1,
            "SUCCEEDED":1,
            "FAILED":0
        }
    },
    "usage":{
        "duration":9
    }
}
{
    "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": "{YOUR_AUDIO_URL}",
                "code": "InvalidFile.DownloadFailed",
                "message": "音声ファイルをダウンロードできません。",
                "subtask_status": "FAILED"
            }
        ],
        "task_metrics": {
            "TOTAL": 1,
            "SUCCEEDED": 0,
            "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

タスクステータス。

PENDINGRUNNINGSUCCEEDEDFAILED の 4 つの状態のいずれかです。

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

results

サブタスクの認識結果。

subtask_status

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

PENDINGRUNNINGSUCCEEDEDFAILED の 4 つの状態のいずれかです。

file_url

認識された音声の URL。

transcription_url

音声認識結果の URL。

認識結果は JSON ファイルとして保存されます。transcription_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":1,
        "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":1,
        "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":"{YOUR_AUDIO_URL}",
            "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=YOUR_ACCESS_KEY_ID&Signature=YOUR_SIGNATURE",
            "subtask_status":"SUCCEEDED"
        }
    ],
    "task_metrics":{
        "TOTAL":1,
        "SUCCEEDED":1,
        "FAILED":0
    }
}

FAILED 状態

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": "{YOUR_AUDIO_URL}",
            "code": "InvalidFile.DownloadFailed",
            "message": "音声ファイルをダウンロードできません。",
            "subtask_status": "FAILED"
        }
    ],
    "task_metrics": {
        "TOTAL": 1,
        "SUCCEEDED": 0,
        "FAILED": 1
    }
}

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

パラメーター

説明

code

エラーコード。message フィールドと組み合わせて、「エラーコード」を参照して問題をトラブルシューティングしてください。

message

エラーメッセージ。code フィールドと組み合わせて、「エラーコード」を参照して問題をトラブルシューティングしてください。

task_id

タスク ID。

task_status

タスクステータス。

PENDINGRUNNINGSUCCEEDEDFAILED の 4 つの状態のいずれかです。

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

results

サブタスクの認識結果。

subtask_status

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

PENDINGRUNNINGSUCCEEDEDFAILED の 4 つの状態のいずれかです。

file_url

認識された音声の URL。

transcription_url

音声認識結果の URL。

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

認識結果の説明

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

クリックして認識結果の例を表示

{
    "file_url":"{YOUR_AUDIO_URL}",
    "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":"こんにちは世界、こちらはアリババスピーチラボです。",
            "sentences":[
                {
                    "begin_time":100,
                    "end_time":3820,
                    "text":"こんにちは世界、こちらはアリババスピーチラボです。",
                    "sentence_id":1,
                    "speaker_id":0, //このフィールドは自動話者分離が有効な場合にのみ表示されます
                    "words":[
                        {
                            "begin_time":100,
                            "end_time":596,
                            "text":"こんにちは ",
                            "punctuation":""
                        },
                        {
                            "begin_time":596,
                            "end_time":844,
                            "text":"世界",
                            "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

単語の後に予測された句読点 (もしあれば)。

主要なインターフェイス

コアクラス (Transcription)

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": "{YOUR_AUDIO_URL}",
            "code": "InvalidFile.DownloadFailed",
            "message": "音声ファイルをダウンロードできません。",
            "subtask_status": "FAILED"
        }
    ],
    "task_metrics": {
        "TOTAL": 1,
        "SUCCEEDED": 0,
        "FAILED": 1
    }
}

よくある質問

機能

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

Base64 エンコードされた音声はサポートされていません。パブリックにアクセス可能な URL にある音声のみが認識できます。バイナリストリームやローカルファイルは直接認識できません。

Q:音声ファイルをパブリックにアクセス可能な URL で利用できるようにするにはどうすればよいですか?

一般的な手順は以下の通りです。これは 1 つのアプローチであり、正確なプロセスはストレージ製品によって異なります。音声を Alibaba Cloud OSS にアップロードすることを推奨します。

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

例:

  • オブジェクトストレージサービス (推奨):

    • クラウドプロバイダーのオブジェクトストレージサービス (例:Alibaba Cloud OSS) を使用して、音声ファイルをバケットにアップロードし、パブリックアクセスに設定します。
    • 利点:高可用性、CDN アクセラレーションのサポート、簡単な管理。
  • Web サーバー:

    • HTTP/HTTPS アクセスをサポートする Web サーバー (Nginx や Apache など) に音声ファイルを配置します。
    • 利点:小規模なプロジェクトやローカルテストに適しています。
  • コンテンツ配信ネットワーク (CDN):

    • CDN に音声ファイルをホストし、CDN が提供する URL を介してアクセスします。
    • 利点:ファイル配信を高速化し、高同時実行数シナリオに適しています。

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

選択したストレージまたはホスティング方法に従って音声をアップロードします。例:

  • オブジェクトストレージサービス:

    • クラウドプロバイダーのコンソールにログインし、バケットを作成します。
    • 音声ファイルをアップロードし、その権限をパブリック読み取りに設定するか、一時的なアクセスリンクを生成します。
  • Web サーバー:

    • サーバー上の指定されたディレクトリ (例:/var/www/html/audio/) に音声ファイルを配置します。
    • ファイルが HTTP/HTTPS 経由でアクセス可能であることを確認します。

3. パブリックにアクセス可能な URL の生成

例:

  • オブジェクトストレージサービス:

    • ファイルがアップロードされると、システムは自動的にパブリックアクセス 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 を使用する場合、音声ファイルが Alibaba Cloud OSS に保存されている場合、oss:// プレフィックスを持つ一時的な URL はサポートされていません。

RESTful API を使用する場合、音声ファイルが Alibaba Cloud 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