Сохранение аудио из mp4 в виде файла wav с использованием Moviepy Audiofile - PullRequest
0 голосов
/ 06 апреля 2019

У меня есть видео файл с именем 'video.mp4'. Я пытаюсь отделить часть аудио от видео и сохранить его как файл WAV, который можно использовать с другими модулями Python. Я хочу сделать это с MoviePy.

Я отправляю параметры в функцию write_audiofile, указав имя файла, fps, nbyte и кодек.

После MoviePy AudioClip docs я указал кодек как ‘pcm_s32le’ для 32-битного файла wav.

from moviepy.editor import *

sound = AudioFileClip("video.mp4")
newsound = sound.subclip("00:00:13","00:00:15")   #audio from 13 to 15 seconds
newsound.write_audiofile("sound.wav", 44100, 2, 2000,"pcm_s32le")

Этот код генерирует файл .wav с именем 'sound.wav'.


Открытие аудиофайла в Audacity

Полученный файл, sound.wav, можно открыть в Audacity, однако у меня возникают проблемы, когда я пытаюсь использовать его как файл wav с другими модулями Python.


Воспроизведение звукового файла в pygame

import pygame
pygame.mixer.init()
sound=pygame.mixer.Sound("sound.wav")

В третьей строке выдается следующая ошибка:

pygame.error: Unable to open file 'sound.wav'


Определение типа звукового файла с помощью sndhdr.what ()

import sndhdr
sndhdr.what("sound.wav")

Возвращен метод sndhdr none , Согласно docs , когда это происходит, метод не смог определить тип звуковых данных, хранящихся в файле.


Чтение файла с помощью распознавания речи Google

import speech_recognition as sr
r = sr.Recognizer()
audio = "sound.wav"

with sr.AudioFile(audio) as source:
    audio = r.record(source)
text= r.recognize_google(audio)
print(text)

Этот код останавливает выполнение со второй до последней строки:

ValueError: Audio file could not be read as PCM WAV, AIFF/AIFF-C, or Native FLAC; check if file is corrupted or in another format

Почему аудиофайл открывается в Audacity, если sndhdr.what() не может распознать его как тип аудиофайла? Как правильно экспортировать MoviePy AudioClip в виде файла wav?

...