我是一名患有听力障碍的Android开发人员,我目前正在探索在Android中使用Speech Recognizer API为文本应用程序发表演讲的选项。隐藏式字幕电话和Innocaption在我的国家/地区不可用。潜在的应用可能就像电话中的字幕一样。
https://developer.android.com/reference/android/speech/SpeechRecognizer.html
API用于捕获语音命令,而不是用于实时实时转录。我甚至可以将它作为一项服务来实现,但是我总是需要在它传递结果或部分结果后重新启动它,这在会话设置中是不可行的(在服务重新启动时单词会丢失)。
请注意,此应用不需要100%的准确率。许多听力受损的人发现有一些对话的背景可以帮助他们。所以我实际上并不需要评论这是不准确的。
有没有办法在连续模式下实现语音识别器?我可以创建一个textview,在从服务返回新文本时不断更新自己。如果这个API不是我应该看的,有什么建议吗?我测试了CMUSphinx,但发现它太依赖于短语/句子块,它不太可能适用于我想到的那种应用程序。
答案 0 :(得分:4)
我是一名聋哑软件开发人员,所以我可以插手。我一直在监控语音到文本API的艺术状态,现在API已经变得足够好了#34;为人们在安静的环境中使用电话进行某种电话交谈提供无人操作的中继/字幕服务。例如,我的配偶使用Apple Siri实时转录(iOS 8)获得98%的转录准确率。
我能够通过将声音从一部手机中传送到第二部iPhone,我按下麦克风按钮(弹出式键盘)来识别手机字幕,并以每分钟250字的速度成功识别电话会话,精度达到约95% (比Sprint Captioned Telephone和Hamilton Captioned Telephone更快),至少到1分钟的截止时间。
因此,我声明基于计算机的语音识别对于家庭成员(在安静的环境中经常呼叫的类型)的电话是实用的,在那里你至少可以指导他们移动到一个安静的地方,让字幕正常工作(准确度> 95%)。自从iOS 8发布以来,我们真的需要这个,所以我们不需要依赖依赖运营商或字幕电话。 Sprint Captioned电话在快速演讲期间严重滞后,而Apple Siri保持不变,因此我可以使用我的jririgged两个iOS设备进行更自然的电话交谈Apple Siri"实时字幕电话"设置。
有些手机以更高清晰的方式传输音频,因此它可以在两部iPhone之间运行良好(iPhone扬声器传输到另一部iPhone的运行在iOS8连续模式下的Siri)。假设您使用的是G.722.2(AMR-WB),就像在支持高清音频电话标准的同一运营商上运行两部iPhone一样。当通过Siri进行管道传输时,它的效果非常好 - 就像在电话前做的那样,对于相同的人声(假设另一端在安静的环境中对着手机说话)。
Google和Apple需要向辅助应用程序开放他们的语音到文本API,因为无操作员的电话转录现在终于实用了,至少在打电话给家庭成员时(良好的声音和教练在安静的环境中)接到电话时)。在这种情况下,也需要消除连续识别时间限制。
答案 1 :(得分:1)
Google无论如何都不会使用电话质量的音频,你需要自己使用CMUSphinx处理字幕服务。
您可能没有正确配置CMUSphinx,它应该适用于大词汇量转录,您唯一应该关心的是使用电话8khz模型,而不是宽带模型和通用语言模型。
为了获得最佳准确度,可能值得在服务器上移动处理,您可以设置PBX进行呼叫并在那里转录音频,而不是希望在有限的设备上执行某些操作。
答案 2 :(得分:0)
SpeechRecognizer API文档确实声称
此API的实现可能会将音频流式传输到远程 服务器执行语音识别。因此,这个API不是 旨在用于连续识别,这将消耗一个 大量的电池和带宽。
这一段文字是在一年前添加的(https://android.googlesource.com/platform/frameworks/base/+/2921cee3048f7e64ba6645d50a1c1705ef9658f8)。但是,当时没有对API进行任何更改,即API保持不变。此外,我在API文档中没有看到任何特定于网络和电池耗尽的内容。因此,继续实现识别器(可能基于CMUSphinx)并通过此API访问它。