我正在开发一个产品,需要从用户输入,并根据它做某些动作。我们已经实现了通过打字聊天框,它是服务于我们的目的。对于未来的版本,我们希望添加语音识别到聊天窗口。我们认为使用
window.speechRecognition()||window.webkit语音识别()
但是我们知道浏览器中可用的功能使用Google的Cloud Speech API。由于我们处理用户的非常敏感的信息,这将是安全问题。是否有其他替代方案来实现在任何浏览器中工作的语音识别。
我正在开发一个产品,需要从用户输入,并根据它做某些动作。我们已经实现了通过打字聊天框,它是服务于我们的目的。对于未来的版本,我们希望添加语音识别到聊天窗口。我们认为使用
window.speechRecognition()||window.webkit语音识别()
但是我们知道浏览器中可用的功能使用Google的Cloud Speech API。由于我们处理用户的非常敏感的信息,这将是安全问题。是否有其他替代方案来实现在任何浏览器中工作的语音识别。
5条答案
按热度按时间aamkag611#
您可以尝试:
o4tp2gmn2#
使用tensorflowjs“tfjs”模型在浏览器中工作的最明智的解决方案
语音命令识别器语音命令识别器是一个JavaScript模块,能够识别由少量词汇中的简单孤立英语单词组成的口语命令
iszxjhcz3#
显然
PocketSphinx.js
是目前唯一可用的方法,它是一个开源的语音转文本引擎,支持英语,但除此之外的语言不多。Github:
但是,如果您想在Android设备的单个示例上运行代码(例如,显示在公共区域某处的设备),您可以在移动的Chrome的设置中使用“下载离线语音识别语言”。桌面浏览器没有此选项。
uurity8g4#
对此没有一个很好的答案,但目前(2023年8月)离线语音识别的最佳选择是使用OpenAI的Whisper模型的实现,编译为WebAssembly。我知道有三个:
请注意,这仍然不是一个很好的选择,原因如下:
1.下载大小:因为它没有内置在浏览器中,它需要浏览器下载一个大的模型文件(量化的“微小”模型绝对最小为31 MB)
1.质量:在模型的大小和质量之间有一个相当直接的权衡。只有最小的量化模型才能在大多数网页中加载,而且你不会得到最好的结果。即使是你可以加载到浏览器中的最大模型。(可能是小的,可能是中等量化的,或者,如果你真的很勇敢/受虐狂,也许可以尝试“大”量化.但它超过1GB)不会像只能在服务器上合理运行的大型非量化模型那样好。即使你加载了这些模型,它们也会缺乏.
1.推理速度:这款小巧的机型只能勉强跟上相对较新/功能强大的笔记本电脑或台式机上的实时转录(它不太能跟上我的旧X1 Carbon gen 7笔记本电脑)。它在大多数移动的设备上可能会明显滞后。而更大的机型会更慢。对我来说,这是最大的问题。用ggerganov's stream demo自己试试吧
1.复杂性:在你自己的项目中启动和运行这些并不完全简单,通常比Web语音识别API低得多。例如,transformers.js实现的核心,似乎是最简单的,超过100字节(这只是处理预先录制的文件,而不是实时转录)。
增加的复杂性部分是因为这些类型的模型通常以块的形式工作。对于较长的音频文件,特别是对于实时转录,我们需要连续的音频流来产生连续的输出文本流。Web语音识别API为您处理,而使用Whisper,你必须自己进行组块(并处理窗口重叠或已看到的单词的纠正transmitting)。
在Google's Open Source Live Transcribe Speech Engine的README中有一个关于使用低级语音识别模型API的很好的描述。[1]
如果我们能使用Web语音识别API本身和离线浏览器原生模型,那就太好了,但我还没有看到任何最近的进展。[2][3]如果你能接受这些限制,Whisper可能是一个可行的替代方案(如果你想做一个Web语音API polyfill,我相信它会非常感激!)
[1]:在the announcement post for that library中,Google认识到使用在线系统的复杂性。不幸的是,尽管有这个名字,这个项目实际上并不是我真正所说的“Live Transcribe Speech Engine”,而是一个使用Google的云转录API进行实时转录的库。
[2]:事实上,Chrome does ship a library to do offline transcription called libSODA (Speech On-Device),但它最初是为Live Caption功能发布的,似乎仍然没有用于面向用户的语音到文本。并不奇怪,“语音团队担心未经授权的重新利用他们的组件”,所以我们可以期待在不久的将来语音到文本使用的普遍可用性。
[3]Mozilla一度正在构建a speech to text engine called DeepSpeech以嵌入Firefox,但显然将development. Some former members of the DeepSpeech team forked the project and continued to the work作为Coqui AI STT放弃了一段时间,但后来退出了这项工作,并建议使用Whisper。
hm2xizp95#
您可以尝试IBM沃森的语音到文本服务。它可以从任何浏览器使用,您可以选择退出,因此用户的数据不会记录在服务器端:https://console.bluemix.net/docs/services/watson/getting-started-logging.html#controlling-request-logging-for-watson-services
该服务的演示在这里:https://speech-to-text-demo.ng.bluemix.net/
它至少可以在Firefox和Chrome中工作,它基于以下开源SDK:https://github.com/watson-developer-cloud/speech-javascript-sdk
ps.对于一般情况,当用户的数据不敏感时,最好不要选择退出,以便沃森可以利用数据来提高服务质量。