【问题标题】:Python: Formatting wav data of variable length into specific lengthPython:将可变长度的wav数据格式化为特定长度
【发布时间】:2020-06-02 20:31:03
【问题描述】:

我正在尝试创建一个程序,该程序将读取和分析 .wav 文件,找到与时间有关的幅度 + 频率,将其设置为数组([时间幅度频率](id est: [x y z]))并通过中立网络运行它。我的问题是我需要恒定数量的值,但音频剪辑的长度不同。

我如何“平均”(某种意义上)数据以创建一个数组,例如,从 22050 中提取 20 000 个值,以及对 17500 数组执行相同操作?

最好使用原始 .wav 数据或幅度/频率来执行此操作(如果可能)

编辑:为澄清起见,我希望保持音频不变,因此不要加快/减慢它,因为我将它用于专门针对我的声音的语音识别程序。

我还希望避免在数组末尾添加空值,但我可能不得不求助于此。

【问题讨论】:

    标签: python wav data-analysis


    【解决方案1】:

    在这种情况下,我建议对音频文件进行预处理。如果您使用的是 python“wave”库。您可以使用它来读取文件,然后以修改后的速率将其写出。

    例如:

    ...
    outfile = wave.open("processed.wav", "rb")
    outfile.setframerate(original_rate/factor)
    ...
    

    如果因子 > 1,那么您将缩短文件(快速播放),如果它

    【讨论】:

    • 你知道SciPy有没有这样的功能吗?也不会改变频率吗?
    • 对不起,这超出了我以前的经验。频率应该根据您的输入数据进行平均。我不能提供更多信息,然后在这种情况下试一试。对不起。
    猜你喜欢
    • 2016-08-26
    • 1970-01-01
    • 2014-07-27
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多