安卓实时通话转录

5

我是一名生活中受听力障碍影响的安卓开发者,目前正在探索使用安卓的语音识别API制作语音转文字应用的选项。在我的国家,闭路电话和Innocaption不可用。潜在的应用可能类似于在电话通话期间进行字幕显示。

https://developer.android.com/reference/android/speech/SpeechRecognizer.html

该API旨在捕获语音命令,而不是进行实时的实时转录。我甚至可以将其实现为服务,但是每次它提供结果或部分结果后,我都需要不断重启它,这在对话设置中是不可行的(服务重新启动时会丢失单词)。
请注意,我不需要此应用程序的100%准确性。许多听障人士发现了解一些对话上下文有助于他们理解。因此,我实际上不需要关于这不准确的评论。
有没有办法实现连续模式的语音识别器?我可以创建一个文本视图,当从服务返回新文本时,它会不断更新自己。如果这个API不适合我的需求,是否有任何建议?我测试了CMUSphinx,但发现它过于依赖短语/句子块,不太可能适用于我所考虑的应用程序。
3个回答

5
我是一位聋哑的软件开发人员,因此我可以插话。我一直在关注语音转文本API的最新技术状态,目前这些API已经足够“好用”,可以为某些在安静环境下使用电话的人提供不需要操作员的中继/字幕服务。例如,在使用苹果Siri实时转录(iOS 8)时,我与我的配偶通话的转录准确率达到了98%。
我成功地通过将声音从一个手机路由到第二个iPhone并按下麦克风按钮(弹出键盘),以大约250词每分钟的速度(比Sprint Captioned Telephone和Hamilton Captioned Telephone都快)正确地字幕化了电话会议,准确率约为95%,至少在1分钟截止时间之前。
因此,我宣布基于计算机的语音识别对于与家人进行电话交谈(在安静的环境中频繁拨打电话的类型)是实用的,你至少可以指导他们移动到安静的地方,以使字幕正常工作(准确率高于95%)。自从推出iOS 8以来,我们真的需要这个功能,以便不需要依赖操作员或字幕电话。Sprint Captioned电话在快速语音期间延迟严重,而Apple Siri保持同步,因此我可以通过我的自制两个iOS设备的Apple Siri“实时字幕电话”设置进行更自然的电话交谈。
某些手机以高清方式传输音频,因此在两个iPhone之间(将iPhone扬声器传输到另一个运行iOS 8连续模式的iPhone的Siri中)工作得很好。这是假设您使用G.722.2(AMR-WB),就像在支持高清音频电话标准的同一运营商上运行两个iPhone时那样。当通过Siri管道传输时,它的效果非常好——对于相同的人类声音来说,其表现与在手机前面进行通话的情况差不多(假设另一端在安静的环境中讲话)。
Google和Apple需要立即开放他们的语音转文本API以协助辅助应用,因为无需操作员的电话转录终于成为了实用选择,至少是在拨打家庭成员电话时(好的声音和在接听电话时被指导进入安静的环境)。此时还需要取消连续识别时间限制。

1
自我更新:现在有两个非常好的应用程序可以可靠地转录。它们包括(Otter Trancriber)[https://otter.ai/login] 和 Google Live Transcribe - 您只需按一下按钮,它就会自动转录多人晚餐或会议室对话。对于我这样的聋哑软件开发人员来说,这是一场革命性的变革。 - Mark Rejhon
我只是一个想在网站上添加语音识别功能的开发者,但我认为Otter Transcriber是一个不错的选择。然而,我注意到在我的台式电脑和手机上使用时精度存在明显的差异。在我的台式电脑上,语音识别效果非常好,与谷歌的识别水平相当。但是在我的手机上,情况就糟糕得多。我想这可能是因为我的手机麦克风不太好,但是谷歌应用在我的手机上表现更好,所以不能仅仅是这个原因。编辑:算了,我只是把手机麦克风的音量调低了——我不知道录制时音量按钮会控制麦克风音量! - Venryx
1
购买一款双麦克风手机。与旧的单麦克风iPad相比,新款iPad在准确性方面有了惊人的提升,同时屏幕比手机更大。此外,还存在外部蓝牙麦克风选项可供选择。最终可能会出现API,但这些应用程序非常好用,您还可以在多个Web浏览器中同时镜像Otter,因此一旦有人开始转录,字幕理论上可以显示在IFRAME中,如果您获取字幕流特定链接(在开始录制后使用共享按钮)。 - Mark Rejhon

1
Google不会使用电话质量的音频,您需要自己使用CMUSphinx进行字幕服务。您可能没有正确配置CMUSphinx,它应该适用于大词汇转录,您唯一需要关心的是使用电话8khz模型,而不是宽带模型和通用语言模型。为了获得最佳准确性,最好将处理移至服务器上,您可以设置PBX进行呼叫并在那里转录音频,而不是在有限设备上进行操作。

有趣。所以我需要将CMUSphinx的声学模型更改为电话8Khz的模型?我会尝试并回报结果。 - Lorteld
试试这个链接:http://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/US%20English%20Generic%20Acoustic%20Model/en-us-8khz.tar.gz/download,以及这个链接:http://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/US%20English%20Generic%20Language%20Model/cmusphinx-5.0-en-us.lm.dmp/download。 - Nikolay Shmyrev
1
谢谢您的评论。我尝试使用通用声学模型和8khz模型,但对于一般语音识别效果不佳。现在我正在考虑在服务器上使用sphinx4。 - Lorteld
好的,为了更准确地提供建议,您可以分享音频和解码器设置的详细信息,这样更容易弄清楚出现了什么问题。 - Nikolay Shmyrev
实际上,Google和Apple的语音转录在家庭成员在安静的房间说话时效果良好 - 一些手机以更高清晰度(>8KHz)传输音频,因此在两台iPhone之间工作得很好(将iPhone插入另一台运行iOS 8连续模式下的Siri)。 - Mark Rejhon

0

SpeechRecognizer API文档确实声称:

该API的实现很可能会将音频流传输到远程服务器来执行语音识别。因此,该API不适用于连续识别,这将消耗大量的电池和带宽。

这段文字是一年前添加的 (https://android.googlesource.com/platform/frameworks/base/+/2921cee3048f7e64ba6645d50a1c1705ef9658f8)。然而,在那个时候没有对API进行任何更改,也就是说API保持了原样。此外,我在API文档中没有看到任何与网络和电池耗电量有关的具体内容。所以,请放心实现一个识别器(可以基于CMUSphinx),并通过该API访问它。


电池参数无关紧要。电话通话本身也会消耗大量电力,那么为什么不让高质量的服务器辅助实时转录使用类似数量的电力呢? - Mark Rejhon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接