语音识别(Automatic Speech Recognition,ASR)可以将音视频中包含的人类声音转换为文本。适用于会议记录、客户服务、媒体制作、市场研究及多样化的实时交互场景,能显著提升工作效率、服务质量与人机交互体验。
语音识别也称为语音转写、语音转录、语音转文字等。
实时语音识别
实时语音识别可以将音频流实时转换为文本,实现“边说边出文字”的效果。它适用于对麦克风语音进行实时识别,以及对本地音视频文件进行实时转录。
应用场景
会议:为会议、演讲、培训、庭审等提供实时记录。
直播:为直播带货、赛事直播等提供实时字幕。
客服:实时记录通话内容,协助提升服务品质。
游戏:让玩家无需停下手头操作即可语音输入或阅读聊天内容。
社交聊天:使用社交App或输入法时,语音自动转文本。
人机交互:转换语音对话为文字,优化人机交互体验。
支持的模型
模型名称 | 支持的语言 | 支持的采样率 | 适合场景 | 单价 | 免费额度 |
paraformer-realtime-v2 | 中文普通话、中文方言(粤语、吴语、闽南语、东北话、甘肃话、贵州话、河南话、湖北话、湖南话、宁夏话、山西话、陕西话、山东话、四川话、天津话、江西话、云南话、上海话)、英语、日语、韩语 支持多个语种自由切换 | 任意 | 视频直播、会议等 | 0.00024元/秒 | 36,000秒(10小时) 每月1日0点自动发放 有效期1个月 |
paraformer-realtime-v1 | 中文 | 16kHz | |||
paraformer-realtime-8k-v2 | 8kHz | 电话客服等 | |||
paraformer-realtime-8k-v1 |
快速开始
您可以先进行在线体验:请在语音识别页面选择“Paraformer实时语音识别-v2”模型,单击立即体验。
下面是调用API的示例代码。
您需要已获取API Key并配置API Key到环境变量。如果通过SDK调用,还需要安装DashScope SDK。
从麦克风采集实时音频,并将获取的音频流实时发送至语音识别模型。
运行代码示例,当控制台显示
RecognitionCallback open.
时,用户使用麦克风开始说话。在RecognitionCallback sentence:
中实时显示识别结果文本,达到“边说边出文字”的效果。import pyaudio import dashscope from dashscope.audio.asr import (Recognition, RecognitionCallback, RecognitionResult) dashscope.api_key = 'YOUR-DASHSCOPE-API-KEY' # 如果您没有配置环境变量,请用您已获取的API-KEY替换YOUR-DASHSCOPE-API-KEY mic = None stream = None class Callback(RecognitionCallback): def on_open(self) -> None: global mic global stream print('RecognitionCallback open.') mic = pyaudio.PyAudio() stream = mic.open(format=pyaudio.paInt16, channels=1, rate=16000, input=True) def on_close(self) -> None: global mic global stream print('RecognitionCallback close.') stream.stop_stream() stream.close() mic.terminate() stream = None mic = None def on_event(self, result: RecognitionResult) -> None: print('RecognitionCallback sentence: ', result.get_sentence()) callback = Callback() recognition = Recognition(model='paraformer-realtime-v2', format='pcm', sample_rate=16000, callback=callback) recognition.start() while True: if stream: data = stream.read(3200, exception_on_overflow=False) recognition.send_audio_frame(data) else: break recognition.stop()
以上为 Python SDK 样例,更多编程语言支持和接入方式请参见实时语音识别API详情。
输入文件限制
对本地音视频文件进行识别时:
输入文件的方式:上传本地文件。
文件数量:单次调用最多输入1个文件。
文件大小:无限制。
文件格式:支持pcm、wav、opus、speex、aac、amr等多种格式。推荐pcm和wav。
由于音视频文件格式及其变种众多,因此不能保证所有格式均能够被正确识别。请通过测试验证您所提供的文件能够获得正常的语音识别结果。
采样率:支持音视频采样率为16000 Hz及以上,电话语音采样率为8000 Hz及以上。
音频采样率是指录音设备在一秒钟内对声音信号的采样次数,更高的采样率可以提供更丰富的信号信息,有助于提高语音识别系统的准确率,尤其是在处理复杂背景噪声、快速语速或者不同口音的语音时。然而,实际效果还取决于算法的设计和优化。有时,过高的采样率可能引入更多噪声或无关信息,反而对识别结果产生负面影响,特别是在没有相应优化的算法中。因此,请按照音视频的采样率选择适用的模型。如果语音数据采样率是8000Hz,请勿将采样率转换为16000Hz,选用支持8000Hz采样率的模型即可。
录音文件识别
录音文件识别(也称为录音文件转写)是指对音视频文件进行语音识别,将语音转换为文本。支持单个文件识别和批量文件识别,适用于处理不需要即时返回结果的场景。
应用场景
会议、课堂录音记录:将录音文件转成文字,方便后期快速进行信息检索、分析和整理重点内容。
客服电话分析:自动记录并分析客户电话,快速理解客户需求,自动分类服务请求,甚至识别客户情绪,从而提升服务质量与效率。
字幕生成:帮助媒体制作与后期编辑人员识别音视频材料并生成对应的字幕,加速后期制作的流程。
市场研究与数据分析:将市场调研中收集到的消费者访谈、焦点小组讨论等录音数据,通过识别模型进行分析,提取消费者意见、偏好等信息,为企业决策提供支持。
支持的模型
模型名称 | 支持的语言 | 支持的采样率 | 适用的格式 | 单价 | 免费额度 |
paraformer-v2 | 中文普通话、中文方言(粤语、吴语、闽南语、东北话、甘肃话、贵州话、河南话、湖北话、湖南话、宁夏话、山西话、陕西话、山东话、四川话、天津话、江西话、云南话、上海话)、英语、日语、韩语 | 任意 | 视频直播、电话客服等 | 0.00008元/秒 | 36,000秒(10小时) 每月1日0点自动发放 有效期1个月 |
paraformer-8k-v2 | 中文普通话 | 8kHz | 电话语音 | ||
paraformer-v1 | 中文普通话、英语 | 任意 | 音频或视频 | ||
paraformer-8k-v1 | 中文普通话 | 8kHz | 电话语音 | ||
paraformer-mtl-v1 | 中文普通话、中文方言(粤语、吴语、闽南语、东北话、甘肃话、贵州话、河南话、湖北话、湖南话、宁夏话、山西话、陕西话、山东话、四川话、天津话)、英语、日语、韩语、西班牙语、印尼语、法语、德语、意大利语、马来语 | 16kHz及以上 | 音频或视频 |
模型名称 | 支持的语言 | 适用的格式 | 单价 | 免费额度 |
sensevoice-v1 | 超过50种语言(中、英、日、韩、粤等) | 音频或视频 | 0.0007 元/秒 | 36,000秒(10小时) 每月1日0点自动发放 有效期1个月 |
模型选型建议
语种支持:
对于中文(普通话和方言)、粤语、英语、日语、韩语、西班牙语、印尼语、法语、德语、意大利语、马来语,建议优先选择Paraformer以获得更优效果。同时,建议优先选择paraformer-v2模型。paraformer-v2支持指定语种,包括中文(含普通话和多种方言)、粤语、英语、日语、韩语。指定语种后,系统能够集中算法资源和语言模型于该特定语种,避免了在多种可能的语种中进行猜测和切换,从而减少了误识别的概率。
对于其他语言(俄语、泰语等),请选择SenseVoice,具体请参见附录:支持语言列表。
情感和事件识别:如果需要情感识别能力(包括高兴
<HAPPY>
、伤心<SAD>
、生气<ANGRY>
和中性<NEUTRAL>
)和4种常见音频事件识别(包括背景音乐<BGM>
、说话声<Speech>
、掌声<Applause>
和笑声<Laughter>
),请选择SenseVoice语音识别模型。热词定制:如果您的业务领域中,有部分专有名词和行业术语识别效果不够好,您可以定制热词,将这些词添加到词表从而改善识别结果。您可以使用paraformer-v1、paraformer-8k-v1、paraformer-mtl-v1语音识别模型。关于热词的更多信息,请参见Paraformer语音识别热词定制与管理。
快速开始
您可以先进行在线体验:请在语音模型页面选择“Paraformer语音识别-v2”模型,单击立即体验。
下面是调用API的示例代码。
您需要已获取API Key并配置API Key到环境变量。如果通过SDK调用,还需要安装DashScope SDK。
由于音视频文件的尺寸通常较大,文件传输和语音识别处理均需要时间,文件转写API通过异步调用方式来提交任务。开发者需要通过查询接口,在文件转写完成后获得语音识别结果。
Paraformer
import json
from urllib import request
from http import HTTPStatus
import dashscope
dashscope.api_key = 'YOUR-DASHSCOPE-API-KEY' # 如果您没有配置环境变量,请用您已获取的API-KEY替换YOUR-DASHSCOPE-API-KEY
task_response = dashscope.audio.asr.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'])
transcription_response = dashscope.audio.asr.Transcription.wait(
task=task_response.output.task_id)
if transcription_response.status_code == HTTPStatus.OK:
for transcription in transcription_response.output['results']:
url = transcription['transcription_url']
result = json.loads(request.urlopen(url).read().decode('utf8'))
print(json.dumps(result, indent=4, ensure_ascii=False))
print('transcription done!')
else:
print('Error: ', transcription_response.output.message)
以上为 Python SDK 样例,更多编程语言支持和接入方式请参见Paraformer录音文件识别API详情。
SenseVoice
import json
from urllib import request
from http import HTTPStatus
import dashscope
dashscope.api_key = 'YOUR-DASHSCOPE-API-KEY' # 如果您没有配置环境变量,请用您已获取的API-KEY替换YOUR-DASHSCOPE-API-KEY
task_response = dashscope.audio.asr.Transcription.async_call(
model='sensevoice-v1',
file_urls=[
'https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/sensevoice/rich_text_example_1.wav'],
language_hints=['en'],)
transcription_response = dashscope.audio.asr.Transcription.wait(
task=task_response.output.task_id)
if transcription_response.status_code == HTTPStatus.OK:
for transcription in transcription_response.output['results']:
url = transcription['transcription_url']
result = json.loads(request.urlopen(url).read().decode('utf8'))
print(json.dumps(result, indent=4, ensure_ascii=False))
print('transcription done!')
else:
print('Error: ', transcription_response.output.message)
以上为 Python SDK 样例,更多编程语言支持和接入方式请参见SenseVoice录音文件识别API详情。
输入文件限制
输入文件的方式:通过HTTP / HTTPS协议的URL指定。
文件数量:单次调用最多输入100个文件URL,待所有URL转写完成后,您可以一次性获取全部转写结果。
文件大小:每个URL中的文件不超过2 GB。如果超出限制,可尝试对文件进行预处理以降低文件尺寸。具体操作,请参见最佳实践。
文件格式:aac、amr、avi、flac、flv、m4a、mkv、mov、mp3、mp4、mpeg、ogg、opus、wav、webm、wma、wmv。
由于音视频文件格式及其变种众多,因此不能保证所有格式均能够被正确识别。请通过测试验证您所提供的文件能够获得正常的语音识别结果。
采样率:sensevoice-v1、paraformer-v2、paraformer-v1模型对采样率无限制,其他模型支持音视频采样率为16000 Hz及以上,电话语音采样率为8000 Hz及以上。
音频采样率是指录音设备在一秒钟内对声音信号的采样次数,更高的采样率可以提供更丰富的信号信息,有助于提高语音识别系统的准确率,尤其是在处理复杂背景噪声、快速语速或者不同口音的语音时。然而,实际效果还取决于算法的设计和优化。有时,过高的采样率可能引入更多噪声或无关信息,反而对识别结果产生负面影响,特别是在没有相应优化的算法中。因此,请按照音视频的采样率选择适用的模型。如果语音数据采样率是8000Hz,请勿将采样率转换为16000Hz,选用支持8000Hz采样率的模型即可。
常见问题
1. 可能影响识别准确率的因素
声音质量:设备、环境等可能影响语音的清晰度,从而影响识别准确率。高质量的音频输入是提高识别准确性的前提。
说话人特征:不同人的声音特质(如音调、语速、口音、方言)差异很大,这些个体差异会对语音识别系统构成挑战,尤其是对于未充分训练过的特定口音或方言。
语言和词汇:语音识别模型通常针对特定的语言进行训练。当处理多语言混合、专业术语、俚语或网络用语时,识别难度会增加。您可以通过热词功能,改变识别结果,具体操作请参见Paraformer语音识别热词定制与管理。
上下文理解:缺乏对对话上下文的理解可能会导致误解,尤其是在含义模糊或依赖于上下文的情境中。
2. 支持哪些编程语言
Paraformer实时语音识别:
Java、Python:通过DashScope SDK方式调用,详见实时语音识别API详情。
其他编程语言:通过WebSocket方式调用,详见通过WebSocket连接访问实时语音识别服务。
Paraformer录音文件识别:
Java、Python:通过DashScope SDK方式调用,详见Paraformer录音文件识别API详情。
其他编程语言:通过HTTP方式调用,详见通过HTTP调用接口实现异步转写音视频文件。
SenseVoice录音文件识别:
Java、Python:通过DashScope SDK方式调用,详见SenseVoice录音文件识别API详情。
其他编程语言:通过HTTP方式调用,详见通过HTTP调用接口实现异步转写音视频。
3. 语音输入的方式
Paraformer实时语音识别:本地文件、音频流。详见输入文件限制。
Paraformer录音文件识别、SenseVoice录音文件识别:不支持本地文件,只支持公网可访问的录音文件URL。详见输入文件限制。
4. 输入文件大小限制
Paraformer实时语音识别:大小不限。详见输入文件限制。
Paraformer录音文件识别、SenseVoice录音文件识别:单次识别最多能指定100个文件URL,每个URL对应的录音文件大小应小于等于2GB。详见输入文件限制。
5. 是否支持流式输入输出
Paraformer实时语音识别:是。
Paraformer录音文件识别、SenseVoice录音文件识别:否。
6. 限流
Paraformer语音识别:
模型名称 | 任务查询接口RPS限制 |
paraformer-realtime-v2 | 20 |
paraformer-realtime-v1 | |
paraformer-realtime-8k-v1 |
模型名称 | 提交作业接口RPS限制 | 任务查询接口RPS限制 |
paraformer-v2 | 10 | 20 |
paraformer-v1 | ||
paraformer-8k-v1 | ||
paraformer-mtl-v1 |
SenseVoice语音识别:
模型名称 | 任务查询接口RPS限制 |
sensevoice-v1 | 10 |