我正在看android在做语音识别。 该程序需要持续的语音识别。 图书馆只需要10个字左右。 我已经考虑使用谷歌API,但我不认为它会工作。 (我不能有任何东西覆盖屏幕)。 我一直在寻找其他方式,但似乎没有任何工作。 是否有可能使用Java的语音识别库,或者有什么其他的方式去做这个? 综上所述 1.需要连续的语音input 2.最多10个字 3.如有需要可以训练 4.程序概述 – 显示屏幕,等待语音input或触摸input,更新屏幕重复 5.不能覆盖屏幕上显示的内容 任何帮助,将不胜感激。 提前致谢
我试图创build一个服务来运行Android 4.2中的连续语音识别。 使用这个链接( Android语音识别作为Android 4.1和4.2的服务)的答案,我创build了一个从一个Activity运行的服务。 我的问题是,在handleMessage方法中访问mTarget.mAudioManager或mTarget.mSpeechRecognizerIntent时,我得到空例外。 目标(和从它创build的mTarget对象) 不是null ,但它里面的所有对象都是。 我在这里做错了什么? 相关的活动代码(从activity中调用的静态方法,activityContext是调用此方法的活动): public static void init(Context context) { voiceCommandService = new VoiceCommandService(); activityContext = context; } public static void startContinuousListening() { Intent service = new Intent(activityContext, VoiceCommandService.class); activityContext.startService(service); Message msg = new Message(); msg.what = VoiceCommandService.MSG_RECOGNIZER_START_LISTENING; try { voiceCommandService.mServerMessenger.send(msg); } catch (RemoteException e) { e.printStackTrace(); } […]
使用Glass,您可以通过“OK,Glass”菜单启动应用程序,似乎可以select最接近的匹配项,除非命令在几英里之外,您可以很清楚地看到命令列表。 无论如何,从应用程序中,或从语音提示(在最初的应用程序触发器之后)有一个类似的列表,并返回最近的匹配。 随机(非现实世界)的例子,一个应用程序,显示你的颜色,“确定玻璃,显示红色的颜色” “显示颜色”可能是你的语音触发,似乎是用“最近邻居”方法上的玻璃来匹配的,然而,“红色”只是作为自由文本阅读,很容易被误认为是“恐惧”或“头脑”甚至“读”,因为没有办法区分“读”和“红”。 有没有办法将预先批准的选项(红色,绿色,蓝色,橙色*等)列表传递到这个阶段,或在应用程序内传递给另一个语音提示,以便用户可以看到列表并获得更准确的结果当有一组预期的响应(如主要的确定玻璃屏幕)? *好吧,没有橙色押韵,我们可能在那里安全
我试图用Windows 7来识别演讲,但是它总是将演讲视为一个命令,或者只是说“那是什么?”。 我怎样才能得到所有的演讲? 码: SpeechRecognizer _speechRecognizer; public Window1() { InitializeComponent(); // set up the recognizer _speechRecognizer = new SpeechRecognizer(); _speechRecognizer.Enabled = false; _speechRecognizer.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(_speechRecognizer_SpeechRecognized); }
我已经安装了PocketSphinx演示程序,它在Ubuntu和Eclipse下工作正常,但尽pipe尝试我不能解决如何添加多个单词的识别。 我只想让代码识别单个单词,然后我可以在代码中switch() ,例如“上”,“下”,“左”,“右”。 我不想识别句子,只是单个单词。 任何帮助,将不胜感激。 我发现其他用户有类似的问题,但目前为止还没有人知道答案。 有一件令我困惑的事情是为什么我们需要使用“唤醒”常数? private static final String KWS_SEARCH = "wakeup"; private static final String KEYPHRASE = "oh mighty computer"; . . . recognizer.addKeyphraseSearch(KWS_SEARCH, KEYPHRASE); wakeup有什么关系呢? 我已经取得了一些进展(?):使用addGrammarSearch我可以使用一个.gram文件来列出我的单词,例如up,down,left,right,forwards,backwards ,这似乎工作得很好,如果我只是说那些特定话。 但是,任何其他的词语都会使系统与所说的“最近的”单词相匹配。 理想情况下,我不希望识别出现,如果说话的话不在.gram文件中…
在问这个问题之前,我检查了所有与此问题有关的stackoverflow其他线程没有任何成功,所以请不要回答与其他线程的链接,:) 我想保存/logging谷歌识别服务用于语音文本操作的audio(使用RecognizerIntent或SpeechRecognizer)。 我经历了很多想法: onBufferReceived来自RecognitionListener:我知道,这是行不通的,只是testing它看看会发生什么,onBufferReceived永远不会被调用(用JB 4.3testing星系连接) 使用媒体logging器:不工作。 这是破坏语音识别。 话筒只允许一个操作 试图find识别服务在保存临时audio文件之前执行语音到文本api复制它,但没有成功 我几乎绝望,但我只是注意到,谷歌保持应用程序正在做我所需要做的! 我放了一些使用logcat的保持应用程序,应用程序也调用“RecognizerIntent.ACTION_RECOGNIZE_SPEECH”(如我们,开发人员)来触发语音文本。 但是,如何保持audio? 它可以是一个隐藏的API? 是谷歌“作弊”:)? 感谢您的帮助 最好的祝福
我使用Android上的语音识别function,我喜欢它。 这是我的客户最受称赞的function之一。 但是,格式有些限制。 你必须调用识别器的意图,让它把录音发送到谷歌,并等待文本回来。 我的一些想法将需要在我的应用程序中录制audio,然后将剪辑发送到谷歌进行转录。 有没有什么办法可以发送一个audio片段来处理语音文本?
我正在开发基于语音识别的Android应用程序。 直到今天,一切工作都很顺利,例如,我会开始说话,然后在1秒或2秒内收到结果。 这是一个非常可以接受的用户体验。 那么今天我必须等待十秒或更长时间才能得到识别结果。 我试图设置下面的EXTRAS,其中没有任何明显的差异 RecognizerIntent.EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS RecognizerIntent.EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS RecognizerIntent.EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS 我一直在不断地改变我的应用,但是这些改变都没有涉及到语音识别器。 有什么方法可以用来减less语音识别器从onBeginningOfSpeech()切换到onBeginningOfSpeech()之间的时间? 下面是需要多长时间的例子 07-01 17:50:20.839 24877-24877/com.voice I/Voice: onReadyForSpeech() 07-01 17:50:21.614 24877-24877/com.voice I/Voice: onBeginningOfSpeech() 07-01 17:50:38.163 24877-24877/com.voice I/Voice: onEndOfSpeech()
我正在开发一个使用八度从头开始的语音识别系统。 我试图通过检测频率的差异来检测音素。 目前我已经阅读了一个wav文件,将这些值组织成块并将fft应用于整体数据。 之后,我绘制新的数据与plot(abs(real(fft(q))))创build此图: 我怎样才能得到频率值(图表的峰值)?
我想build立一个使用语音识别的应用程序。 我曾经见过像谷歌这样的大公司实现了这个function,但是我很好奇在初创阶段这样做。 任何人都看着这个? 有没有什么工具可以帮我们做到这一点?