如何将Mozilla DeepSpeech实现到PHP Web应用程序中以转换语音到文本?

时间:2018-05-29 10:56:40

标签: php speech-recognition speech-to-text webspeech-api mozilla-deepspeech

我有一个PHP Web应用程序,我正在寻找一种开源,高精度的语音到文本识别实现,它将采用语音命令打开用户的网页。示例:“ Make Sales ”(这将打开Create Sales PHP页面),“ Make Purchase order ”,“ Open END-OF-DAY reports “等等。

我的问题

我想知道我们是否可以使用 Mozilla DeepSpeech Firefox 浏览器中获取.wav音频并将语音返回到文本。如果是的话,使用话筒从Firefox录制语音的流量是什么?使用DeepSpeech引擎转换文本?

如何制作类似 OK-GOOGLE 的唤醒/启动通话,以便随时听取命令?

2 个答案:

答案 0 :(得分:0)

请阅读: https://github.com/mdn/web-speech-api/tree/master/speech-color-changer

从语音到文本的翻译是在客户端的浏览器中完成的。 生成文本后,可以使用jquery将其发送到php服务器。

答案 1 :(得分:0)

您可以通过创建服务器并使用异步请求/AJAX 或网络套接字来回发送请求来实现这一点。

您可以使用以下链接找到服务器安装说明:

https://pypi.org/project/deepspeech-server/

安装服务器后,您可以开始从任何支持“WebRTC API:getUserMedia()”的浏览器发出请求。生成音频 Blob 数据并以 base64 格式将其发送到后端服务器。 在后端,将 blob 保存到临时音频文件:

$encodedData = base64_decode($data); 

// write the data out to the file
$fp = fopen($full_file_path, 'wb');
      fwrite($fp, $encodedData);
      fclose($fp);

然后通过向您自己的 Mozzila DeepSpeech Node.js 服务器发出 CURL 请求将音频文件转换为文本:

curl -X POST --data-binary @testfile.wav http://localhost:8080/stt

在后端创建方法来循环生成的文本并尝试识别关键字/命令。如果触发,则将其发送回前端。也许您只是想授予用户使用他们的语音编写长消息的能力? - 返回整个文本 - 每次。但是,您仍然希望“聆听”关键字,以便让用户能够设置标点符号、开始和结束写作。

祝大家编码愉快;)