语音转文字(FireRed)
更新时间:2026-06-15
简介
语音识别模块 - 基于 FireRed ASR 模型的多语言语音转文字解决方案
功能描述
- 多语言识别:支持中英文、以及中文方言
- 多模型选择:支持多种模型,包括AED模型和LLM模型
- 音频类型: 支持单声道、16K采样率的wav音频文件
- 为保证识别效果,对于AED模型,建议音频长度不超过60s;对于LLM模型,建议音频长度不超过30s
- 使用LLM进行批量推理时,建议确保音频长度差异不大,如差异较大,建议设置batch_size=1
- 使用之前建议对音频进行标准化处理,转化成该算子支持的音频文件
FireRedASR-AED-LFireRedASR-LLM-L
算子参数
输入
| 输入 | 含义 |
|---|---|
| contents | 包含音频数据的数组,元素类型为字符串(文件路径或URL)。 支持本地文件路径以及bos://、s3://、http://、https://开头的远程文件链接 |
| contents_ids | 包含音频数据的数组,元素类型为字符串,用于唯一标识音频 默认值:None |
输出
| 输出 | 含义 |
|---|---|
| result | 处理后的数组,元素为每个音频的理解结果文本。对于处理失败的音频,返回空字符串。 |
参数
| 参数名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| audio_src_type | str | 必填 | 音频格式类型 支持的音频格式类型,包含: - bos/http 地址(audio_url) - base64 编码(audio_base64) - 二进制流(audio_binary) 可选值:["audio_binary", "audio_url", "audio_base64"] |
| model_path | str | '/opt/aihc/models' | 模型存储路径 默认值:"/opt/aihc/models" |
| model_name | str | 'FireRedAsr/FireRedASR-AED-L' | 模型名称 支持的FireRed系列模型: - FireRedAsr/FireRedASR-AED-L: 小模型 - FireRedAsr/FireRedASR-LLM-L: 大模型 可选值:[ "FireRedAsr/FireRedASR-AED-L", "FireRedAsr/FireRedASR-LLM-L" ] 默认值:"FireRedAsr/FireRedASR-AED-L" |
| batch_size | int | 1 | 单次处理的音频样本数量 默认值:1 |
| beam_size | int | 3 | 解码时的beam宽度 控制解码时的搜索空间大小,数值越大,识别准确率可能提升但速度变慢 默认值:3 |
| decode_min_len | int | 0 | 最小解码长度 限制输出文本的最小长度,0表示不限制 默认值:0 |
| decode_max_len | int | 0 | 最大解码长度 限制输出文本的最大长度,0表示不限制 默认值:0 |
| nbest | int | 1 | AED模型输出候选数 控制输出的候选文本数量,仅AED模型有效 默认值:1 |
| softmax_smoothing | float | 1.25 | AED模型softmax平滑系数 调整softmax分布的平滑程度,仅AED模型有效 默认值:1.25 |
| aed_length_penalty | float | 0.6 | AED模型长度惩罚 控制输出文本长度的惩罚系数,仅AED模型有效 默认值:0.6 |
| eos_penalty | float | 1.0 | AED模型终止符惩罚 控制终止符的惩罚系数,仅AED模型有效 默认值:1.0 |
| repetition_penalty | float | 3.0 | LLM模型重复惩罚 控制生成文本时重复内容的惩罚系数,仅LLM模型有效 默认值:3.0 |
| llm_length_penalty | float | 1.0 | LLM模型长度惩罚 控制生成文本长度的惩罚系数,仅LLM模型有效 默认值:1.0 |
| temperature | float | 1.0 | 温度系数 控制生成文本的随机性(0.0-1.0) 较高值适合创造性场景,较低值适合确定性场景 默认值:1.0 |
| use_fp16 | bool | False | 是否使用FP16推理 是否启用半精度浮点数加速推理,节省显存 默认值:False |
调用示例
Python
1from __future__ import annotations
2
3import os
4
5import daft
6from daft import col
7
8from daft.aihc.common.udf import aihc_udf
9from daft.aihc.functions.audio.audio_asr_firered import AudioAsrFireRed
10
11if __name__ == "__main__":
12 if os.getenv("DAFT_RUNNER", "native") == "ray":
13 import ray
14 ray.init(dashboard_host="0.0.0.0", ignore_reinit_error=True)
15 daft.set_runner_ray()
16 daft.set_execution_config(actor_udf_ready_timeout=6000, min_cpu_per_task=0)
17
18 # TODO: 根据实际场景准备样本数据
19 samples = {"contents": [...], "contents_ids": [...]}
20 ds = daft.from_pydict(samples)
21 constructor_kwargs = {
22 "model_path": '/opt/aihc/models',
23 "model_name": 'FireRedAsr/FireRedASR-AED-L',
24 "batch_size": 1,
25 "beam_size": 3,
26 }
27 ds = ds.with_column(
28 "result",
29 aihc_udf(
30 AudioAsrFireRed,
31 construct_args=constructor_kwargs,
32 num_cpus=1,
33 concurrency=4,
34 batch_size=8,
35 )(col("contents"), col("contents_ids")),
36 )
37 ds.show()
评价此篇文章
