当然,我们有可用的API。
但是,如果您不打算使用 API,我们可以只将声音归因于特定文本吗?
您如何实际确定声音与用户发出的声音相同?
计算机在听到声音时会听到或读到什么?它如何翻译成计算机语言?
如果您不打算使用 API,我们是否可以将声音归因于 具体文本 ?
是的,如果您使用的是一组有限的可用声音数据(文件,如 wav 文件)和相关文本转录字典。
A.wav <-> "a"
Aaa.wav <-> "aaa"
B.wav <-> "b"
Bee.wav <-> "bee"
...
否,如果您通过麦克风录制声音或以相同或类似的方式直播您的声音。
这就是为什么你怎么能真正确定声音与声音相同 由用户说出?
您无法在不使用 API 的情况下提供 lambda 示例声音并将其转录为有效文本的原因。API 是一组工具,用于读取声音数据的离散(数字/二进制)值流,对其进行分析,并通过大量计算,尝试确定哪种字符、单词或"可转换为文本数据的语音"最适合。
看:
011110110110101010101010001010101101001010101010101010101010...
^^这是声音数据,在 2D 中(可能)如下所示:
/
/ /
_ / /
/ /
/
。它(模糊地)类似于"a"的签名(只是一个例子,实际上这不是真的)。然后,API 输出"a"。
API 还会尝试丢弃具有干扰签名的数据。像"pops"和"sssh"工件一样,同时保留它们,当当前处理的数据具有某些字符的签名,如"p","s","t","tr","tch"......
计算机在听到声音时听到或读到什么?
计算机什么也听不到。它只是处理数据:
011110110110101010101010001010101101001010101010101010101010...
它如何翻译成计算机语言?
这已经是二进制格式,这是计算机语言。当您在麦克风中讲话时,麦克风内的硬件设备会将空气传递的振动转换为二进制数据。该数据通过电缆(连接到计算机的3.5插孔)从麦克风设备传输到计算机,然后您的声卡完成其工作。
声音/视频文件已经是二进制数据。计算机不会将数字数据转换回可听的声音,这是扬声器的工作。
最后:
没有任何简单的方法来获得一个工作Voice recognition
系统(这是事物的适当命名)。没有一个可用的 API 是 100% 完美且故障安全的。但他们中的大多数人都做得很好。
实现此类 API 所需的知识量永远不会轻易适合 SO 的单个主题......