语音识别:PHP是否可行?

6
我正在使用PHP为不识字的人开发一个网站,以按字母顺序教授语言。最后,我将创建一个评估阶段,在这个阶段学习者必须通过麦克风大声朗读所显示的字母。当学习者发音时,我想将其与保存的字母发音进行比较。
在PHP中是否有可能进行语音比较?

3
可以,但需要与其他技术混合使用,需要大量的工作。 - Daniel A. White
Dagon,你的结论毫无根据。他表达自己的方式与他的编程能力毫不相关。请考虑到这里并非所有人都是以英语为母语。我不确定我的语法是否正确,但只要我能被理解,我就不在意。我猜可能可以建立这样的网站,但我会混合使用技术。有很多用于模式识别的工具。我使用过一些用C++编写的工具。 - biera
PHP是图灵完备的,这意味着基本上任何事情都是可能的(尽管这并不代表难度)。 - Niet the Dark Absol
不是用PHP编写的,但有CMU Sphinx - Phil
一个Java小程序可能会更容易实现。但是看看周围,如果有一些PHP库至少可以为您做录制,因为我认为这是最困难的部分。 - Peter Ilfrich
2个回答

10
是的,这是可能的。以下是一些研究和资源供您开始使用。看起来你有很多工作要做。
通用API PHP 语音 PHP Voice(以前称为 PHP VXML)包含四个类,可帮助使用 PHP 开发语音应用程序。它支持语音合成标记语言 1.0、语音识别语法规范 1.0、语音浏览器呼叫控制:CCXML 1.0 和语音可扩展标记语言(VoiceXML)2.0。

VoicePHP

简单来说,它就是同样的 PHP,现在可以用于创建语音应用程序。 它不是 PHP 的扩展;事实上,它仍然是 PHP,只是现在输出语音而不是文本,并且接受语音而不是文本作为输入。技术上来说,它是将标准基于文本的输入和输出(程序员术语中的 stdio、stdout)替换为语音等效物的 PHP。 Savana AQuA - 音频质量分析器。 AQuA是一种简单但功能强大的工具,可提供感知语音质量测试和音频文件比较方面的音频质量。这是比较两个音频文件并测试原始文件和降级文件之间语音质量的最简单方法。

Savana音频编解码器质量分析仪

从维基百科(From wikipedia):语音编码器是一种分析/合成系统,用于重现人类语音。在编码器中,输入通过多带滤波器传递,每个频带通过包络跟随器传递,并且来自包络跟随器的控制信号被传达到解码器。解码器将这些(幅度)控制信号应用于合成器中相应的滤波器。由于控制信号相对于原始语音波形变化缓慢,因此可以减少传输语音所需的带宽。这允许更多的语音通道共享无线电电路或潜水电缆。通过对控制信号进行编码,语音传输可以防止被拦截。
MASLE:机器辅助口语评估 MASLE项目的目标是创建一系列用于通过互联网评估口语的工具。这种评估将由自动语音识别软件和人类评分员共同完成。 NanoGong是一个小程序,可以在网页上录制、回放和保存声音。当播放录音时,用户可以加速或减速声音而不改变其音调。该小程序可以用于网页上,也可以作为Moodle的集成组件使用。

你的谷歌搜索技能很不错! - ArtemStorozhuk
谢谢。这是一个有趣的问题,我也想知道从哪里开始。 - Anthony Hatzopoulos

1

这是完全可能的,但需要考虑很多事情。

  • 您如何在服务器上记录、上传和存储声音剪辑?
  • 您将使用什么VR软件来解析声音剪辑?我想这里最合适的解决方案都将是商业软件。您有预算吗?还是使用开源软件?

这种事情将具有非常长且困难的工作流程,需要大量复杂的客户端和服务器端代码。我不想太直接了当,但如果您需要问“是否可能?”,那么您可能做不到。就算是我自己,也不会尝试这样的事情而不先咨询比我更有经验的人。您需要一个至少有几年大型客户端和服务器系统经验的人。

哦,这可能只是个人喜好,但我更喜欢使用Java EE服务器而不是PHP来完成这样的事情。我更喜欢将PHP用于更小、更简单的服务器端任务。


我现在感到一片空白,卡住了。我想知道如何完成它。如果您有语音识别的代码,请提供。 - mgolra
3
你卡在哪里了?这不是一个简单地复制粘贴代码就能解决的问题。如果你想要一个起点,那么你需要认真考虑系统的整体架构,然后查看Anthony的软件清单,看看它们是否适合你的需求。 - Jonathon Ashworth

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