目录结构
前言
小编需要实现离线音视频语言部分识别,将纯音频及视频中的音频中语言部分(中文)提取出来进行后续的逻辑处理,并且结合C语言去使用,调查发现sherpa + ncnn可以满足小编的需求,将整个可执行程序编译及使用整理如下:
Sherpa-NCNN 是一个基于 C++ 的轻量级神经网络推理框架,是 kaldi 下的一个子项目,它专门针对移动设备和嵌入式系统进行了优化。 Sherpa-NCNN 的目标是提供高性能、低延迟的推理能力,适用于移动设备和嵌入式系统,可以以满足实时应用需求。
主要功能:语音识别、流式语音识别。即边说话,边识别。不需要访问网络,不需要数据传输,完全本地识别。
识别效果:识别速度很快,效果比较好,但是只支持wav格式的音频,其他格式的需要转换后才能识别。
不足:目前只支持单通道、16 kHz 采样率、.wav 格式的音频文件。
音视频格式转为wav
关于音视频格式转换请移驾到 ffmpeg安装使用(详细)
sherpa-ncnn编译
更加详细的资料可参阅sherpa-ncnn,此环节需要下载sherpa-ncnn源码进行编译,以下命令中有下载源码的命令,但需要有Git环境才可使用,没有Git环境可在此下载sherpa-ncnn下载
Linux
git clone https://github.com/k2-fsa/sherpa-ncnn
cd sherpa-ncnn
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j6
编译脚本会自动下载编译需要的相关文件,编译完成后可执行文件在 build/bin 目录下。
-rwxr-xr-x 1 root root 6769904 4月 16 17:36 decode-file-c-api
-rwxr-xr-x 1 root root 6692384 4月 16 17:36 generate-int8-scale-table
-rwxr-xr-x 1 root root 6770152 4月 16 17:36 sherpa-ncnn
-rwxr-xr-x 1 root root 6775088 4月 16 17:36 sherpa-ncnn-alsa
-rwxr-xr-x 1 root root 6931624 4月 16 17:36 sherpa-ncnn-microphone
Windows
git clone https://github.com/k2-fsa/sherpa-ncnn
cd sherpa-ncnn
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build . --config Release -- -m:6
编译脚本会自动下载编译需要的相关文件,编译完成后可执行文件在 build/bin/Release 目录下。
total 18032
-rwxr-xr-x 1 Administrator 197121 4594176 Apr 18 14:16 decode-file-c-api.exe*
-rwxr-xr-x 1 Administrator 197121 4515328 Apr 18 14:16 generate-int8-scale-table.exe*
-rwxr-xr-x 1 Administrator 197121 4749824 Apr 18 14:16 sherpa-ncnn-microphone.exe*
-rwxr-xr-x 1 Administrator 197121 4596224 Apr 18 14:16 sherpa-ncnn.exe*
windows编译中遇到的问题
问题“‘nmake’ ‘-?’ failed with: no such file or directory”
$ cmake -DCMAKE_BUILD_TYPE=Release ..
-- Building for: NMake Makefiles
CMake Error at CMakeLists.txt:2 (project):
Running
'nmake' '-?'
failed with:
no such file or directory
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!
编译失败原因
AI 分析如下,分析的很准确,小编是因为没有安装“Visual Studio”造成的,换了一台装有“Visual Studio”的电脑编译成功;
这个错误表明nmake命令无法找到指定的帮助