我正在尝试自动生成 .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,因为我的一些块太长了,所以代码只是运行和停止。另外,我不知道在哪里拆分它们以使它们更短。
我现在正在寻找的东西: 找到一种方法来转录我通过在沉默中分割创建的块。
- 有没有办法使用我的.wav 文件训练模型,以便语音转录变得容易?
- 或者有没有更简单的方法来使用我的 .wav 文件及其转录,以便时间戳生成变得容易?(我更喜欢非互联网方法开始......)
我希望我的问题很清楚。 谢谢!