Как удалить периоды молчания из файла WAV в python? - PullRequest
1 голос
/ 10 апреля 2020

У меня разговор в wav-файле (служба поддержки). Я разделил его на 2 аудиоканала. Теперь у меня есть 2 файла WAV, и каждый человек говорит, и у него есть периоды молчания. Мне нужно вырезать эти периоды молчания, чтобы «сжать» все слова человека в более коротком файле.

Я гуглил и нашел эту ссылку . Он имеет такой код:

def addFrameWithTransition(self, image_file, audio_file, transition_file):
    media_info = MediaInfo.parse(transition_file)
    duration_in_ms = media_info.tracks[0].duration
    audio_file = audio_file.replace("\\", "/")
    try:
        audio_clip = AudioSegment.from_wav(r"%s"%audio_file)
        f = sf.SoundFile(r"%s"%audio_file)
    except Exception as e:
        print(e)
        audio_clip = AudioSegment.from_wav("%s/pause.wav" % settings.assetPath)
        f = sf.SoundFile("%s/pause.wav" % settings.assetPath)
    duration = (len(f) / f.samplerate)
    audio_clip_with_pause = audio_clip
    self.imageframes.append(image_file)
    self.audiofiles.append(audio_clip_with_pause)
    self.durations.append(duration)
    self.transitions.append((transition_file, len(self.imageframes) - 1, duration_in_ms / 1000)) 

Но ему нужен какой-то «файл изображения». другие варианты?

1 Ответ

0 голосов
/ 10 апреля 2020

Я нашел небольшой файл vad.py, который разбивает разговор на две части и фактически сжимает каждую голосовую дорожку. В итоге у вас будет 2 wav-файла, на которых будет говорить только 1 человек.

https://github.com/mauriciovander/silence-removal/blob/master/vad.py

работает так:

python vad name_of_new_file.wav
...