问题标签 [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.
python - FileNotFoundError 试图获取 mp3 文件
我正在尝试使用pydub将上传的 mp3 转换为特定比特率,使用以下代码:
我收到此错误:
FileNotFoundError: [WinError 2] Systemet finner ikke angitt fil
调用的代码process_mp3
是(注意:track_obj 是一个 Django 模型对象,ID 来自数据库):
显然,mutagen 可以很好地读取文件,但 pydub 不能。是什么赋予了?
python - 在后台进程中解开 python 字典
我编写了一个类似于 shazam 应用程序的 python 脚本。它捕获 15 秒的音频,然后尝试猜测它对应于数据库中的哪首歌。我已经将我们的歌曲数据库(一个字典字典,其中每个键代表歌曲名称)存储为一个 pickle 文件,称之为 song_db.p,因为创建数据库实际上需要几个小时,大约 100 首歌曲。当我运行我的“Shazam 应用程序”时,这些是步骤:
- 当用户希望开始记录 15 秒样本时,他按下回车键。
- 完成后,我解开我的数据库。
- 然后我调用一个guess_song 函数来尝试猜测这首歌。
第 2 步大约需要 45 秒才能完成。不是很好!我想做的是在用户运行程序或在录制的同时开始解压我的数据库(至少会节省 15 秒,因为这是录制长度),因为两者是独立的。我如何在后台进程中运行 unpickling 函数,该进程将与录制歌曲以及我的 main 函数中的任何函数一起运行,但我不想在 unpickling 完成之前调用guess_song。
这是我编写的代码,它使我得到了大约 5-10 秒的提升,但我与录制并行运行(不是真正在后台)。我想我肯定能做得比这更好。
我在我的主要功能中将其称为:
其中 record_song() 是不言自明的,而 get_db 执行数据库的 unpickling。
python-2.7 - Pydub 和 Aplay:抑制详细输出?
我试图抑制 aplay 的输出,但没有成功。我知道如何使用 stdout 抑制打印语句,但我不知道如何使用 pydub 模块归档相同的结果。例如,当我使用此代码播放声音时
生成的输出(红色!)是
avplay 版本 9.18-6:9.18-0ubuntu0.14.04.1,版权所有 (c) 2003-2014 Libav 开发人员于 2015 年 3 月 16 日 13:19:10 使用 gcc 4.8 (Ubuntu 4.8.2-19ubuntu1) 输入 #0,wav ,来自“/tmp/tmp5DUj0a.wav”:
持续时间:00:00:01.32,比特率:1411 kb/s 流 #0.0:音频:pcm_s16le,44100 Hz,2 个通道,s16,1411 kb/s
当您连接更多音频时,很容易丢失关键信息。有没有办法切断这种输出?
谢谢。
python - 如何强行上课?
我做了这门课:
我面临的问题是当我创建一些AudioSegmentCustom
变量时,如果我“添加”它们,add
操作返回其原始父类型 =AudioSegment
因此以下代码不起作用:
因为我得到:
...即使我从一个AudioSegmentCustom
对象开始,我也以AudioSegment
“唯一”对象结束。“强制”新创建对象的类型的方法是什么?
以防万一您需要它:
python - 如何使用pydub在静音结束时拆分音频文件而不删除静音?
Python初学者寻求一些帮助。
我正在使用 pydub 的静音模块来拆分和导出音频文件的块。我正在使用对这个问题的顶部回复中找到的方法:
不过现在,这些沉默不包括在块中。我希望他们留在最后。我假设我必须对 pydub.silence 函数进行修改,但我不知道需要进行哪些更改。现在是 split_on_silence:
谢谢你的帮助。
〜埃里克。
python - Pydub - 将 split_on_silence 与最小长度/文件大小相结合
我有两个脚本,其中一个分割一定长度的音频,另一个在每次有无声段落时分割音频。是否可以在静音时分割音频,但只有在经过一定时间之后?我需要在不短于 5 分钟的静默中分割视频块。
忽略静音分割脚本:
忽略长度的拆分脚本:
python-3.x - Pydub 音频导出一开始有静音?
我编写了一个 python 脚本来获取 30 分钟 mp3 中的音频,并将其切成带有 unix 时间戳的第二长文件。源音频文件为 192kbps、441000Hz、立体声 mp3 文件。
我希望这样的服务可以存档来自广播电台(我工作的地方)的音频,并可以在给定的开始和结束时间将其传送给用户,直到第二个。我们让服务器关闭了一个小时进行维护(我们尽量不这样做,但它确实发生了),我们在这段时间内使用另一台计算机记录了它,该计算机将我们的音频保存在 30 分钟的块中。通常,此存档服务器会毫无问题地自行保存第二长的块。
执行转换的函数,给定一个 30 分钟的输入音频文件,保存输出块的目录,以及文件的开始时间作为 unix 时间戳:
我的问题是这个脚本转换的所有第二个文件似乎都超过一秒,在它们开始时平均有 70 毫秒的静默。当我从我的存档服务器下载文件时,它会给我所有连接在一起的文件,所以听起来很糟糕而且有问题。
有人可以帮我吗?我不确定这个错误来自哪里。
如果您好奇,我的完整脚本:
python - 如何从 pydub AudioSegment 创建一个 numpy 数组?
我知道以下问题: How to create a pydub AudioSegment using an numpy array?
我的问题正好相反。如果我有一个 pydub AudioSegment 如何将它转换为一个 numpy 数组?
我想使用 scipy 过滤器等。我不太清楚 AudioSegment 原始数据的内部结构是什么。
android - 兼容 Android AudioEncoder 和 pydub 解码器
我正在以 mp3 格式在 android 中录制音频,为此我将MPEG_4
其用作输出格式,同时AAC
用作 AudioEncoder 并且它确实录制了音频。
问题是当我在 python pydub 中使用该文件进行进一步处理时,它无法解码音频 amd 给我这样的错误:
即使我安装了ffmpeg。我也尝试过不同的音频编码器,例如AMR_NB
但问题仍然相同。它无法解码音频。
这是我在 pydub 中所做的事情:
有谁知道录制 mp3 音频的正确 AudioEncoder 是什么?
python - 如何使用python减少音频数据数组中的样本数量
我正在该样本中存在的每一帧绘制一个音频样本幅度,如下所示:
在此过程中,我注意到声音 AudioSegment 的长度与声音 raw_data 不同,为什么会这样?
而且随着 test.mp3 持续时间变长,x 轴上的刻度线会达到几百万,所以我的疑问是我们如何以较低的采样率绘制数据,或者换句话说,如何减少数据数组中的样本数量?
这是我的第一个想法:计算音频数据数组中前 10 或 20 个样本的平均值,并将它们表示为一个点,这样我们就可以减少样本数量。但是,这可能会导致一些信息丢失和性能问题。
python有没有其他方法可以做到这一点?