vosk-android-demo
vosk-android-demo copied to clipboard
中文语言模型准确性低到让人泪目
我下载的是这个模型,vosk-model-small-cn-0.3 准确性基本为0 ,请问下什么原因?
请提供一些带有注释的示例音频文件以进行测试
手上没有相应的wav文件,我是通过mic拾音的,另外,英文模型准确性大概是50%左右
首先请记录一些wav文件进行测试
我这边试了下wav音频文件,也是一样,准确性为0 call.zip
我检查一下
她在档案中怎么说?
请注意接听钉钉免费电话
在处理之前,必须将文件转换为单声道。
我得到的结果非常接近。除了丁丁。您确定结果不同吗?
LOG (VoskAPI:ComputeDerivedVars():ivector-extractor.cc:183) Computing derived variables for iVector extractor LOG (VoskAPI:ComputeDerivedVars():ivector-extractor.cc:204) Done. LOG (VoskAPI:RemoveOrphanNodes():nnet-nnet.cc:948) Removed 1 orphan nodes. LOG (VoskAPI:RemoveOrphanComponents():nnet-nnet.cc:847) Removing 2 orphan components. LOG (VoskAPI:Collapse():nnet-utils.cc:1472) Added 1 components, removed 2 LOG (VoskAPI:CompileLooped():nnet-compile-looped.cc:345) Spent 0.0320599 seconds in looped compilation. LOG (VoskAPI:ReadDataFiles():vosk/model.cc:259) Loading HCL and G from model/HCLr.fst model/Gr.fst LOG (VoskAPI:ReadDataFiles():vosk/model.cc:281) Loading winfo model/word_boundary.int { "partial" : "" } { "partial" : "" } { "partial" : "" } { "partial" : "请" } { "partial" : "请 注意" } { "partial" : "请 注意" } { "partial" : "请 注意 接听" } { "partial" : "请 注意 接听" } { "partial" : "请 注意 接听 丁丁" } { "partial" : "请 注意 接听 丁丁" } { "partial" : "请 注意 接听 丁丁 免费" } { "partial" : "请 注意 接听 丁丁 免费" } { "partial" : "请 注意 接听 丁丁 免费 电话" } { "result" : [{ "conf" : 1.000000, "end" : 0.450000, "start" : 0.000000, "word" : "请" }, { "conf" : 1.000000, "end" : 0.780000, "start" : 0.450000, "word" : "注意" }, { "conf" : 1.000000, "end" : 1.350000, "start" : 0.810000, "word" : "接听" }, { "conf" : 1.000000, "end" : 1.890000, "start" : 1.350000, "word" : "丁丁" }, { "conf" : 1.000000, "end" : 2.370000, "start" : 1.890000, "word" : "免费" }, { "conf" : 1.000000, "end" : 3.090000, "start" : 2.370000, "word" : "电话" }], "text" : "请 注意 接听 丁丁 免费 电话" }
对于电话问题,请尝试使用其他型号的电话,某些设备存在问题。 也让我知道您的手机型号。
我的是rk3399 android7.1 ,除了更换模型文件,其他代码不需要修改吗? 比如这个地方 KaldiRecognizer(activityReference.get().model, 16000.f, "你 好");
-
转成单声道,依旧不行 Input File : 'mono.wav' Channels : 1 Sample Rate : 44100 Precision : 16-bit Duration : 00:00:03.20 = 141312 samples = 240.327 CDDA sectors File Size : 283k Bit Rate : 706k Sample Encoding: 16-bit Signed Integer PCM
-
转成单声道,并在创建KaldiRecognizer 的时候把采样率设置成44100,也是不行
改成这个样子可以设别wav文件了 KaldiRecognizer(activityReference.get().model, 44100 );
那如果mic需要怎么改?
改成这个样子可以设别wav文件了 KaldiRecognizer(activityReference.get().model, 44100 );
恭喜你
那如果mic需要怎么改?
抱歉,问题是什么?
就是MIC的识别准确性不怎么高,大概只有20%的准确性
您需要转储麦克风中的音频以进行分析 我还需要有关手机型号和操作系统的信息
public SpeechRecognizer(Model model) throws IOException {
this.recognizer = new KaldiRecognizer(model, 16000.0F);
this.sampleRate = 16000;
this.bufferSize = Math.round((float)this.sampleRate * 0.4F);
this.recorder = new AudioRecord(6, this.sampleRate, 16, 2, this.bufferSize * 2);
if(this.recorder.getState() == 0) {
this.recorder.release();
throw new IOException("Failed to initialize recorder. Microphone might be already in use.");
}
}
采样率设置能否开一个api出来?怀疑和采样率有关,
我的系统是RK3399 Android7.1 系统
采样率设置能否开一个api出来?怀疑和采样率有关,
我同意。 我可以在代码中的某个时候更改它。 也许您可以做得更快。
我的系统是RK3399 Android7.1 系统
您也可以尝试其他可能与手机有关的手机型号。 我尝试使用小米手机。
vosk_api 我这边编译不过android 版本 CMake Error: CMake can not determine linker language for target: kaldi_jni
请提供完整的输出
什么是cmake版本
什么是ndk版本
您是否尝试更新到较新版本
应该是我在windows android stduio 编译的原因,linux 编译环境没有搭建
sad
好吧,我会检查未来几天
我这边在linux编译了vosk_api,改了采样率,依然准确性不高
另外,我又找了一些wav文件测试,准确性也不是很高,测试了4个wav文件,只成功识别一个 wav文件都是44100,16bit的 Input File : 'kaldi-android-demo/models/src/main/assets/4.wav' Channels : 1 Sample Rate : 44100 Precision : 16-bit Duration : 00:00:02.83 = 124810 samples = 212.262 CDDA sectors File Size : 250k Bit Rate : 706k Sample Encoding: 16-bit Signed Integer PCM
@xiaooquanwu
这里的声音不寻常
对于第一个例子
{
"result" : [{
"conf" : 1.000000,
"end" : 0.150000,
"start" : 0.060000,
"word" : "我"
}, {
"conf" : 1.000000,
"end" : 0.510000,
"start" : 0.150000,
"word" : "喜欢"
}, {
"conf" : 1.000000,
"end" : 0.840000,
"start" : 0.510000,
"word" : "你"
}],
"text" : "我 喜欢 你"
}
你有什么不同吗?
第一个是可以识别到了,其他几个识别不到
你好,我这边采用rk3326/Android9.0测试,识别率一开始也很低。 后来,将安卓程序烧录到手机上,说话字正腔圆普通话标准一些,识别率在95%以上。 经过分析后发现,不是vosk-android-demo的问题。而是,rk3326硬件资源带不起该软件。
好吧,我会检查未来几天
您好,很感谢您贡献了优秀的代码,让我感受到了语音识别之美!请问,我可以加入你们,一起为了这个项目的发展,贡献一份力量吗?
@xiaooquanwu 怎么弄的中文识别啊
我下载的是这个模型,vosk-model-small-cn-0.3 准确性基本为0 ,请问下什么原因? 这个模型在哪下载
@PeterLocas 为了获得准确性的帮助,请提供您要识别的音频。 和文字。