gpt4 book ai didi

java - 使用 Sphinx 4 语音识别平台效果不佳

转载 作者:行者123 更新时间:2023-11-30 01:55:36 27 4
gpt4 key购买 nike

我想开发一个简单的基于 android 的应用程序,其操作如下:

听外面的声音,一旦识别出“时间”这个词,智能手机就会报出当前时间。

为了实现这个目标,我一直在寻找基于 java 的语音识别库,它与 android 平台兼容,并找到了 Sphinix 4平台。

但是,我尝试在我的 PC 上使用上述库进行实验,但结果很差。 (0% 成功)

我的代码:

public class Main {

public static void main(String[] args) throws Exception {
Configuration configuration = new Configuration();
configuration
.setAcousticModelPath("resource:/edu/cmu/sphinx/models/en-us/en-us");

configuration
.setDictionaryPath("resource:/edu/cmu/sphinx/models/en-us/cmudict-en-us.dict");
configuration
.setLanguageModelPath("resource:/edu/cmu/sphinx/models/en-us/en-us.lm.bin");

Microphone micro = new Microphone(44100, 16, true, false);

micro.startRecording();

StreamSpeechRecognizer recognizer = new StreamSpeechRecognizer(
configuration);

// Simple recognition with generic model
recognizer.startRecognition(micro.getStream());
SpeechResult result;
while ((result = recognizer.getResult()) != null) {

System.out.format("Hypothesis: %s\n", result.getHypothesis());

}
recognizer.stopRecognition();
micro.stopRecording();
}

我很乐意提出建议。

编辑:

根据下面的建议,我把码率改成16khz,效果稍微好一点。

但是,将 StreamSpeechRecognizer 更改为 LiveSpeechRecognizer 后,我得到了不受支持的异常:

 javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 16000.0 Hz, 16 bit, mono, 2 bytes/frame, little-endian not supported.

编辑 2:

我只想检测一个词(短语):“时间”。可能是我使用语音识别的方法有误?

再次感谢。

最佳答案

我想通了:

我要找的是 Keyword Spotting ,而不是一般的语音识别。

我发现 Pocketsphinx库非常准确地满足了我的需求。

关于java - 使用 Sphinx 4 语音识别平台效果不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32289538/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com