综合介绍
Dolphin 是由 DataoceanAI 和清华大学合作开发的一个开源模型,专注于亚洲语言的语音识别和语言识别。它支持东亚、南亚、东南亚及中东地区的 40 种语言,以及 22 种中国方言。模型基于超过 21 万小时的音频数据训练,结合了专有和公开数据集。Dolphin 能将语音转为文本,还能检测语音部分(VAD)、分割音频和识别语言(LID)。它设计简单,代码和部分模型在 GitHub 上免费开放,适合开发者使用。
功能列表
- 支持 40 种亚洲语言和 22 种中国方言的语音转文本。
- 提供语音活动检测(VAD),找出音频中的语音片段。
- 支持音频分割,将长音频切成小段处理。
- 实现语言识别(LID),判断音频的语言或方言。
- 开源代码和模型,允许用户修改和定制。
- 提供 base 和 small 两种模型,适应不同需求。
- 使用双层标记系统,区分语言和地区(如
<zh><CN>
)。
使用帮助
Dolphin 的安装和使用流程简单,适合有基础编程能力的用户。以下是详细步骤。
安装流程
- 准备环境
需要 Python 3.8 或以上版本,以及 FFmpeg 来处理音频。- 检查 Python:在终端输入
python --version
,确认版本。 - 未安装 Python 可从 python.org 下载。
- 安装 FFmpeg:根据系统运行命令:
- Ubuntu/Debian:
sudo apt update && sudo apt install ffmpeg
- macOS:
brew install ffmpeg
- Windows:
choco install ffmpeg
未安装包管理工具可从 FFmpeg 官网 下载。
- Ubuntu/Debian:
- 检查 Python:在终端输入
- 安装 Dolphin
有两种方式:- 用 pip 安装
在终端输入:pip install -U dataoceanai-dolphin
这会安装最新稳定版。
- 从源代码安装
要用最新开发版,可从 GitHub 获取:- 克隆仓库:
git clone https://github.com/DataoceanAI/Dolphin.git
- 进入目录:
cd Dolphin
- 安装:
pip install .
- 克隆仓库:
- 用 pip 安装
- 下载模型
Dolphin 有 4 种模型,目前 base(140M 参数)和 small(372M 参数)可免费下载。- 从 Hugging Face 获取模型文件。
- 保存到指定路径,如
/data/models/dolphin/
。 - base 模型速度快,small 模型精度更高。
使用方法
支持命令行和 Python 操作。
命令行操作
- 语音转文本
准备音频文件(如audio.wav
),输入:
dolphin audio.wav
系统自动下载默认模型并输出文本。音频需为 WAV 格式,可用 FFmpeg 转换:
ffmpeg -i input.mp3 output.wav
- 指定模型和路径
用 small 模型:
dolphin audio.wav --model small --model_dir /data/models/dolphin/
- 指定语言和地区
用双层标记识别中文普通话:
dolphin audio.wav --model small --model_dir /data/models/dolphin/ --lang_sym "zh" --region_sym "CN"
lang_sym
是语言代码,如 "zh"(中文)。region_sym
是地区代码,如 "CN"(中国大陆)。
完整语言列表见 languages.md。
- 填充短音频
音频不足 30 秒时,可用--padding_speech true
填充:
dolphin audio.wav --model small --model_dir /data/models/dolphin/ --lang_sym "zh" --region_sym "CN" --padding_speech true
Python 代码操作
- 加载音频和模型
在 Python 中运行:
import dolphin
waveform = dolphin.load_audio("audio.wav") # 加载音频
model = dolphin.load_model("small", "/data/models/dolphin/", "cuda") # 加载模型
"cuda"
用 GPU,无 GPU 改为"cpu"
。
- 执行识别
处理音频并输出:result = model(waveform) # 转文本 print(result.text) # 显示结果
- 指定语言和地区
添加参数:result = model(waveform, lang_sym="zh", region_sym="CN") print(result.text)
特色功能操作
- 语音活动检测(VAD)
自动检测语音片段并标注时间,如:0.0-2.5s: 你好 3.0-4.5s: 今天天气很好
- 语言识别(LID)
判断音频语言,例如:dolphin audio.wav --model small --model_dir /data/models/dolphin/
输出如
<zh>
(中文)或<ja>
(日语)。 - 双层语言标记
用两级标记区分语言和地区,如<zh><CN>
(中文普通话)、<zh><TW>
(台湾普通话),提升亚洲语言处理能力。 - 模型架构
采用 CTC-Attention 架构,编码器用 E-Branchformer,解码器用 Transformer,专为亚洲语言优化。
应用场景
- 会议记录
将亚洲多语言会议录音转为文本,适合国际或地方会议。 - 方言研究
分析 22 种中国方言的语音特征,生成研究数据。 - 智能设备开发
集成到智能设备,实现亚洲语言的语音控制。
QA
- 支持哪些语言?
支持 40 种亚洲语言和 22 种中国方言,详见 languages.md。 - 需要 GPU 吗?
不需要。CPU 可运行,GPU(支持 CUDA)更快。 - base 和 small 模型有何不同?
base 模型小(140M 参数),错误率 33.3%;small 模型大(372M 参数),错误率 25.2%。