如何使用PyDub从wave文件的开头和结尾删除静音?
我想我应该逐段访问并检查它是否静音(但我无法做到):/
例如,我在开头,结尾或两者都有一个静音的波形文件(如下所示),我想删除文件开头和结尾处的静音:

例如,我想导入它
sound = AudioSegment.from_wav(inputfile)
Run Code Online (Sandbox Code Playgroud)
为每个声音样本循环以检查它是否静音并标记自波开始后的最后一个静音样本(marker1),然后到达波结束之前的最后一个样本(marker2)并且我可以从两个声音中导出新的声音文件标记
newsound = sound[marker1:marker2]
newsound.export(outputfile, format="wav")
Run Code Online (Sandbox Code Playgroud) 我试图找到一种简单的方法来转换像这样的字符串:
a = '[[a b] [c d]]'
Run Code Online (Sandbox Code Playgroud)
进入相应的嵌套列表结构,其中字母转换为字符串:
a = [['a', 'b'], ['c', 'd']]
Run Code Online (Sandbox Code Playgroud)
我试着用
import ast
l = ast.literal_eval('[[a b] [c d]]')
l = [i.strip() for i in l]
Run Code Online (Sandbox Code Playgroud)
在这里找到
但它不起作用,因为字符a,b,c,d不在引号内.
特别是我正在寻找转变的东西:
'[[X v] -s]'
Run Code Online (Sandbox Code Playgroud)
成:
[['X', 'v'], '-s']
Run Code Online (Sandbox Code Playgroud) 我很困惑,因为看到python返回True进行比较,如下所示:'A'==('A')
Python将元组中的每个元素与另一个比较项进行比较.我的问题是如何避免这种情况? 我正在寻找的是一个'=='逻辑运算符,它为'A'=='A'或('A')==('A')返回True,但对'A'=''('一个').
我总是对Python有这种好奇心,我找不到一个明确的答案,也许有人可以帮助我什么是"if","elif"和"else"优先级和工作方式?如果我做:
if conditionA:
do something
elif conditionB:
do something else
else:
do something else
Run Code Online (Sandbox Code Playgroud)
"其他"是否检查"elif"中的条件或"if"和"elif"两种情况?是否有任何有趣的顺序可以使用它们(例如,if,else,elif,else等)?谢谢