本トピックでは、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 を指定できます。
対応音声フォーマット
aac、amr、avi、flac、flv、m4a、mkv、mov、mp3、mp4、mpeg、ogg、opus、wav、webm、wma、wmv重要音声および動画フォーマットは多種多様であり、すべてのフォーマットを網羅的にテストすることは技術的に困難です。本 API では、すべてのフォーマットが正しく認識されることを保証できません。ご使用のファイルを実際にテストし、期待通りの音声認識結果が得られることを確認してください。
音声サンプルレート: 任意
音声ファイルサイズおよび再生時間
最大ファイルサイズは 2 GB、最大再生時間は 12 時間です。これらの制限を超えるファイルについては、アップロード前に分割または圧縮を行ってください。ファイルの前処理に関するベストプラクティスについては、「ファイル転写効率を向上させるための動画ファイルの前処理(音声ファイル認識シナリオ向け)」をご参照ください。
バッチ処理の音声ファイル数
1 回のリクエストで最大 100 個のファイル URL を指定できます。
認識可能な言語: fun-asr は中国語および英語をサポートします。fun-asr-mtl-2025-08-25 は中国語、広東語、英語、日本語、タイ語、ベトナム語、インドネシア語をサポートします。
API 呼び出し方法の制限
フロントエンドから直接 API を呼び出すことはできません。代わりにバックエンドプロキシをご利用ください。
タスク送信 API
基本情報
説明 | 音声認識タスクを送信します。 |
URL | 以下はシンガポールリージョン向けの URL です。北京リージョンのモデルを使用する場合は、上記の URL を置き換えてください: |
リクエストメソッド | POST |
リクエストヘッダー | |
メッセージ本文 | 以下のメッセージ本文には、すべてのリクエストパラメーターが含まれています。必要に応じて、任意のフィールドを省略できます: |
リクエストパラメーター
パラメーター | 型 | デフォルト値 | 必須 | 説明 |
model | string | - | はい | 音声および動画ファイルの文字起こしに使用するモデル名。詳しくは、「モデルの可用性」をご参照ください。 |
file_urls | array[string] | - | はい | 音声および動画ファイルの URL(HTTP/HTTPS)。1 回のリクエストで最大 100 個の URL を指定できます。 OSS に音声ファイルを保存している場合、RESTful API では oss:// プレフィックスで始まる一時 URL をサポートしています。 重要
|
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 文字列である必要があります: JSON フィールドの説明:
|
diarization_enabled | boolean | false | いいえ | 自動話者分離はデフォルトで無効です。この機能はシングルチャンネル音声にのみ適用可能であり(マルチチャンネル音声ではサポートされません)。 有効にすると、認識結果に話者を区別するための
|
speaker_count | integer | - | いいえ | 話者の参考数(2~100 の整数)。このパラメーターは、diarization_enabled が true の場合にのみ有効です。デフォルトでは話者数は自動検出されます。このパラメーターはアルゴリズムを補助しますが、正確な数を保証するものではありません。 |
language_hints | array[string] | - | いいえ | 認識に使用する言語コード。自動言語検出を行う場合は、未設定のままにしてください。 システムは配列の最初の値のみを読み取り、それ以降の値は無視されます。 各モデルがサポートする言語コードは以下のとおりです:
|
応答パラメーター
パラメーター | 型 | 説明 |
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 を置き換えてください: |
リクエストメソッド | POST |
リクエストヘッダー | |
メッセージ本文 | なし。 |
リクエストパラメーター
パラメーター | 型 | デフォルト値 | 必須 | 説明 |
task_id | string | - | はい | クエリ対象のタスク ID。タスク送信 API から返される |
応答パラメーター
パラメーター | 型 | 説明 |
task_id | string | 照会対象のタスク ID。 |
task_status | string | 照会対象のタスクのステータス。 説明 タスクに複数のサブタスクが含まれる場合、いずれかのサブタスクが成功すると、全体のステータスは |
subtask_status | string | サブタスクのステータス。 |
file_url | string | 文字起こしタスクで処理されたファイルの URL。 |
transcription_url | string | 認識結果へのリンク(有効期間:24 時間)。有効期限が切れた後は、以前の URL からのタスク照会および結果のダウンロードは失敗します。 結果は JSON 形式で保存されます。ファイルをダウンロードするか、HTTP リクエストで直接読み取ることができます。 JSON フィールドの説明については、「認識結果の説明」をご参照ください。 |
認識結果の説明
認識結果は JSON ファイルとして保存されます。
主なパラメーターは以下のとおりです:
パラメーター | 型 | 説明 |
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) への音声ファイルのアップロード を推奨します。
SDKを使用してOSSに保存されているファイルにアクセスする場合、oss:// プレフィックスを含む一時URLを使用することはできません。
RESTful API を使用して OSS に保存されたファイルにアクセスする場合、oss:// プレフィックスを含む一時的な URL を使用できます:
一時 URL は 48 時間有効であり、有効期限切れ後は使用できません。本番環境では使用しないでください。
アップロード認証情報取得 API の呼び出し上限は 100 QPS であり、スケーリングはサポートされません。本番環境、高同時実行数シナリオ、ストレステストシナリオでは使用しないでください。
本番環境では、ファイルの長期的な可用性を確保し、レート制限の問題を回避するために、OSS などの安定したストレージサービスをご利用ください。
Q:認識結果を得るまでにどのくらい時間がかかりますか?
タスクは送信後に PENDING ステータスに入ります。キュー待ち時間(通常数分)はキューの長さおよびファイルの再生時間によって異なります。音声ファイルが長いほど、処理時間も長くなります。
トラブルシューティング
コードエラーについては、「エラーコード」を参照してトラブルシューティングを行ってください。
Q:OSS 音声ファイルの一時パブリック URL にアクセスできない場合、どうすればよいですか?
A:ヘッダーで X-DashScope-OssResourceResolve を enable に設定します。
この方法は推奨されません。
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