2

我有一个音频文件,该文件是一个人按顺序说出不同字母的录音,以及该音频文件的正确人工创建的转录本,例如 string ABCDEF

然后将此音频文件传递到语音到文本转录 API,并为我提供每个字符到它在音频剪辑中出现(开始)的时间戳的有序映射。例如,对于一个简单的 5 秒剪辑,映射可能如下所示:

['A' => 0.2, 'B' => 1.5, 'C' => 2.2, 'D' => 3.2, 'E' => 3.8, 'F' => 4.2]

不同之处在于,从 API 返回的时间戳映射有时会错误地转录字母。除了只是将一个字母误认为另一个字母(替换)之外,它还可以感知存在实际上不存在的字母(插入),或者完全忽略口头字母(删除)。例如,包含的音频ABCDEF可能有如下 API 响应:

['A' => 0.2, 'B' => 1.5, 'C' => 2.2, 'X' => 2.8, 'D' => 3.2, 'E' => 3.8, 'F' => 4.2]

这里最终期望的结果是协调实际转录和来自 API 的潜在错误的字母到时间戳映射,以获得剪辑中每个字母实际说出的时间戳。我相信我可以使用一些线性插值和差异算法来达到理想的解决方案,但需要一些入门指导。谢谢你。

注意:这个例子中的“字母”实际上是普通话汉字,但为了举例,我使用字母,因为它们是单音节的,更容易可视化。

4

0 回答 0