gpt4 book ai didi

python - audioop的 "sound fragment"参数是什么类型的文件?

转载 作者:太空狗 更新时间:2023-10-29 20:20:03 25 4
gpt4 key购买 nike

Python audioop documentation声明大多数可用功能都需要“声音片段”。

The audioop module contains some useful operations on sound fragments. It operates on sound fragments consisting of signed integer samples 8, 16 or 32 bits wide, stored in Python strings.

声音片段到底是什么?如何将现有的 .wav 文件转换为声音片段?

谢谢。

最佳答案

您可以使用 wave module 来做到这一点

open() 方法打开文件,readframes(n) 以字节串形式返回(最多)n 帧音频,这正是 audioop 想要的。

例如,假设您需要使用 audioop 中的 avg() 方法。你可以这样做:

import wave
import audioop


wav = wave.open("piano2.wav")
print(audioop.avg(wav.readframes(wav.getnframes()), wav.getsampwidth()))

输出:

-2

此外,您可能对 wave 模块中的 rewind() 方法感兴趣。它将读取位置放回到 wav 文件的开头。

如果你需要阅读你的 wav 文件两次你可以这样写:

wav = wave.open("piano2.wav")
print(audioop.avg(wav.readframes(wav.getnframes()), wav.getsampwidth()))

# if you don't call rewind, next readframes() call
# will return nothing and audioop will fail

wav.rewind()
print(audioop.max(wav.readframes(wav.getnframes()), wav.getsampwidth()))

或者您可以缓存字符串:

wav = wave.open("piano2.wav")
string_wav = wav.readframes(wav.getnframes())
print(audioop.avg(string_wav, wav.getsampwidth()))
# wav.rewind()
print(audioop.max(string_wav, wav.getsampwidth()))

关于python - audioop的 "sound fragment"参数是什么类型的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27895186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com