【问题标题】:How to implement Mozilla DeepSpeech into PHP web app to convert Speech-to-text?如何在 PHP Web 应用程序中实现 Mozilla DeepSpeech 以将语音转换为文本?
【发布时间】:2018-11-08 00:11:27
【问题描述】:

我有一个 PHP Web 应用程序,我正在寻找一个开源的、高精度的语音到文本识别实现,该实现将接受语音命令来打开用户的网页。示例:“进行销售”(这将打开创建销售 PHP 页面)、“进行采购订单”、“打开 END-OF-DAY 报告”等。

我的问题

我想知道我们是否可以使用 Mozilla DeepSpeechFirefox 浏览器获取 .wav 音频并将语音转换为文本。如果是,那么使用麦克风从 Firefox 录制语音到使用 DeepSpeech 引擎转换文本的流程是什么?

如何进行类似于 OK-GOOGLE 的唤醒/启动调用,准备好监听命令?

【问题讨论】:

  • 我已经尝试过,但找不到任何合适的 API。
  • 似乎应该是可能的,但我肯定没有实施指南。看起来您只是想了解事物的结构应该如何才能使其工作——这绝对是一个有趣的问题。上周我只是查看了这个我正在使用 CI 进行的家庭自动化项目,并且正试图围绕它来解决这个问题。

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


【解决方案1】:

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

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

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

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

祝大家编码愉快;)

【讨论】:

  • 我尝试安装 Mozilla deepspeech server,之后我运行 deepspeech-server --config config.json 但在 windows 10 上无法将 deepspeech-server 识别为内部或外部命令、可运行程序或批处理文件,你能帮忙解决这个问题吗,我已经发布了这个问题stackoverflow.com/questions/69709493/…
  • @user3653474,试试 Windows 任务管理器,在我对您问题的回答中查看更多信息。
【解决方案2】:

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

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

【讨论】:

  • 请在这里解释你的答案,不要只依赖链接分享。
  • 问题是如何使用 PHP 服务器和 mozilla deepspeech API 转换从浏览器生成的音频,然后将结果发送回前端。
猜你喜欢
  • 2020-01-15
  • 1970-01-01
  • 2020-06-14
  • 1970-01-01
  • 2011-08-26
  • 2010-10-04
  • 2012-11-25
  • 2011-05-16
相关资源
最近更新 更多