Audiomath 类型错误 - MakeRise、MakeFade、MakeHannWindow
Audiomath TypeError - MakeRise, MakeFade, MakeHannWindow
我在 Python 3.7 和 Windows 10 上使用 audiomath。
我一直在使用 audiomath 来标准化我的音频文件以进行 EEG 分析,它对除此参数之外的所有参数都非常有用,当我试图让它创建淡入、淡出或 HannWindows.
我在其他机器上 运行 使用其他版本 Python 和 Numpy 的相同代码,但我仍然遇到相同的错误。
from audiomath import Sound, MakeRise
import numpy
sound01 = Sound('mySample.wav')
soundFadedIn = sound01.MakeHannWindow(5)
soundFadedIn.Play()
Log Error
正如@WarrenWeckesser 所指出的,这是 audiomath
中的错误,已在 audiomath
版本 1.16.0+
中修复
请注意 MakeHannWindow
只有 return 汉恩权重本身(持续时间和采样频率与 sound01
匹配)。它并不像您假设的那样 return 声音 乘以 权重。使用 .Fade()
方法(也受到相同错误的影响)可能会更好地完成您似乎想要做的事情。
稍微修改一下,你做的方式就是一种方式(它总是给你一个对称的淡入和-out,可选地指定持续时间中间的高原,以秒为单位):
from audiomath import Sound
sound01 = Sound('mySample.wav')
soundFadedInAndOut = sound01 * sound01.MakeHannWindow(5) # note the multiplication
或者这里还有一个,你可以明确地单独指定上升和下降部分的持续时间(它不必是对称的,两个持续时间中的任何一个都可以是 0):
from audiomath import Sound
sound01 = Sound('mySample.wav')
soundFadedInAndOut = sound01.Copy().Fade(risetime=0.5, falltime=0.5, hann=True)
最后,如果出于某种原因您不能或不愿意将 audiomath
升级到 1.16,解决您报告的错误的方法可能是使用 Shoulder()
中的函数 audiomath.Signal
生成你的窗口函数:
import audiomath as am, numpy as np
x = am.Sound('mySample.wav')
endFadeIn, startFadeOut = 0.5, x.duration-0.5
t = np.linspace(0, x.duration, x.nSamples) # in seconds
window = am.Signal.Shoulder(t, [0, endFadeIn, startFadeOut, x.duration]) # it's a numpy array, not a Sound
faded = x * window # but you can still multiply a Sound by it
faded.Play()
我在 Python 3.7 和 Windows 10 上使用 audiomath。
我一直在使用 audiomath 来标准化我的音频文件以进行 EEG 分析,它对除此参数之外的所有参数都非常有用,当我试图让它创建淡入、淡出或 HannWindows.
我在其他机器上 运行 使用其他版本 Python 和 Numpy 的相同代码,但我仍然遇到相同的错误。
from audiomath import Sound, MakeRise
import numpy
sound01 = Sound('mySample.wav')
soundFadedIn = sound01.MakeHannWindow(5)
soundFadedIn.Play()
Log Error
正如@WarrenWeckesser 所指出的,这是 audiomath
中的错误,已在 audiomath
版本 1.16.0+
请注意 MakeHannWindow
只有 return 汉恩权重本身(持续时间和采样频率与 sound01
匹配)。它并不像您假设的那样 return 声音 乘以 权重。使用 .Fade()
方法(也受到相同错误的影响)可能会更好地完成您似乎想要做的事情。
稍微修改一下,你做的方式就是一种方式(它总是给你一个对称的淡入和-out,可选地指定持续时间中间的高原,以秒为单位):
from audiomath import Sound
sound01 = Sound('mySample.wav')
soundFadedInAndOut = sound01 * sound01.MakeHannWindow(5) # note the multiplication
或者这里还有一个,你可以明确地单独指定上升和下降部分的持续时间(它不必是对称的,两个持续时间中的任何一个都可以是 0):
from audiomath import Sound
sound01 = Sound('mySample.wav')
soundFadedInAndOut = sound01.Copy().Fade(risetime=0.5, falltime=0.5, hann=True)
最后,如果出于某种原因您不能或不愿意将 audiomath
升级到 1.16,解决您报告的错误的方法可能是使用 Shoulder()
中的函数 audiomath.Signal
生成你的窗口函数:
import audiomath as am, numpy as np
x = am.Sound('mySample.wav')
endFadeIn, startFadeOut = 0.5, x.duration-0.5
t = np.linspace(0, x.duration, x.nSamples) # in seconds
window = am.Signal.Shoulder(t, [0, endFadeIn, startFadeOut, x.duration]) # it's a numpy array, not a Sound
faded = x * window # but you can still multiply a Sound by it
faded.Play()