问题标签 [pydub]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
56 浏览

python - pydub 可以知道文件是否曾经播放过吗?

我正在尝试创建一个 python 脚本来帮助我管理我的汽车收音机的音乐库。想法如下:我有一个带有 2 小时播客 mp3 文件的 USB 闪存驱动器。由于我从来没有开过这么长的路,脚本将文件分成 5 分钟的片段并删除了原件。

现在,我想做的下一件事就是自动删除我已经玩过的那些。我的第一个想法是类似于 DRM 或自毁文件,一旦播放就会自行删除,但从我在网上找到的内容来看,这几乎是不可能的。

所以,问题是,我可以用pydub检查文件是否已经播放过,所以当我回到家时,我可以将USB插入电脑,运行脚本,检测播放的文件并删除它们?

谢谢,对不起,如果这是一个愚蠢的问题!

0 投票
1 回答
1299 浏览

macos - 未检测到已安装的 ffmpeg。无法转换音频(python 2.7,mac os x)

一般信息:

我有一个处理音频分类的python项目;后端是完整的,但我在前端受苦。后端要求(我无法更改)是音频文件必须是wav格式,但我希望用户也能够上传 mp3 文件。我的前端是一个使用 python 2.7 和烧瓶的网络服务器。

所以,我基本上想将 mp3 转换为 wav,但不断出错。
(完整的代码在底部,以防需要更清楚地理解问题)

我的尝试:
1-我使用pydub库

我安装了homebrew,libav和ffmpeg
libav安装方法: brew install libav --with-libvorbis - -with-sdl --with-theora
ffmpeg安装方法: brew install ffmpeg --with-libvorbis --with-ffplay --with-theora


方法1


方法2


=>即使我安装了ffmpeg和libav,仍然收到“找不到文件”和“无法检测到ffmpeg或avconv”运行时警告
=>当我使用“from_mp3”而不是“from_file”时出现上面相同的错误(“找不到文件”)
=> 尝试使用“raw”而不是“mp3”并得到“关键错误:sample_width”(找不到这个错误的含义)
注意:我确保我在正确的目录中


2- 使用的子流程


=>得到“OSError:没有这样的文件或目录”


我希望你能帮助我理解问题是什么以及如何解决它......


完整代码:
我在顶部有这个


在处理音频文件的函数内部

有问题的部分:

代码继续:

0 投票
1 回答
1450 浏览

python - 从 PyAudio str 到 AudioSegment 的类型转换返回错误

我正在创建一个嵌入式压缩系统,类似于专业音频混音器上的那些。我正在PyAudio通过给定的“wire”示例捕获音频样本。

会发生什么

由于库,这些样本被分成“块”,并在录制后不久进行流式传输。如果输入信号变得太大,我只是尝试压缩块。但是,存在不匹配的类型。

正在使用的类型是:

  • 数据 = 流中的样本<type 'str'>- Unicode 字符串
  • chunk = 一批音频字节<type 'int'>-总是返回 1024
  • stream.write(数据,块)<type 'NoneType'>
  • compressed_segment = 被压缩<class 'pydub.audio_segment.AudioSegment'>

发生了什么

PyAudiostringstream.read()存储在data. 我需要能够将这些字符串样本转换为 AudioSegment 对象才能使用压缩功能。

结果,最终发生的事情是我收到了几个与类型转换相关的错误,这取决于我如何设置所有内容。我知道这不是正确的类型。那么我怎样才能使这种类型转换工作呢?

这是我尝试在for i in range循环中进行转换的两种方法

1.在压缩前创建一个“波浪”对象

异常 wave.Error: Error('# channels not specified',) in <bound method Wave_write. <wave.Wave_write instance at 0x000000000612FE88>> 的del被忽略

2.发送RAW PyAudio数据压缩方法

thresh_rms = seg.max_possible_amplitude * db_to_float(threshold) AttributeError: 'int' object has no attribute 'max_possible_amplitude'

0 投票
5 回答
4136 浏览

python - 停止在 pydub 中播放音频

pydub 中是否有类似终止或停止功能的东西,这样在 play() 启动后的流可以在仍在播放时突然停止,而不是音频播放到全长然后停止。

0 投票
1 回答
1021 浏览

python - PyAudio 和分贝变化和平移

我有一个播放 wav 文件的非常基本的 pyaudio 代码。

我已经搜索了互联网的每个角落,以找到一种方法,以便我可以根据需要更改流的分贝级别并将立体声输出平移到特定通道(仅限左扬声器/仅限右扬声器)。但我找不到任何方法。

我无法切换到 pydub(它实际上具有此功能),因为它不允许我随时关闭流;它播放完整的音频,不能突然关闭。

0 投票
1 回答
993 浏览

python - 使用 pydub 将音频从 .au 转换为 .wav

在此代码中,m 出现如下错误:

我收到以下错误:

WindowsError: [错误 2] 系统找不到指定的文件

0 投票
1 回答
1303 浏览

python - 蟒蛇 | pydub:如何将 wav 样本从 np.array 而不是 wav 文件加载到 pydub 中?

如何将音频np.array文件加载到 PyDub 库中?目前,我使用AudioSegment.from_wav(file_path),但如果我已经将 wav 文件加载为 numpy 数组,则不方便:

更新:我的 wav 文件都是 16 位单通道的。

0 投票
2 回答
13829 浏览

python - IsADirectoryError: [Errno 21] 是一个目录(在 AudioSegment 中)

脚本 :

错误:

路径/srv/python/test以写入权限退出 (777) 并且/srv/python/welcome.mp3也退出

0 投票
1 回答
434 浏览

python - 当我有足够的内存时,AudioSegment 会导致 MemoryError

我正在尝试将两个 mp3 文件与 AudioSegment (pydub) 连接起来。对于小尺寸文件(小于 35 Mb),它可以工作。对于更大的,我得到一个 MemoryError。Python版本:3.6.2

这是我的代码。感谢您的任何帮助!

错误和附加信息的打印屏幕

0 投票
2 回答
1849 浏览

audio - 如何在 Python 中将 4 声道立体声文件转换为单声道

如何在 Python 中将 4 声道立体声文件转换为单声道,最好使用 pydub?提前致谢