你是否遇到过这样的烦恼?
很多语音转文字工具对英语支持很好,但遇到中文方言(粤语、四川话等)、越南语、菲律宾语等东方语言时,效果就差强人意了。
好消息来了!
Dataocean AI 团队开发并开源了 Dolphin 项目,这是一个专门为东方语言优化的语音转写模型,能更准确地识别这些语言。
为了让不懂技术的朋友也能轻松使用这个强大的工具,我制作了一个简单易用的操作界面和一键整合包。
下载地址
- • 方式一: 前往百度网盘下载 https://pan.baidu.com/s/1ODhqN-GiaHoGdU-ml3kCUQ?pwd=i2ui
- • GitHub地址 https://github.com/jianchang512/speech2text-df
主要功能:简单高效
- • 专注东方语言: 特别优化,支持多种东方语言和方言。
- • 操作简单: 只需上传音频/视频,选择语言,点击按钮即可。
- • 输出灵活: 默认生成 SRT 字幕文件,也支持 TXT 文本或 JSON 格式。
如何使用?(图形界面版)
跟着下面的步骤,轻松上手:
1. 启动工具
- • 运行程序后,它会自动在浏览器打开一个网页界面,地址通常是
http://127.0.0.1:5080
。如果没自动打开,手动输入这个地址就好。
- • 运行程序后,它会自动在浏览器打开一个网页界面,地址通常是
2. 上传音频或视频文件
- • 点击界面上的“选择文件”按钮,找到你想转写的音频或视频文件。
- • 支持多种格式:mp3, mp4, mpeg, mpga, m4a, wav, webm, aac, flac, mov, mkv, avi 等。
3. 选择语言
- • 在“语言选择”下拉菜单里,找到文件对应的语言(比如:中文普通话、中文四川话、粤语等)。
- • 不确定是什么语言? 没关系,选择“自动检测”,让工具来帮你判断。
4. 选择输出格式
- • 默认会生成 SRT 字幕文件。
- • 你也可以根据需要选择输出 TXT(纯文本)或 JSON(结构化数据)。
5. 开始转写
- • 点击“开始转写”按钮。
- • 工具会在后台自动完成一系列处理:
- • 将你的文件转换成适合处理的 WAV 音频格式。
- • 把音频切成小段,提高处理速度和精度。
- • 利用 Dolphin 模型识别每一段语音。
- • 最后,把识别结果整理成你选定的格式(如 SRT)。
6. 获取结果
- • 转写完成后,结果会直接显示在界面上。
- • 你可以直接复制文本,或者点击下载按钮,把结果保存为文件,方便用在视频剪辑或其他地方。
给开发者:API 接口调用方法
如果你是开发者,想在自己的程序里集成这个功能,整合包也提供了 API 接口。
- • 接口地址 (Endpoint) :
/v1/audio/transcriptions
- • 请求方法 (Method) :
POST
- • 请求格式 (Content-Type) :
multipart/form-data
(注意:不是 application/json,因为要上传文件) - • 请求参数:
- •
file
: (必需) 音频/视频文件本身。 - •
language
: (可选) 目标语言代码 (见下表)。留空则自动检测。 - •
response_format
: (可选) 返回格式,支持"srt"
,"json"
,"txt"
。默认为"srt"
。
- •
- • 返回结果:
- • 成功: 返回指定格式(SRT, JSON 或 TXT)的转写文本。
- • 失败: 返回包含错误信息的 JSON 对象。
支持的语言代码
语言代码 | 中文名字 |
---|---|
zh-CN | 中文(普通话) |
zh-TW | 中文(台湾) |
zh-WU | 中文(吴语) |
zh-SICHUAN | 中文(四川话) |
zh-SHANXI | 中文(山西话) |
zh-ANHUI | 中文(安徽话) |
zh-TIANJIN | 中文(天津话) |
zh-NINGXIA | 中文(宁夏话) |
zh-SHAANXI | 中文(陕西话) |
zh-HEBEI | 中文(河北话) |
zh-SHANDONG | 中文(山东话) |
zh-GUANGDONG | 中文(广东话) |
zh-SHANGHAI | 中文(上海话) |
zh-HUBEI | 中文(湖北话) |
zh-LIAONING | 中文(辽宁话) |
zh-GANSU | 中文(甘肃话) |
zh-FUJIAN | 中文(福建话) |
zh-HUNAN | 中文(湖南话) |
zh-HENAN | 中文(河南话) |
zh-YUNNAN | 中文(云南话) |
zh-MINNAN | 中文(闽南语) |
zh-WENZHOU | 中文(温州话) |
ja-JP | 日语 |
th-TH | 泰语 |
ru-RU | 俄语 |
ko-KR | 韩语 |
id-ID | 印度尼西亚语 |
vi-VN | 越南语 |
ct-NULL | 粤语(未知) |
ct-HK | 粤语(香港) |
ct-GZ | 粤语(广东) |
hi-IN | 印地语 |
ur-IN | 乌尔都语(印度) |
ur-PK | 乌尔都语 |
ms-MY | 马来语 |
uz-UZ | 乌兹别克语 |
ar-MA | 阿拉伯语(摩洛哥) |
ar-GLA | 阿拉伯语 |
ar-SA | 阿拉伯语(沙特) |
ar-EG | 阿拉伯语(埃及) |
ar-KW | 阿拉伯语(科威特) |
ar-LY | 阿拉伯语(利比亚) |
ar-JO | 阿拉伯语(约旦) |
ar-AE | 阿拉伯语(阿联酋) |
ar-LVT | 阿拉伯语(黎凡特) |
fa-IR | 波斯语 |
bn-BD | 孟加拉语 |
ta-SG | 泰米尔语(新加坡) |
ta-LK | 泰米尔语(斯里兰卡) |
ta-IN | 泰米尔语(印度) |
ta-MY | 泰米尔语(马来西亚) |
te-IN | 泰卢固语 |
ug-NULL | 维吾尔语 |
ug-CN | 维吾尔语 |
gu-IN | 古吉拉特语 |
my-MM | 缅甸语 |
tl-PH | 塔加洛语 |
kk-KZ | 哈萨克语 |
or-IN | 奥里亚语 |
ne-NP | 尼泊尔语 |
mn-MN | 蒙古语 |
km-KH | 高棉语 |
jv-ID | 爪哇语 |
lo-LA | 老挝语 |
si-LK | 僧伽罗语 |
fil-PH | 菲律宾语 |
ps-AF | 普什图语 |
pa-IN | 旁遮普语 |
kab-NULL | 卡拜尔语 |
ba-NULL | 巴什基尔语 |
ks-IN | 克什米尔语 |
tg-TJ | 塔吉克语 |
su-ID | 巽他语 |
mr-IN | 马拉地语 |
ky-KG | 吉尔吉斯语 |
az-AZ | 阿塞拜疆语 |
API 调用示例 (使用 curl)
curl -X POST http://127.0.0.1:5080/v1/audio/transcriptions \
-F "file=@/你的路径/你的音频.mp3" \
-F "language=zh-CN" \
-F "response_format=srt"
API 调用示例 (使用 Python openai
库)
(这个库可以方便地调用兼容 OpenAI API 格式的接口)
from openai import OpenAI
# 配置客户端,指向本地服务地址
client = OpenAI(base_url='http://127.0.0.1:5080/v1', api_key='任意字符串即可') # api_key 在此场景下不重要
audio_file_path = "你的音频.wav"# 替换成你的文件路径
withopen(audio_file_path, 'rb') as file_handle:
# 发起转写请求
transcript = client.audio.transcriptions.create(
file=(audio_file_path, file_handle), # 传递文件名和文件内容
model='base', # 模型名称,这里固定为 'base' 或根据实际情况调整
language='zh-CN', # 指定语言
response_format="srt"# 指定返回格式
)
# 打印转写结果 (SRT 格式文本)
print(transcript)
返回结果示例 (SRT 格式)
1
00:00:00,000 --> 00:00:02,500
你好,这是一段测试音频。
2
00:00:02,500 --> 00:00:05,000
希望转写结果准确无误。
想更快?启用 GPU 加速 (可选)
- • 为什么需要 GPU? 如果你有合适的 NVIDIA 显卡并配置好了环境,使用 GPU 可以大幅提高转写速度,尤其处理长音频时效果更明显。
- • 如何启用?
- 1. 前提: 确保你的电脑已正确安装 NVIDIA 显卡驱动和 CUDA 12.x 环境。
- 2. 安装支持: 在整合包的文件夹里,找到并双击运行
安装GPU支持.bat
文件,它会自动完成相关设置。
- • 注意: 默认整合包不包含 GPU 支持,以减小体积。
几点小提示
- 1. 文件大小与时长: 建议单个文件不要太大(比如不超过 1GB),时长最好控制在 1 小时内。太大的文件可能处理起来非常慢。
- 2. 音频质量: 音频越清晰、背景噪音越少,转写效果就越好。尽量使用高质量的音源。
- 3. 首次使用需要联网: 第一次转写某个语言时,程序需要联网下载该语言所需的一些数据。建议把常用语言都成功转写一次(即使是很短的测试音频),之后就可以离线使用了。