Paraformer Python SDK を使用して、DashScope API で音声ファイルと動画ファイルの文字起こしを行います。
重要このドキュメントは、中国本土 (北京) リージョンにのみ適用されます。モデルを使用するには、中国本土 (北京) リージョンの API キー が必要です。
重要Alibaba Cloud Model Studio は、中国 (北京) リージョン向けにワークスペース固有ドメインをリリースしました。この新しい専用ドメインにより、推論リクエストのパフォーマンスと安定性が向上します。dashscope.aliyuncs.com から {WorkspaceId}.cn-beijing.maas.aliyuncs.com への移行を推奨します。
{WorkspaceId} を実際の ワークスペース ID に置き換えてください。既存のドメインは引き続き問題なく利用できます。
ユーザーガイド:非リアルタイム音声認識
前提条件
サービスを有効化し、API キーを取得 してください。コード漏洩によるセキュリティリスクを回避するため、コード内に API キーをハードコードせず、環境変数として API キーを構成 することを推奨します。
注記サードパーティのアプリケーションやユーザーに一時的なアクセス権を付与する必要がある場合や、機密データへのアクセスや削除など高リスク操作を厳密に制御したい場合は、一時認証トークン の使用を推奨します。
長期的な API キーと比較して、一時認証トークンは有効期間が短く(60 秒)、セキュリティが高く、一時的な呼び出しシナリオに適しており、API キーの漏洩リスクを効果的に低減できます。
使用方法: コード内で、認証に使用していた API キーを取得した一時認証トークンに置き換えます。
クイックスタート
コアクラス (Transcription) は、2つの文字起こしアプローチをサポートしています。
- 非同期送信 + 同期待機:タスクを送信し、完了して結果が返るまでブロックします。
- 非同期送信 + 非同期ポーリング:タスクを送信し、いつでも結果をポーリングします。
非同期送信 + 同期待機
-
コアクラス (Transcription) の
async_callメソッドを呼び出し、リクエストパラメーターを設定します。注記
- ファイル文字起こしサービスは、API を通じて送信されたタスクをベストエフォート方式で処理します。送信後、タスクはキューイング中 (
PENDING) 状態になります。キュー時間はキューの長さとファイルの長さに依存し、正確に見積もることはできませんが、通常は数分以内に完了します。処理が開始されると、音声認識はリアルタイムの数百倍の速度で完了します。 - 各タスクの完了後、認識結果と URL ダウンロードリンクは 24 時間有効です。有効期限が切れると、以前に提供された URL を通じてタスクをクエリしたり、結果をダウンロードしたりすることはできません。
- ファイル文字起こしサービスは、API を通じて送信されたタスクをベストエフォート方式で処理します。送信後、タスクはキューイング中 (
-
コアクラス (Transcription) の
waitメソッドを呼び出し、タスクが完了するまで同期的に待機します。タスクステータスには、
PENDING、RUNNING、SUCCEEDED、FAILEDがあります。waitメソッドを呼び出すと、タスクがPENDINGまたはRUNNINGの間はブロックされます。タスクがSUCCEEDEDまたはFAILEDになると、waitは結果を返します。waitメソッドは TranscriptionResponse を返します。
クリックして完全な例を表示
from http import HTTPStatus
from dashscope.audio.asr import Transcription
import json
# 環境変数に API キーを設定していない場合は、
# 次の行のコメントを解除し、「apiKey」を実際の API キーに置き換えてください。
# import dashscope
# dashscope.api_key = "apiKey"
# China (Beijing):{WorkspaceId} を実際のワークスペース ID に置き換えてください。設定はリージョンによって異なります。
dashscope.base_http_api_url = "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1"
task_response = Transcription.async_call(
model='paraformer-v2',
file_urls=['{YOUR_AUDIO_URL}'],
language_hints=['zh', 'en'] # 「language_hints」パラメーターは、paraformer-v2 モデルでのみサポートされています。
)
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!')
非同期送信 + 非同期ポーリング
-
コアクラス (Transcription) の
async_callメソッドを呼び出し、リクエストパラメーターを設定します。注記
- ファイル文字起こしサービスは、API を通じて送信されたタスクをベストエフォート方式で処理します。送信後、タスクはキューイング中 (
PENDING) 状態になります。キュー時間はキューの長さとファイルの長さに依存し、正確に見積もることはできませんが、通常は数分以内に完了します。処理が開始されると、音声認識はリアルタイムの数百倍の速度で完了します。 - 各タスクの完了後、認識結果と URL ダウンロードリンクは 24 時間有効です。有効期限が切れると、以前に提供された URL を通じてタスクをクエリしたり、結果をダウンロードしたりすることはできません。
- ファイル文字起こしサービスは、API を通じて送信されたタスクをベストエフォート方式で処理します。送信後、タスクはキューイング中 (
-
タスクが完了するまで、コアクラス (Transcription) の
fetchメソッドをポーリングします。ステータスが
SUCCEEDEDまたはFAILEDになったらポーリングを停止し、結果を処理します。fetchメソッドは TranscriptionResponse を返します。
クリックして完全な例を表示
from http import HTTPStatus
from dashscope.audio.asr import Transcription
import json
# 環境変数に API キーを設定していない場合は、
# 次の行のコメントを解除し、「apiKey」を実際の API キーに置き換えてください。
# import dashscope
# dashscope.api_key = "apiKey"
# China (Beijing):{WorkspaceId} を実際のワークスペース ID に置き換えてください。設定はリージョンによって異なります。
dashscope.base_http_api_url = "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1"
transcribe_response = Transcription.async_call(
model='paraformer-v2',
file_urls=['{YOUR_AUDIO_URL}'],
language_hints=['zh', 'en'] # 「language_hints」パラメーターは、paraformer-v2 モデルでのみサポートされています。
)
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 | 文字列 | 必須 | Paraformer による音声ファイルおよび動画ファイルの文字起こしに使用するモデル名です。サポートされているモデルについては、リンク先をご参照ください。 | |
file_urls | list[str] | 必須 | 音声ファイルと動画ファイルの文字起こし用 URL のリストです。HTTP および HTTPS プロトコルに対応しています。1 回のリクエストで指定できる URL は 1 つのみです。 音声ファイルが Alibaba Cloud OSS に保存されている場合、SDK は oss:// プレフィックスを持つ一時的な URL をサポートしません。 | |
vocabulary_id | 文字列 | 任意 | カスタム語彙の ID です。v2 シリーズのモデルに対応しており、言語設定が必要です。デフォルトでは無効になっています。詳細については、「カスタム語彙」をご参照ください。 | |
channel_id | list[int] | [0] | 任意 | マルチトラック音声ファイルで認識するオーディオトラックのインデックスを指定します。インデックスは 0 から始まります。例えば、[0] は最初のトラックを認識することを意味し、[0, 1] は最初のトラックと 2 番目のトラックの両方を同時に認識することを意味します。このパラメーターを省略した場合、デフォルトで最初のトラックのみが処理されます。 重要指定された各トラックは独立して課金されます。例えば、1 つのファイルに対して [0, 1] をリクエストすると、2 回分の料金が発生します。 |
disfluency_removal_enabled | ブール値 | False | 任意 | フィラーワードをフィルターします。デフォルトでは無効になっています。 |
timestamp_alignment_enabled | ブール値 | False | 任意 | タイムスタンプアライメントを有効にします。デフォルトでは無効になっています。 |
special_word_filter | 文字列 | 任意 | 音声認識中に処理する禁止用語を指定し、異なる禁止用語に対して異なる処理方法を設定できます。 このパラメーターが提供されない場合、システムは組み込みの禁止用語フィルタリングロジックを使用し、認識結果で Alibaba Cloud Model Studio 禁止用語リスト に一致する単語は、同じ長さの このパラメーターが提供される場合、以下の禁止用語処理戦略を実装できます:
このパラメーターの値は、次の構造を持つ JSON 文字列である必要があります: JSON フィールドの説明:
| |
language_hints | list[str] | ["zh", "en"] | 任意 | 認識する音声の言語コードを指定します。 このパラメーターは paraformer-v2 モデルにのみ適用されます。 サポートされている言語コード:
|
diarization_enabled | ブール値 | False | 任意 | 自動話者分離。デフォルトでは無効です。 モノラル音声にのみ適用されます。マルチチャンネル音声は話者分離をサポートしていません。 この機能が有効な場合、認識結果には異なる話者を区別するための 注記話者分離を有効にする場合、音声の長さが 2 時間を超えないようにすることを推奨します。超えると認識が失敗したり、タイムアウトしたりする可能性があります。
|
speaker_count | 整数 | 任意 | 参考話者数です。値の範囲は 2~100 の整数です。
デフォルトでは自動的に決定されます。このパラメーターはアルゴリズムのヒントとして使用されますが、正確な数を保証するものではありません。 |
応答
TranscriptionResponse
TranscriptionResponse には、task_id、task_status、および output プロパティに実行結果が含まれます。TranscriptionOutput をご参照ください。
クリックして TranscriptionResponse の構造例を表示
async_call が返す TranscriptionResponse には、submit_time や scheduled_time は含まれません。
{
"status_code":200,
"request_id":"251aceab-a6aa-9fc4-b7f7-0cc6d3e2a9f3",
"code":null,
"message":"",
"output":{
"task_id":"7d0a58a3-1dbe-4de9-8cff-5f48213128b0",
"task_status":"PENDING"
},
"usage":null
}
submit_time と scheduled_time を取得するには、async_call() の戻り値を直接使用するのではなく、wait() または fetch() メソッドを使用してください。wait() または fetch() が返す 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": "FAILED",
"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": "The audio file cannot be downloaded.",
"subtask_status": "FAILED"
}
],
"task_metrics": {
"TOTAL": 1,
"SUCCEEDED": 0,
"FAILED": 1
}
},
"usage":{
"duration":9
}
}
主要なパラメーター:
パラメーター | 説明 |
|---|---|
status_code | HTTP リクエストのステータスコード。 |
code |
|
message |
|
task_id | タスク ID。 |
task_status | タスクステータス。 ステータスには タスクに複数のサブタスクが含まれる場合、いずれかのサブタスクが成功すると、タスク全体のステータスは |
results | サブタスクの音声認識結果。 |
subtask_status | サブタスクのステータス。 ステータスには |
file_url | 認識する音声ファイルの URL。 |
transcription_url | 音声認識結果に対応する URL。 音声認識結果は JSON ファイルとして保存されます。 |
TranscriptionOutput
TranscriptionOutput オブジェクトは、タスクの実行結果を含む、TranscriptionResponse オブジェクトの output プロパティです。
クリックして 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 はエラーメッセージです。エラー発生時にのみ返されます。エラーコードをご参照ください。
{
"task_id": "7bac899c-06ec-4a79-8875-xxxxxxxxxxxx",
"task_status": "FAILED",
"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": "The audio file cannot be downloaded.",
"subtask_status": "FAILED"
}
],
"task_metrics": {
"TOTAL": 1,
"SUCCEEDED": 0,
"FAILED": 1
}
}
重要なパラメーター:
パラメーター | 説明 |
|---|---|
code | エラーコード。 |
message | エラーメッセージ。 |
task_id | タスク ID。 |
task_status | タスクステータス。 ステータスには タスクに複数のサブタスクが含まれる場合、いずれかのサブタスクが成功すると、タスク全体のステータスは |
results | サブタスクの音声認識結果。 |
subtask_status | サブタスクのステータス。 ステータスには |
file_url | 認識する音声ファイルの URL。 |
transcription_url | 音声認識結果に対応する URL。 音声認識結果は 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":"Hello world, this is the Alibaba speech laboratory.",
"sentences":[
{
"begin_time":100,
"end_time":3820,
"text":"Hello world, this is the Alibaba speech laboratory.",
"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 | 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 リファレンス
コアクラス (Transcription)
Transcription クラスをインポートします: from dashscope.audio.asr import Transcription。
| メンバーメソッド | メソッドシグネチャ | 説明 |
|---|---|---|
async_call | | 音声認識タスクを非同期で送信します。 このメソッドは TranscriptionResponse を返します。 |
wait | | 非同期タスクが完了するまで (ステータスが このメソッドは TranscriptionResponse を返します。 |
fetch | | 非同期タスクの実行結果を照会します。 このメソッドは TranscriptionResponse を返します。 |
エラーコード
エラーが発生した場合は、「エラーコード」を参照してトラブルシューティングを行ってください。
問題が解決しない場合は、開発者コミュニティ に参加して問題を報告し、さらなる調査のためにリクエスト 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": "{YOUR_AUDIO_URL}",
"code": "InvalidFile.DownloadFailed",
"message": "The audio file cannot be downloaded.",
"subtask_status": "FAILED"
}
],
"task_metrics": {
"TOTAL": 1,
"SUCCEEDED": 0,
"FAILED": 1
}
}
その他の例
GitHub でその他の例をご覧ください。
よくある質問
機能
Q:Base64 エンコードされた音声をサポートしていますか?
いいえ。Base64 エンコードされた音声はサポートされていません。パブリックにアクセス可能な URL を介してアクセスできる音声のみがサポートされています。バイナリストリームや直接のローカルファイル認識はサポートされていません。
Q:音声ファイルをパブリックにアクセス可能な URL として提供するにはどうすればよいですか?
一般的に、以下の手順に従います (これは一般的なアプローチであり、詳細はストレージ製品によって異なります。音声を Alibaba Cloud OSS にアップロードすることを推奨します):
1. ストレージとホスティング方法を選択する
例:
-
Object Storage Service (推奨):
- クラウドプロバイダーのオブジェクトストレージサービス (例:Alibaba Cloud OSS) を使用して音声ファイルをバケットにアップロードし、パブリックアクセスに設定します。
- 利点:高可用性、CDN アクセラレーションのサポート、簡単な管理。
-
Web サーバー:
- HTTP/HTTPS アクセスをサポートする Web サーバー (Nginx や Apache など) に音声ファイルを配置します。
- 利点:小規模プロジェクトやローカルテストに適しています。
-
コンテンツデリバリーネットワーク (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 を有効にすることができます。
- アップロード後、システムは自動的にパブリックアクセス URL を生成します (通常は
-
Web サーバー:
- ファイルアクセス URL は通常、サーバーアドレスとファイルパスを組み合わせたものです (例:
https://your-domain.com/audio/file.mp3)。
- ファイルアクセス URL は通常、サーバーアドレスとファイルパスを組み合わせたものです (例:
-
CDN:
- CDN アクセラレーションを設定した後、CDN が提供する URL を使用します (例:
https://cdn.your-domain.com/audio/file.mp3)。
- CDN アクセラレーションを設定した後、CDN が提供する URL を使用します (例:
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:認識結果が音声の再生と同期しない場合はどうすればよいですか?
リクエストパラメーターの timestamp_alignment_enabled を true に設定してタイムスタンプキャリブレーションを有効にします。これにより、認識結果が音声の再生と同期します。
Q:タスクで InvalidFile.DownloadFailed エラーが返される場合はどうすればよいですか?
ファイル URL にスペースや中国語などの非 ASCII 文字が含まれていないか確認してください。ファイル名にスペースが含まれる場合 (例:my audio recording.mp4)、各スペースを %20 に置き換え、ファイル名を URL エンコードしてから file_urls パラメーターに渡してください。
Q:継続的なポーリング後も結果を取得できませんか?
これはレート制限が原因である可能性があります。しばらくお待ちください。容量拡張が必要な場合は、開発者コミュニティ に参加して申請してください。
Q:なぜ認識結果がないのですか (音声を認識できない)?
- 音声が要件 (フォーマット、サンプリングレート) を満たしているか確認してください。
paraformer-v2モデルを使用している場合は、language_hintsの設定が正しいか確認してください。- 上記のいずれでも問題が解決しない場合は、カスタムホットワードを使用して特定の単語の認識を向上させることができます。
その他の質問
GitHub の Q&A ページをご確認ください。