使用PyDub删除wave文件开头和结尾处的静音

丹尼·帕尼兹(DaniPaniz)

如何使用PyDub从Wave文件的开头和结尾消除静音?

我想我应该逐段访问并检查它是否保持沉默(但我无法执行此操作):/

例如,我有一个Wave文件,在文件的开头,结尾或两者处均​​保持静音(如下所示),并且我想在文件的开头和结尾处删除静音:

带有静音的波形文件

例如我要导入

sound = AudioSegment.from_wav(inputfile)

循环检查声音的每个样本,以检查是否静音,并标记自波浪开始以来的最后一个沉默样本(标记1),然后在波浪结束之前到达最后一个样本(标记2),我可以从这两个声音文件中导出新的声音文件标记

newsound = sound[marker1:marker2]

newsound.export(outputfile, format="wav")
贾阿罗

我建议您以至少10 ms的块为单位进行循环,以使其更快一点(减少迭代),并且还因为单个样本实际上没有“响度”。

声音就是振动,因此至少要采样2个样本才能检测出实际上是否有声音(但这只会告诉您高频)。

无论如何...像这样的事情可能会起作用:

from pydub import AudioSegment

def detect_leading_silence(sound, silence_threshold=-50.0, chunk_size=10):
    '''
    sound is a pydub.AudioSegment
    silence_threshold in dB
    chunk_size in ms

    iterate over chunks until you find the first one with sound
    '''
    trim_ms = 0 # ms

    assert chunk_size > 0 # to avoid infinite loop
    while sound[trim_ms:trim_ms+chunk_size].dBFS < silence_threshold and trim_ms < len(sound):
        trim_ms += chunk_size

    return trim_ms

sound = AudioSegment.from_file("/path/to/file.wav", format="wav")

start_trim = detect_leading_silence(sound)
end_trim = detect_leading_silence(sound.reverse())

duration = len(sound)    
trimmed_sound = sound[start_trim:duration-end_trim]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将csv文件读入R,在每行的开头和结尾处都包含方括号

来自分类Dev

在包含关键字的行的开头和结尾处插入标签

来自分类Dev

如何确定在父元素的开头或结尾处是否存在文本?HTML DOM和JavaScript

来自分类Dev

在字符串的开头和结尾处连续删除数学运算符

来自分类Dev

CCLabelTTF :: setString在字符串的开头和结尾处不接受空格

来自分类Dev

在歌曲的开头和结尾处淡入/淡出音频

来自分类Dev

Angular http.get不喜欢开头和结尾处带有方括号的文本文件

来自分类Dev

如何使用正则表达式在javascript中字符串的开头和结尾处删除<br>?

来自分类Dev

strsplit()的行为与字符串开头和结尾处的空格不同

来自分类Dev

始终在方法的开头和结尾处执行代码

来自分类Dev

在函数的开头或结尾处是否有requestAnimationFrame?

来自分类Dev

Python numpy在列的开头和结尾处插入列

来自分类Dev

选择名称开头和结尾处具有固定模式的列,以及可变的中间部分

来自分类Dev

如何在Flutter TextFormField的开头和结尾处缩进和缩进

来自分类Dev

如何使用FFMpeg仅修剪mp3文件的开头和结尾的静音?

来自分类Dev

在每行的开头和结尾处添加文本

来自分类Dev

如何确定在父元素的开头或结尾处是否存在文本?HTML DOM和JavaScript

来自分类Dev

在读取文件的字符串的开头和结尾处追加一些字符串

来自分类Dev

在段落的开头和结尾处的双箭头

来自分类Dev

R在列的开头和结尾处删除零

来自分类Dev

如何使用正则表达式在javascript中字符串的开头和结尾处删除<br>?

来自分类Dev

strsplit()的行为与字符串开头和结尾处的空格不同

来自分类Dev

如何连接多个CSV文件,避免在开头和结尾处有些行

来自分类Dev

如何使用GCC在每个函数的开头/结尾处植入我自己的代码

来自分类Dev

在第1行的开头和结尾处添加特定的字符串

来自分类Dev

如何删除文件开头和结尾的空行?

来自分类Dev

批处理文件以合并每个txt文件开头和结尾处文件夹中的所有txt文件

来自分类Dev

Ansible - 映射属性时在 Key 的开头和结尾处“未定义”

来自分类Dev

删除在 R 开头和结尾处包含句点的行

Related 相关文章

  1. 1

    将csv文件读入R,在每行的开头和结尾处都包含方括号

  2. 2

    在包含关键字的行的开头和结尾处插入标签

  3. 3

    如何确定在父元素的开头或结尾处是否存在文本?HTML DOM和JavaScript

  4. 4

    在字符串的开头和结尾处连续删除数学运算符

  5. 5

    CCLabelTTF :: setString在字符串的开头和结尾处不接受空格

  6. 6

    在歌曲的开头和结尾处淡入/淡出音频

  7. 7

    Angular http.get不喜欢开头和结尾处带有方括号的文本文件

  8. 8

    如何使用正则表达式在javascript中字符串的开头和结尾处删除<br>?

  9. 9

    strsplit()的行为与字符串开头和结尾处的空格不同

  10. 10

    始终在方法的开头和结尾处执行代码

  11. 11

    在函数的开头或结尾处是否有requestAnimationFrame?

  12. 12

    Python numpy在列的开头和结尾处插入列

  13. 13

    选择名称开头和结尾处具有固定模式的列,以及可变的中间部分

  14. 14

    如何在Flutter TextFormField的开头和结尾处缩进和缩进

  15. 15

    如何使用FFMpeg仅修剪mp3文件的开头和结尾的静音?

  16. 16

    在每行的开头和结尾处添加文本

  17. 17

    如何确定在父元素的开头或结尾处是否存在文本?HTML DOM和JavaScript

  18. 18

    在读取文件的字符串的开头和结尾处追加一些字符串

  19. 19

    在段落的开头和结尾处的双箭头

  20. 20

    R在列的开头和结尾处删除零

  21. 21

    如何使用正则表达式在javascript中字符串的开头和结尾处删除<br>?

  22. 22

    strsplit()的行为与字符串开头和结尾处的空格不同

  23. 23

    如何连接多个CSV文件,避免在开头和结尾处有些行

  24. 24

    如何使用GCC在每个函数的开头/结尾处植入我自己的代码

  25. 25

    在第1行的开头和结尾处添加特定的字符串

  26. 26

    如何删除文件开头和结尾的空行?

  27. 27

    批处理文件以合并每个txt文件开头和结尾处文件夹中的所有txt文件

  28. 28

    Ansible - 映射属性时在 Key 的开头和结尾处“未定义”

  29. 29

    删除在 R 开头和结尾处包含句点的行

热门标签

归档