Fun-ASR/Paraformer 音声ファイル音声認識モデルは、録音された音声をテキストに変換します。これらのモデルは、単一ファイルおよびバッチファイルの認識をサポートしており、即時結果を必要としないシナリオに適しています。
コア機能
多言語認識: 中国語 (各種方言を含む)、英語、日本語、韓国語、ドイツ語、フランス語、ロシア語など、複数の言語の認識をサポートしています。
幅広いフォーマット互換性: 任意のサンプルレートをサポートし、AAC、WAV、MP3 などの主要なオーディオおよびビデオフォーマットと互換性があります。
長尺音声ファイル処理: 最大12時間、サイズ2 GB の単一音声ファイルの非同期文字起こしをサポートしています。
歌唱認識: バックグラウンドミュージック (BGM) がある場合でも、曲全体を文字起こしします。この機能は、Fun-ASR および Fun-ASR-2025-11-07 モデルのみがサポートしています。
豊富な認識機能: 話者ダイアリゼーション、禁止用語フィルター、文/単語レベルの UNIX タイムスタンプ、ホットワードブースティングなど、個別のニーズを満たす設定可能な機能を提供します。
適用範囲
サポートされているモデル:
国際
国際デプロイメントモードでは、アクセスポイントとデータストレージはシンガポールリージョンにあります。モデル推論用計算リソースは、中国本土を除き、グローバルに動的にスケジュールされます。
以下のモデルを呼び出す際は、シンガポールリージョン用の API キー を選択してください。
Fun-ASR: fun-asr (安定版、現在は fun-asr-2025-11-07 と同等)、fun-asr-2025-11-07 (スナップショット版)、fun-asr-2025-08-25 (スナップショット版)、fun-asr-mtl (安定版、現在は fun-asr-mtl-2025-08-25 と同等)、fun-asr-mtl-2025-08-25 (スナップショット版)
中国本土
中国本土デプロイメントモードでは、アクセスポイントとデータストレージは北京リージョンに配置されます。モデル推論計算リソースは中国本土に限定されます。
以下のモデルを呼び出す際は、北京リージョン用の API キー を選択してください。
Fun-ASR: fun-asr (安定版、現在は fun-asr-2025-11-07 と同等)、fun-asr-2025-11-07 (スナップショット版)、fun-asr-2025-08-25 (スナップショット版)、fun-asr-mtl (安定版、現在は fun-asr-mtl-2025-08-25 と同等)、fun-asr-mtl-2025-08-25 (スナップショット版)
Paraformer: paraformer-v2、paraformer-8k-v2
詳細については、「モデルリスト」をご参照ください。
モデル選択
シナリオ | 推奨モデル | 理由 |
中国語認識 (会議/ライブストリーム) | fun-asr | 中国語向けに深く最適化されており、さまざまな方言をカバーしています。強力な遠距離 VAD とノイズ耐性を備えています。ノイズの多い環境や複数話者の長距離音声など、実世界のシナリオに適しており、より高い精度を実現します。 |
多言語認識 (国際会議) | fun-asr-mtl、paraformer-v2 | 1つのモデルで複数の言語ニーズに対応し、開発とデプロイメントを簡素化します。 |
エンターテイメントコンテンツ分析と字幕生成 | fun-asr | 独自の歌唱認識により、歌やライブパフォーマンスのセグメントを効果的に文字起こしします。ノイズ耐性と組み合わせることで、複雑なメディアオーディオに最適です。 |
ニュース/インタビューの字幕生成 | fun-asr、paraformer-v2 | 長尺音声 + 句読点予測 + UNIX タイムスタンプにより、構造化された字幕を直接生成します。 |
スマートハードウェア向け遠距離音声対話 | fun-asr | 遠距離 VAD (音声活動検出) は、家庭や車両などのノイズの多い環境でユーザーコマンドをより正確にキャプチャして認識するように最適化されています。 |
詳細については、「モデル機能比較」をご参照ください。
クイックスタート
以下のコードサンプルは、API を呼び出す方法を示しています。
API キーを取得し、API キーを環境変数として設定する必要があります。SDK を使用して呼び出しを行う場合は、DashScope SDK をインストールする必要もあります。
Fun-ASR
オーディオおよびビデオファイルは通常サイズが大きいため、ファイル転送と音声認識処理には時間がかかる場合があります。ファイル文字起こし API は、非同期呼び出しを使用してタスクを送信します。文字起こしが完了した後、インターフェイスを照会して音声認識結果を取得する必要があります。
Python
from http import HTTPStatus
from dashscope.audio.asr import Transcription
from urllib import request
import dashscope
import os
import json
# 次の URL はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、URL を以下に置き換えてください: 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/zh/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='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'],
language_hints=['zh', 'en'] # language_hints は、認識対象の音声の言語コードを指定するために使用するオプションパラメーターです。有効値については、API リファレンスドキュメントをご参照ください。
)
transcription_response = Transcription.wait(task=task_response.output.task_id)
if transcription_response.status_code == HTTPStatus.OK:
for transcription in transcription_response.output['results']:
if transcription['subtask_status'] == 'SUCCEEDED':
url = transcription['transcription_url']
result = json.loads(request.urlopen(url).read().decode('utf8'))
print(json.dumps(result, indent=4,
ensure_ascii=False))
else:
print('transcription failed!')
print(transcription)
else:
print('Error: ', transcription_response.output.message)Java
import com.alibaba.dashscope.audio.asr.transcription.*;
import com.alibaba.dashscope.utils.Constants;
import com.google.gson.*;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
// 次の URL はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/api/v1 に置き換えてください。
Constants.baseHttpApiUrl = "https://dashscope-intl.aliyuncs.com/api/v1";
// 文字起こしリクエストパラメーターを作成します。
TranscriptionParam param =
TranscriptionParam.builder()
// シンガポールリージョンと北京リージョンの API キーは異なります。API キーの取得: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
// 環境変数を設定していない場合は、次の行を実際の Model Studio API キーに置き換えてください: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("fun-asr")
// language_hints は、認識対象の音声の言語コードを指定するためのオプションパラメーターです。有効値については、API リファレンスドキュメントをご参照ください。
.parameter("language_hints", new String[]{"zh", "en"})
.fileUrls(
Arrays.asList(
"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"))
.build();
try {
Transcription transcription = new Transcription();
// 文字起こしリクエストを送信します。
TranscriptionResult result = transcription.asyncCall(param);
System.out.println("RequestId: " + result.getRequestId());
// タスクの完了をブロックして待機し、結果を取得します。
result = transcription.wait(
TranscriptionQueryParam.FromTranscriptionParam(param, result.getTaskId()));
// 文字起こし結果を取得します。
List<TranscriptionTaskResult> taskResultList = result.getResults();
if (taskResultList != null && taskResultList.size() > 0) {
for (TranscriptionTaskResult taskResult : taskResultList) {
String transcriptionUrl = taskResult.getTranscriptionUrl();
HttpURLConnection connection =
(HttpURLConnection) new URL(transcriptionUrl).openConnection();
connection.setRequestMethod("GET");
connection.connect();
BufferedReader reader =
new BufferedReader(new InputStreamReader(connection.getInputStream()));
Gson gson = new GsonBuilder().setPrettyPrinting().create();
JsonElement jsonResult = gson.fromJson(reader, JsonObject.class);
System.out.println(gson.toJson(jsonResult));
}
}
} catch (Exception e) {
System.out.println("error: " + e);
}
System.exit(0);
}
}Paraformer
オーディオおよびビデオファイルは通常サイズが大きいため、ファイル転送と音声認識処理には時間がかかる場合があります。ファイル文字起こし API は、非同期呼び出しを使用してタスクを送信します。文字起こしが完了した後、インターフェイスを照会して音声認識結果を取得する必要があります。
Python
from http import HTTPStatus
from dashscope.audio.asr import Transcription
from urllib import request
import dashscope
import os
import json
# API キーを取得するには、https://www.alibabacloud.com/help/zh/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='paraformer-v2',
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'] # language_hints は、認識対象の音声の言語コードを指定するために使用されるオプションのパラメーターです。Paraformer シリーズの paraformer-v2 モデルでのみこのパラメーターがサポートされています。有効値については、API リファレンスドキュメントをご参照ください。
)
transcription_response = Transcription.wait(task=task_response.output.task_id)
if transcription_response.status_code == HTTPStatus.OK:
for transcription in transcription_response.output['results']:
if transcription['subtask_status'] == 'SUCCEEDED':
url = transcription['transcription_url']
result = json.loads(request.urlopen(url).read().decode('utf8'))
print(json.dumps(result, indent=4,
ensure_ascii=False))
else:
print('transcription failed!')
print(transcription)
else:
print('Error: ', transcription_response.output.message)Java
import com.alibaba.dashscope.audio.asr.transcription.*;
import com.google.gson.*;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
// 文字起こしリクエストパラメーターを作成します
TranscriptionParam param =
TranscriptionParam.builder()
// API キーを取得するには、https://www.alibabacloud.com/help/zh/model-studio/get-api-key を参照してください
// 環境変数を設定していない場合は、次の行を Model Studio API キーで置き換えてください: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("paraformer-v2")
// language_hints は、認識対象の音声の言語コードを指定するためのオプションパラメーターです。このパラメーターは、Paraformer シリーズの paraformer-v2 モデルでのみサポートされています。有効値については、API リファレンスドキュメントをご参照ください。
.parameter("language_hints", new String[]{"zh", "en"})
.fileUrls(
Arrays.asList(
"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"))
.build();
try {
Transcription transcription = new Transcription();
// 文字起こしリクエストを送信します
TranscriptionResult result = transcription.asyncCall(param);
System.out.println("RequestId: " + result.getRequestId());
// ブロッキングしてタスクの完了を待機し、結果を取得します
result = transcription.wait(
TranscriptionQueryParam.FromTranscriptionParam(param, result.getTaskId()));
// 文字起こし結果を取得します
List<TranscriptionTaskResult> taskResultList = result.getResults();
if (taskResultList != null && taskResultList.size() > 0) {
for (TranscriptionTaskResult taskResult : taskResultList) {
String transcriptionUrl = taskResult.getTranscriptionUrl();
HttpURLConnection connection =
(HttpURLConnection) new URL(transcriptionUrl).openConnection();
connection.setRequestMethod("GET");
connection.connect();
BufferedReader reader =
new BufferedReader(new InputStreamReader(connection.getInputStream()));
Gson gson = new GsonBuilder().setPrettyPrinting().create();
JsonElement jsonResult = gson.fromJson(reader, JsonObject.class);
System.out.println(gson.toJson(jsonResult));
}
}
} catch (Exception e) {
System.out.println("error: " + e);
}
System.exit(0);
}
}API リファレンス
モデル機能の比較
機能 | Fun-ASR | Paraformer |
対応言語 | モデルによって異なります:
| モデルによって異なります:
|
対応音声フォーマット | aac、amr、avi、flac、flv、m4a、mkv、mov、mp3、mp4、mpeg、ogg、opus、wav、webm、wma、wmv | aac、amr、avi、flac、flv、m4a、mkv、mov、mp3、mp4、mpeg、ogg、opus、wav、webm、wma、wmv |
サンプルレート | 任意 | モデルによって異なります:
|
音声チャンネル数 | 任意 | |
入力方法 | 文字起こし対象の音声ファイルの、公開アクセス可能な URL。1 回のリクエストで最大 100 個の音声ファイルを指定できます。 | |
音声ファイルのサイズおよび再生時間 | 各音声ファイルは、サイズが 2 GB を超えず、再生時間が 12 時間を超えない必要があります。 | |
感情検出 | ||
タイムスタンプ | 常に有効 | デフォルトでは無効です。必要に応じて有効化してください。 |
句読点予測 | 常に有効 | |
ホットワード | 設定可能 | |
ITN | 常に有効 | |
歌唱音声認識 | fun-asr および fun-asr-2025-11-07 のみで利用可能です。 | |
ノイズ拒否 | 常に有効 | |
禁止用語フィルター | デフォルトで Alibaba Cloud Model Studio 禁止用語リスト を使用してコンテンツをフィルター処理します。追加のコンテンツに対しては、カスタマイズ可能なフィルターを設定できます。 | |
話者分離 | デフォルトでは無効です。必要に応じて有効化してください。 | |
フィラー語フィルター | デフォルトでは無効です。必要に応じて有効化してください。 | |
VAD | 常に有効 | |
レート制限(RPS) | ジョブ送信 API:10 ジョブ照会 API:20 | ジョブ送信 API:20 ジョブ照会 API:20 |
接続方式 | DashScope:Java、Python SDK;RESTful API | |
課金 | 国際:1 秒あたり USD 0.000035 中国本土:1 秒あたり USD 0.000032 | 中国本土:1 秒あたり USD 0.000012 |
よくある質問
Q: 認識精度を向上させるにはどうすればよいですか?
関連するすべての要因を考慮し、適切な対策を講じる必要があります。
主な影響要因:
音声品質: 録音デバイス、サンプルレート、バックグラウンドノイズは、音声の明瞭さに影響します。高品質な音声が不可欠です。
話者の特徴: ピッチ、話速、アクセント、方言の違いは、特に珍しい方言や強いアクセントの場合、認識の難易度を高める可能性があります。
言語と語彙: 複数の言語の混在、専門用語、スラングは、認識の難易度を高める可能性があります。このような場合、ホットワード設定を使用して認識を最適化できます。
文脈の理解: 文脈がないと、特に正しい認識が前後のテキストに依存する場合、意味の曖昧さが生じやすくなります。
最適化の方法:
音声品質の向上: 高性能マイクを使用し、推奨サンプルレートで録音してください。バックグラウンドノイズとエコーを低減してください。
話者への対応: 強いアクセントや方言を持つ話者の場合は、それらの方言をサポートするモデルを使用してください。
ホットワードの設定: 専門用語や固有名詞のホットワードを追加します。詳細については、「ホットワードのカスタマイズ」をご参照ください。
文脈の維持: 音声を過度に短いセグメントに分割しないでください。