april-asr
aprilasr是一个提供离线流式语音转文本应用程序API的最小库
状态
该库目前正在开发中。一些功能尚未实现,可能存在bug和崩溃,API可能会发生重大变化。它可能还不适合用于生产环境。
此外,目前只有一个模型,只能处理英语,而且还存在一些准确性问题。
语言支持
该库有一个C语言API,还提供了C#和Python绑定,但这些可能还不稳定。
示例
在example.cpp
中提供了该库的使用示例。它可以对WAV文件进行语音识别,或通过读取标准输入进行流式识别。
它被构建为main
目标。构建aprilasr后,您可以这样运行它:
$ ./main /path/to/file.wav /path/to/model.april
对于流式识别,您可以将parec管道输入到它:
$ parec --format=s16 --rate=16000 --channels=1 --latency-ms=100 | ./main - /path/to/model.april
模型
目前只有一个可用模型,英语模型,基于csukuangfj的训练icefall模型作为基础,并使用一些额外数据进行了训练。
要制作自己的模型,请查看extra/exporting-howto.md
在Linux上构建
构建需要ONNXRuntime v1.13.1。您可以尝试从源代码构建它,或者直接下载发布的二进制文件。
下载ONNXRuntime
运行./download_onnx_linux_x64.sh
以获取linux-x64版本。
对于其他平台,脚本应该非常相似,或者访问https://github.com/microsoft/onnxruntime/releases/tag/v1.13.1 并下载适合您平台的zip/tgz文件,然后将内容解压到名为lib
的目录中。
如果将其放在lib
中不是一个选择,您也可以定义环境变量ONNX_ROOT
,其中包含您解压存档的路径。
从源代码构建ONNXRuntime(未经测试)
如果您已经下载了ONNXRuntime,则不需要执行此操作。
按照以下说明操作:https://onnxruntime.ai/docs/how-to/build/inferencing.html#linux
然后运行
cd build/Linux/RelWithDebInfo/
sudo make install
构建aprilasr
运行:
$ mkdir build
$ cd build
$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ make -j4
现在您应该有了main
、libaprilasr.so
和libaprilasr_static.so
。
如果运行main
失败,因为找不到libonnxruntime.so.1.13.1
,您可能需要使libonnxruntime.so.1.13.1
可访问,如下所示:
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`/../lib/lib/
在Windows上构建(msvc)
在april-asr文件夹中创建一个名为lib
的文件夹。
下载onnxruntime-win-x64-1.13.1.zip并将onnxruntime-win-x64-1.13.1文件夹的内容解压到lib
文件夹中。
运行cmake来配置和生成Visual Studio项目文件。如果您下载了ONNXRuntime的x64版本,请确保选择x64作为目标。
打开ALL_BUILD.vcxproj
,一切都应该可以构建。输出将在Release或Debug文件夹中。
运行main.exe时,您可能会收到类似这样的错误消息:
应用程序无法正确启动(0xc000007b)
要解决此问题,您需要使onnxruntime.dll可用。一种方法是将lib/lib/onnxruntime.dll复制到build/Debug和build/Release中。您可能需要将dll与您的应用程序一起分发。
应用
目前我正在开发Live Captions,这是一个提供实时字幕的Linux桌面应用程序。
致谢
感谢k2-fsa/icefall的贡献者创建了语音识别配方和模型。
本项目使用了几个库:
- pocketfft,作者Martin Reinecke,版权所有(C)2008-2018 Max-Planck-Society,根据BSD-3-Clause许可
- Sonic库,作者Bill Cox,版权所有(C)2010 Bill Cox,根据Apache 2.0许可
- tinycthread,作者Marcus Geelnard和Evan Nemerson,根据zlib/libpng许可
这些绑定基于Vosk API绑定,这是另一个基于前代Kaldi的语音识别库。Vosk的版权归Alpha Cephei Inc.所有,根据Apache 2.0许可。