使用Moviepy音频文件将音频从mp4保存为wav文件>>

问题描述 投票:0回答:1

我有一个名为'video.mp4'的视频文件。我正在尝试从视频中分离出一部分音频,并将其另存为可用于其他Python模块的wav文件。我想用MoviePy做到这一点。

我将参数发送到write_audiofile函数,并指定文件名,fps,nbyte和编解码器。

在MoviePy AudioClip docs之后,我将32位wav文件的编解码器指定为‘pcm_s32le’

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中打开,但是当我尝试将其与其他Python模块一起用作wav文件时遇到问题。


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

如果sndhdr.what()无法将其识别为音频文件类型,为什么音频文件以Audacity打开?如何正确将MoviePy AudioClip导出为wav文件?

我有一个名为“ video.mp4”的视频文件。我正在尝试从视频中分离出一部分音频,并将其另存为可用于其他Python模块的wav文件。我想用MoviePy做到这一点。 ...

python wav moviepy
1个回答
0
投票

我有同样的问题。我试图从URL获取mp4文件,然后将其转换为wav文件,然后通过它调用Google语音识别。相反,我使用pydub来处理转换,并且有效!这是代码示例:

© www.soinside.com 2019 - 2024. All rights reserved.