Fun-ASR/Paraformer 音声ファイル認識モデルは、録音された音声をテキストに変換します。単一ファイル処理とバッチ処理の両方をサポートしており、リアルタイムの結果を必要としないシナリオに適しています。
主な特徴
多言語認識:中国語 (複数の方言を含む)、英語、日本語、韓国語、ドイツ語、フランス語、ロシア語など、複数の言語をサポートしています。
幅広いフォーマット互換性:任意のサンプルレートをサポートし、AAC、WAV、MP3 などのさまざまな主流の音声・動画フォーマットと互換性があります。
長尺音声ファイルの処理:単一の音声ファイルに対して、最大 12 時間、サイズ 2 GB までの非同期文字起こしをサポートしています。
歌唱認識:BGM がある場合でも、曲全体を文字起こしします。この機能は、fun-asr および fun-asr-2025-11-07 モデルでのみ利用可能です。
豊富な認識機能:話者分離、禁止用語フィルタリング、文レベルおよび単語レベルのタイムスタンプ、ホットワード強調など、特定要件を満たすための設定可能な機能を提供します。
利用可能状況
サポート対象モデル:
国際
国際デプロイメントモードでは、アクセスポイントとデータストレージはシンガポールリージョンに配置され、モデル推論の計算リソースはグローバル (中国本土を除く) で動的にスケジュールされます。
以下のモデルを呼び出す際は、シンガポールリージョンの 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 | 単一のモデルで複数の言語を処理できるため、開発とデプロイメントが簡素化されます。 |
エンターテイメントコンテンツの分析と字幕生成 | fun-asr | 独自の歌唱認識機能を備えており、ライブ配信中の歌や歌唱部分を効果的に文字起こしします。耐ノイズ性と組み合わせることで、複雑なメディア音声の処理に最適です。 |
ニュース/インタビュー番組の字幕生成 | fun-asr、paraformer-v2 | 長尺音声処理、句読点予測、タイムスタンプにより、構造化された字幕を直接生成できます。 |
スマートハードウェア向けの遠距離音声インタラクション | fun-asr | 遠距離 VAD は特別に最適化されており、家庭や車内などのノイズの多い環境で、遠くにいるユーザーのコマンドをより正確に捉えて認識します。 |
詳細については、「モデル機能の比較」をご参照ください。
クイックスタート
以下のセクションでは、API 呼び出しのサンプルコードを提供します。
API キーを取得し、API キーを環境変数として設定する必要があります。SDK を使用して呼び出しを行う場合は、DashScope SDK をインストールする必要もあります。
Fun-ASR
音声ファイルや動画ファイルはサイズが大きくなることが多いため、ファイル転送と音声認識に時間がかかる場合があります。ファイル認識 API は非同期呼び出しを使用してタスクを送信します。ファイル認識が完了した後、クエリ 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/ja/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/ja/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 は非同期呼び出しを使用してタスクを送信します。ファイル認識が完了した後、クエリ 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/ja/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/ja/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。最大 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 | |
価格 | 国際:$0.000035/秒 中国本土:$0.000032/秒 | 中国本土:$0.000012/秒 |
よくある質問
Q:認識精度を向上させるにはどうすればよいですか?
関連するすべての要因を考慮し、適切な対策を講じる必要があります。
主な要因は次のとおりです:
音質:録音デバイスの品質、サンプルレート、環境ノイズは音声の明瞭さに影響します。高精度の認識には、高品質な音声が不可欠です。
話者の特徴:ピッチ、発話速度、アクセント、方言の違いは、特に珍しい方言や強いアクセントの場合、認識をより困難にする可能性があります。
言語と語彙:複数言語の混在、専門用語、スラングは認識をより困難にする可能性があります。これらのケースでは、ホットワードを設定して認識を最適化できます。
文脈理解:文脈の欠如は、特に正しい認識に文脈が必要な状況で、意味の曖昧さを引き起こす可能性があります。
最適化方法:
音質の最適化:高性能なマイクと推奨サンプルレートをサポートするデバイスを使用してください。環境ノイズとエコーを低減してください。
話者への適応:強いアクセントや多様な方言が関わるシナリオでは、それらの方言をサポートするモデルを選択してください。
ホットワードの設定:専門用語、固有名詞、その他の特定の用語に対してホットワードを設定します。詳細については、「カスタムホットワード」をご参照ください。
文脈の維持:音声を短すぎるクリップに分割することは避けてください。