Paraformer 音声ファイル認識 RESTful API のパラメーターおよび API 詳細情報です。
本ドキュメントは、中国 (北京) リージョンのみに適用されます。モデルを利用するには、中国 (北京) リージョンの API キー を使用する必要があります。
ユーザーガイド: モデルの概要および選択方法については、「音声ファイル認識 - Fun-ASR/Paraformer/SenseVoice」をご参照ください。
本サービスでは、タスク送信インタフェース および タスク照会インタフェース を提供します。通常、タスク送信インタフェースを呼び出して認識タスクをアップロードし、タスクが完了するまでタスク照会インタフェースを繰り返し呼び出します。
前提条件
Model Studio を有効化し、API キーを作成済み である必要があります。環境変数としてエクスポート(ハードコーディングしない)してください。これにより、セキュリティリスクを防止できます。
一時的なアクセス、または機密データへのアクセス/削除など高リスク操作を厳密に制御する場合は、一時認証トークン を使用してください。
長期的な API キーと比較して、一時トークンはより安全(有効期限:60 秒)であり、API キーの漏洩リスクを低減します。
一時トークンを使用するには、コード内の認証用 API キーを一時認証トークンに置き換えてください。
モデルの可用性
paraformer-v2 | paraformer-8k-v2 | |
利用シーン | ライブ配信やミーティングなどのマルチリンガル認識 | 電話カスタマーサポートやボイスメールなどの中国語認識 |
サンプルレート | 任意 | 8 kHz |
対応言語 | 中国語(標準中国語および各種方言)、英語、日本語、韓国語、ドイツ語、フランス語、ロシア語 対応中国語方言:上海語、呉語、閩南語、東北官話、甘粛話、貴州話、河南話、湖北話、湖南話、江西話、寧夏話、山西話、陝西話、山東話、四川話、天津話、雲南話、広東語 | 中国語 |
句読点予測 | ✅ デフォルトで有効、設定不要 | ✅ デフォルトで有効、設定不要 |
逆テキスト正規化 (ITN) | ✅ デフォルトで有効、設定不要 | ✅ デフォルトで有効、設定不要 |
認識言語の指定 | ✅ | ❌ |
制限事項
本サービスは、ローカルの音声/動画ファイルの直接アップロードおよび Base64 エンコードされた音声のサポートをしません。入力ソースは、インターネット経由でアクセス可能な HTTP または HTTPS プロトコルに対応したファイル URL である必要があります。例: https://your-domain.com/file.mp3。
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重要すべての音声/動画フォーマットおよびそのバリエーションについて正確な認識を保証することは不可能(すべての可能性をテストすることが現実的でない)ため、認識結果が期待通りか確認するため、ご利用のファイルでテストすることを推奨します。
音声のサンプルレート
サンプルレートはモデルによって異なります:
paraformer-v2:任意のサンプルレートをサポート
paraformer-8k-v2:8 kHz のみをサポート
音声ファイルのサイズおよび再生時間
音声ファイルのサイズは 2 GB を超えてはならず、再生時間は 12 時間を超えてはなりません。
これらの制限を超えるファイルを処理するには、事前にファイルサイズを縮小する前処理を行ってください。「ファイル文字起こし効率の向上のための動画ファイルの前処理(音声ファイル認識のユースケース向け)」で、前処理に関するベストプラクティスをご確認ください。
バッチ処理における音声ファイル数
1 回のリクエストで最大 100 個のファイル URL をサポートします。
認識可能な言語
モデルによって異なります:
paraformer-v2:
中国語(標準中国語および各種方言):上海語、呉語、閩南語、東北官話、甘粛話、貴州話、河南話、湖北話、湖南話、江西話、寧夏話、山西話、陝西話、山東話、四川話、天津話、雲南話、広東語
英語
日本語
韓国語
paraformer-8k-v2:中国語のみをサポート
API 呼び出し方法の制限
フロントエンドからの直接 API 呼び出しはサポートされていません。バックエンドサーバーを経由して呼び出す必要があります。
タスク送信インタフェース
基本情報
API エンドポイントの説明 | 音声認識タスクを送信します。 |
URL | |
リクエストメソッド | POST |
リクエストヘッダー | |
メッセージ本文 | 以下のコードは、すべての リクエストパラメーター を含むメッセージ本文の例です。必要に応じて、任意のフィールドを省略できます。 |
リクエストパラメーター
パラメーター | 型 | デフォルト値 | 必須 | 説明 |
model | string | - | はい | 音声/動画ファイルの文字起こしに使用する Paraformer モデルの名称です。詳細については、「モデルの可用性」をご参照ください。 |
file_urls | array[string] | - | はい | 音声/動画ファイルの文字起こし対象となる URL のリスト(HTTP/HTTPS)。1 回のリクエストで最大 100 個の URL をサポートします。 OSS に音声ファイルを保存している場合、RESTful API では oss:// プレフィックスで始まる一時 URL をサポートします。 重要
|
resource_type | string | - | いいえ | "asr_phrase" に設定する必要があります。このパラメーターは "resource_id" と併用する必要があります。 |
channel_id | array[integer] | [0] | いいえ | マルチトラック音声ファイルにおいて認識対象とする音声トラックのインデックスを指定します。インデックスは 0 から開始します。たとえば [0] は最初のトラックのみを認識することを意味し、[0, 1] は最初と二番目のトラックの両方を認識することを意味します。このパラメーターを省略した場合、デフォルトで最初のトラックが処理されます。 重要 指定した各音声トラックは個別に課金されます。たとえば、1 つのファイルに対して [0, 1] を指定した場合、2 件分の課金が発生します。 |
disfluency_removal_enabled | boolean | false | いいえ | フィラー語(不自然な言い直しなど)をフィルタリングします。デフォルトでは無効です。 |
timestamp_alignment_enabled | boolean | false | いいえ | タイムスタンプ補正機能を有効化します。デフォルトでは無効です。 |
special_word_filter | string | - | いいえ | 音声認識処理中に処理される機密語を指定します。機密語ごとに異なる処理方法をサポートします。 このパラメーターを渡さない場合、システムは組み込みの機密語フィルタリングロジックを有効化します。Alibaba Cloud Model Studio 機密語リスト(中国語) に一致する検出結果内の単語は、等しい数の このパラメーターが指定された場合、以下の禁止用語処理戦略を適用できます。
このパラメーターの値は、以下の構造を持つ JSON 文字列である必要があります: JSON フィールドの説明:
|
language_hints | array[string] | ["zh", "en"] | いいえ | 認識対象の音声の言語コードを指定します。 このパラメーターは paraformer-v2 モデルにのみ適用可能です。 対応する言語コード:
|
diarization_enabled | boolean | false | いいえ | 自動スピーカーダイアライゼーション機能です。デフォルトでは無効です。 この機能はモノラル音声にのみ適用可能です。マルチチャンネル音声ではスピーカーダイアライゼーションはサポートされません。 この機能を有効化すると、認識結果に異なるスピーカーを区別するための
|
speaker_count | integer | - | いいえ | スピーカー数の参考値(2~100 の整数)。 diarization_enabled が true の場合に有効になります。 スピーカー数はデフォルトで自動判定されます。このパラメーターを設定することでアルゴリズムが指定された数を目標に処理を進めますが、正確な出力を保証するものではありません。 |
応答パラメーター
パラメーター | タイプ | 説明 |
audio_format | string | ソースファイル内の音声フォーマット。 |
channels | array[integer] | ソースファイル内の音声トラックのインデックス情報。モノラル音声の場合は [0]、ステレオ音声の場合は [0, 1] を返します。 |
original_sampling_rate | integer | ソースファイル内の音声のサンプルレート (Hz)。 |
original_duration | integer | ソースファイル内の元の音声の持続時間 (ms)。 |
channel_id | integer | 文字起こし結果の音声トラックインデックス(0 から開始)。 |
content_duration | integer | 音声トラック内で音声であると判定されたコンテンツの持続時間 (ms)。 重要 Paraformer 音声認識モデルサービスは、音声トラック内で音声であると判定されたコンテンツの持続時間のみを文字起こし対象および課金対象とします。非音声コンテンツは計測も課金もされません。通常、音声コンテンツの持続時間は元の音声の持続時間よりも短くなります。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 | |
リクエストメソッド | POST |
リクエストヘッダー | |
メッセージ本文 | なし。 |
リクエストパラメーター
パラメーター | 型 | デフォルト値 | 必須 | 説明 |
task_id | string | - | はい | 照会に必要なタスク ID です。タスク送信インタフェース から返されます。 |
応答パラメーター
パラメーター | 型 | 説明 |
task_id | string | 照会対象のタスク ID です。 |
task_status | string | 照会対象のタスクのステータスです。 説明 複数のサブタスクを含むタスクの場合、 |
subtask_status | string | サブタスクのステータスです。 |
file_url | string | ファイル文字起こしタスクで処理されたファイルの URL です。 |
transcription_url | string | 認識結果を取得するためのリンク(有効期限:24 時間)。有効期限が切れた後は、タスク照会および結果のダウンロードができなくなります。 認識結果は JSON 形式で保存されます。このリンクからダウンロードするか、HTTP リクエストで直接読み取ることができます。 JSON フィールドの詳細については、「認識結果の説明」をご参照ください。 |
認識結果の説明
認識結果は JSON ファイルとして保存されます。
以下の表では、主なパラメーターについて説明します:
パラメーター | 型 | 説明 |
audio_format | string | ソースファイル内の音声フォーマットです。 |
channels | array[integer] | ソースファイル内の音声トラックのインデックス情報です。モノラル音声では [0]、ステレオ音声では [0, 1] などが返されます。 |
original_sampling_rate | integer | ソースファイル内の音声のサンプルレート(Hz)です。 |
original_duration | integer | ソースファイル内の音声の元の再生時間(ms)です。 |
channel_id | integer | 文字起こし結果の音声トラックのインデックス(0 から開始)です。 |
content_duration | integer | 音声トラック内で音声と判定されたコンテンツの再生時間(ms)です。 重要 Paraformer 音声認識モデルサービスでは、音声トラック内で音声と判定されたコンテンツの再生時間のみを文字起こし・課金対象とします。非音声コンテンツは計測・課金されません。通常、音声コンテンツの再生時間は元の音声の再生時間より短くなります。ただし、AI モデルが音声の有無を判定するため、誤差が生じる場合があります。 |
transcript | string | 段落レベルの音声文字起こし結果です。 |
sentences | array | 文レベルの音声文字起こし結果です。 |
words | array | 単語レベルの音声文字起こし結果です。 |
begin_time | integer | 開始タイムスタンプ(ms)です。 |
end_time | integer | 終了タイムスタンプ(ms)です。 |
text | string | 音声文字起こし結果です。 |
speaker_id | integer | 現在のスピーカーのインデックス(0 から開始)で、異なるスピーカーを区別するために使用されます。 このフィールドは、スピーカーダイアライゼーションが有効な場合にのみ認識結果に表示されます。 |
punctuation | string | 単語の後に予測された句読点(ある場合)です。 |
完全な例
組み込みの HTTP ライブラリを使用して、タスク送信および照会リクエストを実装します。まず認識タスクを送信し、その後タスクが完了するまで繰り返し照会します。
以下のコードは Python での例です:
import requests
import json
import time
api_key = "your-dashscope-api-key" # これをご利用の API キーに置き換えてください。
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",
]
language_hints = ["zh", "en"]
# 文字起こし対象のファイル URL のリストを指定してタスクを送信します。
def submit_task(apikey, file_urls) -> str:
headers = {
"Authorization": f"Bearer {apikey}",
"Content-Type": "application/json",
"X-DashScope-Async": "enable",
}
data = {
"model": "paraformer-v2",
"input": {"file_urls": file_urls},
"parameters": {
"channel_id": [0],
"language_hints": language_hints
},
}
# 文字起こしサービスの URL。
service_url = (
"https://dashscope.aliyuncs.com/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://dashscope.aliyuncs.com/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)エラーコード
エラーが発生した場合は、「エラーメッセージ」を参照してトラブルシューティングを行ってください。
問題が解決しない場合は、開発者グループ に参加して問題を報告し、調査のために Request ID を提供してください。
タスクに複数のサブタスクが含まれる場合、いずれかのサブタスクが成功すると、全体のタスクステータスは 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
}
}その他の例
その他の例については、GitHub リポジトリ をご覧ください。
よくある質問
機能
Q:Base64 エンコードされた音声はサポートされていますか?
いいえ、サポートされていません。本サービスは、インターネット経由でアクセス可能な URL からの音声認識のみをサポートしており、バイナリストリームやローカルファイルはサポートしていません。
Q:音声ファイルを公開アクセス可能な URL として提供するにはどうすればよいですか?
以下の一般的な手順に従ってください。具体的なプロセスは、使用するストレージ製品によって異なります。当社では、OSS への音声ファイルのアップロード を推奨します。
SDK を使用して OSS に保存されたファイルにアクセスする場合、oss:// プレフィックス付きの一時 URL を使用できません。
RESTful API を使用して OSS に保存されたファイルにアクセスする場合、oss:// プレフィックス付きの一時 URL を使用できます:
一時 URL の有効期限は 48 時間であり、期限切れ後は使用できません。本番環境では使用しないでください。
アップロード認証情報取得 API の呼び出し上限は 100 QPS であり、スケールアウトはサポートされていません。本番環境、高い同時実行性を要するシナリオ、およびストレステストシナリオでは使用しないでください。
本番環境では、ファイルの長期的な可用性を確保し、レート制限の問題を回避するために、OSS などの安定したストレージサービスをご利用ください。
Q:認識結果を得るまでにどのくらい時間がかかりますか?
タスクを送信すると、PENDING(キュー待ち)状態に入ります。キュー待ち時間はキューの長さおよびファイルの再生時間によって異なり、正確には特定できませんが、通常は数分以内です。再生時間が長い音声ファイルほど処理時間も長くなります。
トラブルシューティング
エラーが発生した場合は、「エラーコード」の情報を参照してください。
Q:認識結果が音声の再生と同期していない場合、どうすればよいですか?
timestamp_alignment_enabled リクエストパラメーター を true に設定してください。これにより、認識結果が音声の再生と同期されます。
Q:OSS に保存された音声ファイルの一時公開アクセス URL にアクセスできない場合、どうすればよいですか?
リクエストヘッダーに X-DashScope-OssResourceResolve を enable に設定してください。
推奨されません。
Java SDK および Paraformer ファイル文字起こし Python SDK では、ヘッダーの設定はサポートされていません。
Q:継続的なポーリングを行っても結果が得られないのはなぜですか?
これはレート制限による可能性があります。クォータの増加を依頼するには、開発者グループ に参加してください。
Q:音声が認識されない(認識結果がない)のはなぜですか?
音声がフォーマットおよびサンプルレートの要件を満たしているか確認してください。
paraformer-v2モデルを使用している場合、language_hintsパラメーターが正しく設定されているか確認してください。
その他の質問
その他の質問については、「GitHub 上の FAQ」をご覧ください。