日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

python3123_使用sox和python,基于时间戳列表对音频区域进行静音处理

發(fā)布時(shí)間:2025/3/15 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python3123_使用sox和python,基于时间戳列表对音频区域进行静音处理 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我有一個(gè)音頻文件。

我有一堆[開始,結(jié)束]時(shí)間戳段。在

我想要實(shí)現(xiàn)的目標(biāo):

假設(shè)音頻長(zhǎng)度為6:00分鐘。

我有段是:[[0.0,4.0],[8.0,12.0],[16.0,20.0],[24.0,28.0]]

在我把這兩個(gè)傳遞給sox+python之后,輸出應(yīng)該是6分鐘長(zhǎng)的音頻,但是只有在片段經(jīng)過(guò)的時(shí)間內(nèi)有音頻。在

也就是說(shuō),我想把time stamps和原始音頻傳遞給SOX+python

這樣就生成了一個(gè)音頻,除了那些與傳遞的片段相對(duì)應(yīng)的部分之外,所有內(nèi)容都被靜音

我無(wú)法達(dá)到上述目標(biāo),但有點(diǎn)接近相反的結(jié)果,經(jīng)過(guò)幾天的谷歌搜索,我得到了這樣的結(jié)果:

更新、更簡(jiǎn)潔的代碼+示例:

sox命令,像這樣進(jìn)行填充和修剪SOX__SILENCE = 'sox "{inputaudio}" -c 1 "{outputaudio}" {padding}{trimming}'

隨機(jī)測(cè)試段:

^{pr2}$

生成填充和修剪的小python腳本。在

填充:def get_pad_pattern_from_timestamps(my_segments):

padding = 'pad'

for segment in my_segments:

duration = str(segment[1] - segment[0])

padding = padding + ' ' + duration + '@' + str(segment[0])

return padding

?

print get_pad_pattern_from_timestamps(A)

print get_pad_pattern_from_timestamps(b)

print get_pad_pattern_from_timestamps(z)

print get_pad_pattern_from_timestamps(q)

來(lái)自^的輸出:pad 16.0@0.0

pad 1.0@1.0

pad 6.7@1.6 20.5@13.2 3.0@35.0 9.0@42.0 3.5@70.2 9.2@90.0 8.1@123.0

pad 4.0@0.0 4.0@8.0 4.0@16.0 4.0@24.0 4.0@32.0 4.0@40.0

修剪:def get_trimm_pattern_from_timestamps(my_segments):

trimming = ''

for segment in my_segments:

duration = str(segment[1] - segment[0])

trimming = trimming + ' trim 0 ' + str(segment[0]) + ' 0 ' + duration + ' ' + duration

return trimming

print get_trimm_pattern_from_timestamps(A)

print get_trimm_pattern_from_timestamps(b)

print("\n")

print get_trimm_pattern_from_timestamps(z)

print("\n")

print get_trimm_pattern_from_timestamps(q)

print("\n")

修剪輸出:trim 0 0.0 0 16.0 16.0

trim 0 1.0 0 1.0 1.0

trim 0 1.6 0 6.7 6.7 trim 0 13.2 0 20.5 20.5 trim 0 35.0 0 3.0 3.0 trim 0 42.0 0 9.0 9.0 trim 0 70.2 0 3.5 3.5 trim 0 90.0 0 9.2 9.2 trim 0 123.0 0 8.1 8.1

trim 0 0.0 0 4.0 4.0 trim 0 8.0 0 4.0 4.0 trim 0 16.0 0 4.0 4.0 trim 0 24.0 0 4.0 4.0 trim 0 32.0 0 4.0 4.0 trim 0 40.0 0 4.0 4.0

使用來(lái)自終端的about輸出運(yùn)行SOX:Padding:

sox dinners.mp3 -c 1 testlongpad.mp3 pad 4.0@0.0 4.0@8.0 4.0@16.0 4.0@24.0

Trimming:

sox dinners.mp3 -c 1 testrim.mp3 trim 0 0.0 0 16.0 16.0

Padd and trimm:

sox dinners.mp3 -c 1 testlongpadtrim.mp3 pad 4.0@0.0 4.0@8.0 4.0@16.0 4.0@24.0 trim 0 0.0 0 4.0 4.0 trim 0 8.0 0 4.0 4.0 trim 0 16.0 0 4.0 4.0 trim 0 24.0 0 4.0 4.0

如果S是我的片段,那么NS就是其他一切。在^方法中,我傳遞NS,而NS正在從音頻中刪除。在

我想要實(shí)現(xiàn)的仍然是相同的,但方式不同,即我想傳遞S,這樣只保留與{}對(duì)應(yīng)的音頻部分。在

附言:我的問(wèn)題非常具體,我是新的音頻處理和不確定如何繼續(xù)。請(qǐng)不要把問(wèn)題說(shuō)得太寬泛或是什么。

我很樂(lè)意提供更多的細(xì)節(jié)來(lái)澄清。

最后,這不是一個(gè)硬件問(wèn)題。這是個(gè)人項(xiàng)目。在

樣本段[[開始,結(jié)束],,]]:[[1.6, 8.3], [13.2, 33.7], [35.0,38.0], [42.0,51.0], [70.2,73.7], [90.0,99.2], [123.0,131.1]]

因此,當(dāng)這些時(shí)間戳通過(guò)音頻傳遞給sox/python時(shí),音頻中的所有內(nèi)容(除了提供的片段中的那些部分)都應(yīng)該被消除。在

總結(jié)

以上是生活随笔為你收集整理的python3123_使用sox和python,基于时间戳列表对音频区域进行静音处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。