微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用于为手动转录的 .wav 文件生成时间戳的 Python

如何解决用于为手动转录的 .wav 文件生成时间戳的 Python

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

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

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

到目前为止我所尝试的: 我已经使用 Python 在超过 2 秒的静音时拆分我的 .wav 文件,这是有效的。 我使用了以下来自 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 文件及其转录,以便时间戳生成变得容易? (我更喜欢从非互联网方法开始......)

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。