[英]Amount invested in a stock with different positions (pandas column with amounts conditioned to date)
[英]to insert different amounts of silence at different positions in an audio file in python
我想在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)
這在以下鏈接上顯示:
該鏈接正在使用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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.