为什么 PyDub 会出现段错误?

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

我正在运行一个简单的脚本来在 pydub 中录制音频并回放。它正在回放,但回放后,它向我抛出分段错误,我不知道为什么。

import sounddevice as sd
import numpy as np
from pydub import AudioSegment
from pydub.playback import play
import wavio

def record_audio(duration=5, sample_rate=44100):
    print("Recording...")
    audio = sd.rec(int(duration * sample_rate), samplerate=sample_rate, channels=2, dtype='int16')
    sd.wait()
    
    # Save the recorded audio as a WAV file
    wavio.write("recorded.wav", audio, sample_rate, sampwidth=2)
    print("Recording saved as recorded.wav")

def play_audio(file_path):
    print("Playing back...")
    audio = AudioSegment.from_wav(file_path)
    play(audio)
    print("Playback finished")

# Record and playback
record_audio()
play_audio("recorded.wav")

这是代码

python audio.py
Recording...
Recording saved as recorded.wav
Playing back...
[1]    25425 segmentation fault (core dumped)  python audio.py

这是输出。有什么解决办法吗?我使用的是 Ubuntu 24.04 LTS

操作系统:Ubuntu 24.04.1 LTS x86_64 主机:Vostro 3590 内核:6.8.0-1012-oem 正常运行时间:1小时43分钟 包装:3095(dpkg)、61(冲泡)、6(平装)、40(即食) 外壳:zsh 5.9 分辨率:1920x1080 桌面版本:GNOME 46.0 WM:穆特 WM 主题:Adwaita 主题:Yaru-blue-dark [GTK2/3] 图标:雅鲁蓝[GTK2/3] 终端: 蒂利克斯 CPU:英特尔 i5-10210U (8) @ 4.200GHz GPU:英特尔 CometLake-U GT2 [超高清显卡] GPU:AMD ATI Radeon R5 M230 / R7 M260DX / Radeon 52 内存:5288MiB / 7662MiB

我尝试了其他模块,但是

simpleaudio
也是段错误,而pygame似乎对我来说避免了这个问题。老实说,我没有尝试任何事情,因为我不知道什么失败了。 ChatGPT 对我来说在这个问题上毫无用处。

python ubuntu debugging segmentation-fault pydub
1个回答
0
投票

你有安装什么玩法吗?您需要一些依赖项才能让 PyDub 根据我收集的信息工作。安装

libportaudio2
ffplay
pyaudio
修复了权限错误和设备错误。

但是我无法复制分段错误。您可以通过 GDB 运行此命令来向我们提供更多信息,以了解段错误发生的位置。也许使用 GDB 进行堆栈转储并向我们提供。

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