python - 在python的音频文件的不同位置插入不同数量的静音

标签 python audio jes

我想在python的音频的第二秒,音频的第十秒等处分别插入50毫秒,100毫秒等不同的静音量。
我的音频文件是.wav格式

我发现以下代码:

def silence () 
    file = pickAFile()
    sound = makeSound(file)
    samples = getSamples(sound)

for sampNum in range(44100*2, 44100 * 4):
    sample = getSampleObjectAt(sound, sampNum)
    setSampleValue(sample,0);

play(sound)

这在以下链接上存在:

link

该链接正在使用JES框架

但是我不了解如何使用我想实现的同一段代码来实现功能。有人可以指导我吗?

最佳答案

音频样本只是一个数字,它定义了特定时间点的音频曲线的高度。在您的代码函数“silence”中,将音频曲线从文件加载到数据结构(阵列)中的“samples”

您的sampNum循环遍历一段索引值,检索每个样本索引的样本值(getSampleObjectAt)...然后将样本值设置为0(setSampleValue)...沉默被规范地定义为值0

音频通常每秒被采样44100次...因此,忽略了我认为由getSampleObjectAt处理的多声道和位深度...该循环从以下位置检索样本:

(44100*2, 44100 * 4)

这意味着它将生成2秒到4秒的样本索引列表

要实现您的目标,只需计算出沉默开始和结束的位置所需的范围
goal A - start at second 2 silence for  50 millisec
       - start at 2000 millisec until 2050 millisec
       - from 2000 millisec to 2500 millisec

start_sample_index = sample_rate * 2000  / 1000
start_sample_index = 44100 * 2000  / 1000
start_sample_index = 88200

end_sample_index = sample_rate * 2050  / 1000
end_sample_index = 44100 * 2050  / 1000
end_sample_index = 90405

所以在伪代码中(未经测试)
set_silence_from_to_in_millisec(start_time, end_time, sample_rate, sound_obj) :

    start_index = sample_rate * start_time / 1000
    end_index   = sample_rate * end_time   / 1000

    for sampNum in range(start_index, end_index):
        sample = getSampleObjectAt(sound_obj, sampNum)
        setSampleValue(sample,0);

所以对于目标A来说,
set_silence_from_to_in_millisec(2000, 2050, 44100, my_sound_obj)

关于python - 在python的音频文件的不同位置插入不同数量的静音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29141152/

相关文章:

Python CSV : Find identical data in two CSV files and copy corresponding data

python - 如何使用自定义 header 将 pandas.DataFrame 写入 csv 文件?

使用 channel 数 3 的 Linux ALSA 驱动程序

python - 列表中关键字的频率

python - 如何编写一个范围,以便其中一个值对用户输入开放

C# 到 Python(不是 IronPython)发送和接收数组、Into、String、Decimals

python - 替换pandas groupby并apply以提高性能

python - 如何为 Beta 测试人员打包 SC 仪器?

java - 用java设置音量

python - Python中的添加和变量赋值