錄音檔案識別(也稱為錄音檔案轉寫)是指對音視頻檔案進行語音辨識,將語音轉換為文本。支援單個檔案識別和批量檔案識別,適用於處理不需要即時返回結果的情境。
應用情境
會議、課堂錄音記錄:將錄音檔案轉成文字,方便後期快速進行資訊檢索、分析和整理重點內容。
客服電話分析:自動記錄並分析客戶電話,快速理解客戶需求,自動分類服務要求,甚至識別客戶情緒,從而提升服務品質與效率。
字幕產生:協助媒體製作與後期編輯人員識別音視頻材料並產生對應的字幕,加速後期製作的流程。
市場研究與資料分析:將市場調研中收集到的消費者訪談、焦點小組討論等錄音資料,通過識別模型進行分析,提取消費者意見、偏好等資訊,為企業決策提供支援。
歌唱識別:即使在伴隨背景音樂(BGM)的情況下,也能實現整首歌曲的轉寫(僅fun-asr和fun-asr-2025-11-07模型支援該功能)。
支援的模型
模型選型建議
語種支援:
對於中文(普通話、方言)、英文和日語,建議優先選擇Fun-ASR(最新版fun-asr-2025-11-07)或Paraformer(最新版Paraformer-v2)模型以獲得更優效果。
對於韓語、西班牙語、法語、德語、意大利語,建議優先選擇Paraformer模型。特別是最新版Paraformer-v2模型,它支援指定語種,包括中文(含普通話和多種方言)、粵語、英文、日語、韓語。指定語種後,系統能夠集中演算法資源和語言模型於該特定語種,避免了在多種可能的語種中進行猜測和切換,從而減少了誤識別的機率。
對於越南語、泰語、印尼語、粵語、粵中英混讀等東南亞或香港地區的語言,建議選擇Fun-ASR多語言版本(fun-asr-mtl模型)。
熱詞定製:如果您的業務領域中,有部分專有名詞和行業術語識別效果不夠好,您可以定製熱詞,將這些詞添加到詞表從而改善識別結果。如需使用熱詞功能,請選擇Paraformer或Fun-ASR模型。關於熱詞的更多資訊,請參見定製熱詞。
快速開始
下面是調用API的範例程式碼。
您需要已擷取與配置 API Key並配置API Key到環境變數(準備下線,併入配置 API Key)。如果通過SDK調用,還需要安裝DashScope SDK。
Fun-ASR
由於音視頻檔案的尺寸通常較大,檔案傳輸和語音辨識處理均需要時間,檔案轉寫API通過非同步呼叫方式來提交任務。開發人員需要通過查詢介面,在檔案轉寫完成後獲得語音辨識結果。
Python
from http import HTTPStatus
from dashscope.audio.asr import Transcription
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 Key不同。擷取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# 若沒有配置環境變數,請用百鍊API Key將下行替換為: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']
)
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!')Java
import com.alibaba.dashscope.audio.asr.transcription.*;
import com.alibaba.dashscope.common.TaskStatus;
import com.alibaba.dashscope.utils.Constants;
import com.google.gson.*;
import java.util.Arrays;
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 Key不同。擷取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
// 若沒有配置環境變數,請用百鍊API Key將下行替換為:.apiKey("sk-xxx")
//.apiKey("apikey")
.model("fun-asr")
.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());
// 迴圈擷取任務執行結果,直到任務結束
while (true) {
result = transcription.fetch(TranscriptionQueryParam.FromTranscriptionParam(param, result.getTaskId()));
if (result.getTaskStatus() == TaskStatus.SUCCEEDED || result.getTaskStatus() == TaskStatus.FAILED) {
break;
}
Thread.sleep(1000);
}
// 列印結果
System.out.println(new GsonBuilder().setPrettyPrinting().create().toJson(result.getOutput()));
} catch (Exception e) {
System.out.println("error: " + e);
}
System.exit(0);
}
}Paraformer
由於音視頻檔案的尺寸通常較大,檔案傳輸和語音辨識處理均需要時間,檔案轉寫API通過非同步呼叫方式來提交任務。開發人員需要通過查詢介面,在檔案轉寫完成後獲得語音辨識結果。
Python
from http import HTTPStatus
from dashscope.audio.asr import Transcription
import json
# 若沒有將API Key配置到環境變數中,需將下面這行代碼注釋放開,並將apiKey替換為自己的API Key
# import dashscope
# dashscope.api_key = "apiKey"
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-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!')Java
輸入檔案限制
Fun-ASR模型 | Paraformer模型 | |
輸入檔案的方式 | 音頻檔案的URL | |
檔案數量 | 不超過100個 | |
檔案大小 | 每個URL中的檔案不超過2 GB,時間長度為12小時以內 | |
檔案格式 | aac、amr、avi、flac、flv、m4a、mkv、mov、mp3、mp4、mpeg、ogg、opus、wav、webm、wma、wmv | |
採樣率 | 任意 | paraformer-v2模型對採樣率無限制,paraformer-8k-v2 僅支援8kHz採樣率 |
檔案大小說明:如果超出限制,可嘗試對檔案進行預先處理以降低檔案尺寸。具體操作,請參見最佳實務。
音頻格式說明:由於音視頻檔案格式及其變種眾多,因此不能保證所有格式均能夠被正確識別。請通過測實驗證您所提供的檔案能夠獲得正常的語音辨識結果。
採樣率說明:採樣率是指每秒對聲音訊號的採樣次數。更高的採樣率提供更多資訊,有助於提高語音辨識的準確率,但過高的採樣率可能引入更多無關資訊,反而影響識別效果。應根據實際採樣率選擇合適的模型。例如,8000Hz的語音資料應直接使用支援8000Hz的模型,無需轉換為16000Hz。
API參考
常見問題
Q:如何提升識別準確率?
需綜合考慮影響因素並採取相應措施。
主要影響因素:
聲音品質:錄音裝置、採樣率及環境雜訊影響清晰度(高品質音頻是基礎)
說話人特徵:音調、語速、口音和方言差異(尤其少見方言或重口音)增加識別難度
語言和詞彙:多語言混合、專業術語或俚語提升識別難度(熱詞配置可最佳化)
上下文理解:缺乏上下文易導致語義歧義(尤其在依賴前後文才能正確識別的語境中)
最佳化方法:
最佳化音頻品質:使用高效能麥克風及推薦採樣率裝置;減少環境雜訊與回聲
適配說話人:針對顯著口音/方言情境,選用支援方言的模型
配置熱詞:為專業術語、專有名詞等設定熱詞(參見定製熱詞-Paraformer/Fun-ASR)
保留上下文:避免過短音頻分段