开源初探 - stt
内容提要
这是一个离线运行的本地语音识别转文字工具,基于fast-whisper开源模型。可将视频/音频中的人类声音识别并转为文字,可输出json格式、srt字幕带时间戳格式、纯文字格式。准确率基本等同openai官方api接口。需要安装CUDA和NVIDIA Container Toolkit。使用docker安装运行。下载模型文件并运行stt。可使用wav或mp3文件进行测试。转换结果准确率大概90%左右。项目地址:https://github.com/jianchang512/stt。
延伸解读
部署门槛与硬件依赖
该工具依赖GPU加速,必须安装CUDA和NVIDIA Container Toolkit,并通过Docker运行。这意味着用户需要具备一定的Linux和容器操作经验,且硬件上需有NVIDIA显卡。若没有GPU,虽然配置中可改为CPU模式,但文章未涉及CPU下的性能表现,实际使用可能面临速度慢或内存不足的问题。
模型选择与资源消耗
文章使用large-v3模型,并提供了从Hugging Face下载的链接。该模型精度较高,但显存占用较大。配置文件set.ini中可通过调整beam_size、best_of、vad等参数来平衡显存与识别效果。例如,将vad设为false可减少显存使用,但可能影响长音频的切分准确性。用户需根据自身显卡容量调整这些参数。
识别准确率与适用场景
作者实测转换准确率约90%,与OpenAI官方API接口基本等同。这一水平适合对精度要求不苛刻的场景,如会议记录、视频字幕初稿等。但文章也指出结果“会有点瑕疵”,因此对于法律、医疗等需要高准确率的领域,建议人工校对。输出格式支持json、srt和纯文本,方便后续处理。
接口调用与测试方法
工具提供HTTP API,默认监听9977端口。测试时可通过POST请求发送音频文件,并指定language、model和response_format参数。文章给出了test.py示例,使用requests库调用。注意请求超时设置为600秒,对于长音频需适当延长。返回结果中code为0表示成功,data字段包含识别文字。
Q&A
stt 是什么工具?它基于什么模型?
stt 是一个离线运行的本地语音识别转文字工具,基于 fast-whisper 开源模型。
stt 支持哪些输出格式?
stt 支持输出 json 格式、srt 字幕带时间戳格式和纯文字格式。
使用 stt 需要哪些前置准备?
需要安装 CUDA 和 NVIDIA Container Toolkit,以便在容器中使用 GPU。
如何安装和运行 stt?
使用 Docker 安装运行。先准备 Dockerfile 构建镜像,然后下载模型文件,配置 set.ini,最后通过 docker run 命令启动容器。
stt 的识别准确率如何?
准确率基本等同于 OpenAI 官方 API 接口,实际测试准确率大概 90% 左右。
stt 支持哪些音频格式?
支持 wav 和 mp3 格式的音频文件。