【问题标题】:Recognizing single characters into java using voice recognition使用语音识别将单个字符识别为java
【发布时间】:2016-06-14 14:03:45
【问题描述】:

java 中是否有任何实现只捕获字符? CMU Sphinx 能做到这一点吗?我一直在尝试,完全没有运气。事实上,谷歌语音 API 在这方面做得很差。 B、W、X 等字符可以识别,但几乎所有元音都不能识别!任何信息表示赞赏。谢谢!

【问题讨论】:

  • 字符是否被识别为单词?喜欢aybeeseedeeeeffgee
  • @ManIkWeet Y 被识别为 why 但大多数其他人根本无法识别。谷歌响应在 90% 的情况下为空字符。
  • 我用过的其他语音识别软件,如果要说字母,就需要某种前缀。例如,“拼写 A”将键入字母“A”。 “拼写ABC”将输入“ABC”。是否可以根据之前的声音来区别对待您的输入?
  • @AWT 我可以尝试这样做。但在此之前,我会检查谷歌语音 api 是否能够自己处理事情。谢谢!
  • @AWT 运气不好,谷歌语音无法单独识别像“A”这样的字符

标签: java voice-recognition cmusphinx google-speech-api


【解决方案1】:

这样写语法letters.gram

#JSGF V1.0;

grammar letters;

public <letter> = (a. | b. | c. | d. | e. | f. | j.) *;

像这样使用 sphinx4:

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.setGrammarPath("file:grammars_folder");
configuration.setGrammarName("letters");
configuration.setUseGrammar(true);

LiveSpeechRecognizer recognizer = new LiveSpeechRecognizer(configuration);
recognizer.startRecognition(true);
SpeechResult result = recognizer.getResult();
recognizer.stopRecognition();

更多详情请查看sphinx4 tutorial

【讨论】:

  • 我尝试了这段代码,但我不断收到一些异常@Nikolay Shmyrev!我所做的是我使用了这个确切的代码,并在我的项目根目录中创建了一个目录作为“grammars_folder”,并使用您提供的行创建了一个 letters.gram。我可能做错了什么?我收到这些错误“java.lang.RuntimeException:搜索管理器资源分配失败,java.io.IOException:edu.cmu.sphinx.jsgf.JSGFGrammarParseException edu.cmu.sphinx.jsgf.JSGFGrammarParseException”
  • 提供完整的堆栈跟踪。还要提供你写的语法文件,很可能是你打错了。
猜你喜欢
  • 2018-02-23
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 2012-02-02
  • 1970-01-01
  • 1970-01-01
  • 2018-04-17
  • 1970-01-01
相关资源
最近更新 更多