Python 如何通过音频子序列上的parselmouth计算音频度量

Python 如何通过音频子序列上的parselmouth计算音频度量,python,praat,Python,Praat,我正在使用(环绕praat的包装器)通过这样做来提取强度和音高特征: snd = parselmouth.Sound(path) intensity = snd.to_intensity() pitch = snd.to_pitch() 但是,音频文件包含长序列的静音,在计算这些音频指标之前,我想先删除这些静音。我可以通过处理通过wave包读取音频(并应用一些逻辑)返回的numpy数组来消除静音,但无法将新数组传递给parselmouth 我甚至愿意为parselmouth提供startTi

我正在使用(环绕praat的包装器)通过这样做来提取强度和音高特征:

snd = parselmouth.Sound(path)

intensity = snd.to_intensity()
pitch = snd.to_pitch()
但是,音频文件包含长序列的静音,在计算这些音频指标之前,我想先删除这些静音。我可以通过处理通过wave包读取音频(并应用一些逻辑)返回的numpy数组来消除静音,但无法将新数组传递给parselmouth


我甚至愿意为parselmouth提供startTime和endTime参数,但找不到支持这两个参数的文档。

对于这种情况,有两个选项可能有用:

  • 您可以从示例中创建
    parselmouth.Sound
    ,而不是从文件中读取。有
  • Parselmouth
    声音
    还具有(相当于用户界面中Praat的“提取部分…”按钮),允许您提取片段(甚至可以选择使用与矩形窗口不同的窗口形状打开窗口)
请注意,在消除静音时,您可能需要留一点或空白,因为1)强度和基音分析都使用一定大小的滑动窗口(因此,如果不留空白,一些窗口将覆盖“不连续语音”),2)基音分析使用启发式来保持+连续的基音轮廓(因此,如果您没有在检测到静音/没有发声的地方留下空白,相邻碎片的音高估计值将相互影响)