1

我正在尝试自动生成 .wav 文件中语音和静音的时间戳。

我的输入: 多个带有英语语音的 .wav 文件。所有这些 .wav 文件都已手动转录。

我的目标: 为语音文本的开始和结束以及所有超过 2 秒的静音生成时间戳。

到目前为止我所尝试的: 我使用 Python 将我的 .wav 文件以超过 2 秒的静音分割,这是有效的。我使用了stackoverflow中的以下代码。

from pydub.silence import split_on_silence
import deepspeech
import numpy as np

def match_target_amplitude(sound, target_dBFS):
    change_in_dBFS = target_dBFS - sound.dBFS
    return sound.apply_gain(change_in_dBFS)

sound = AudioSegment.from_wav("/content/gdrive/My Drive/Surf.wav")
normalized_sound = match_target_amplitude(sound, -20.0)
chunks = split_on_silence(normalized_sound, min_silence_len=2000, silence_thresh=-30)
for i, chunk in enumerate(chunks):
    fullPath = "/content/gdrive/My Drive/{number}-Surf-{length}.wav".format(number=i+1, length=len(chunk))
    chunk.export(fullPath, format="wav")

在此之后,我尝试使用 Deepspeech 转录分割的语音块。

但是我无法运行 Deepspeech,因为我的一些块太长了,所以代码只是运行和停止。另外,我不知道在哪里拆分它们以使它们更短。

我现在正在寻找的东西: 找到一种方法来转录我通过在沉默中分割创建的块。

  1. 有没有办法使用我的.wav 文件训练模型,以便语音转录变得容易?
  2. 或者有没有更简单的方法来使用我的 .wav 文件及其转录,以便时间戳生成变得容易?(我更喜欢非互联网方法开始......)

我希望我的问题很清楚。 谢谢!

4

0 回答 0