gpt4 book ai didi

python - 在 python 中播放 .wav 文件的一部分

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

是否可以在 Python 中播放 .wav 文件的特定部分?

我想要一个函数 play(file, start, length)start 秒开始播放音频文件 file 并停止length 秒后播放。这可能吗?如果可能,我需要什么库?

最佳答案

这是可能的,并且在 python 中很容易。

Pyaudio是一个不错的库,您可以用来播放音频!

首先您需要解码音频文件(wav、mp3 等),这一步将音频数据转换为数字(short int 或 float32)。

您是否需要转换等效位置点的秒数以切断感兴趣位置的信号,为此将您的帧速率乘以您想要的秒数!

这里是 wav 文件的一个简单示例:

import pyaudio
import sys
import numpy as np
import wave
import struct



File='ederwander.wav'
start = 12
length=7
chunk = 1024

spf = wave.open(File, 'rb')
signal = spf.readframes(-1)
signal = np.fromstring(signal, 'Int16')
p = pyaudio.PyAudio()

stream = p.open(format =
p.get_format_from_width(spf.getsampwidth()),
channels = spf.getnchannels(),
rate = spf.getframerate(),
output = True)


pos=spf.getframerate()*length

signal =signal[start*spf.getframerate():(start*spf.getframerate()) + pos]

sig=signal[1:chunk]

inc = 0;
data=0;


#play
while data != '':
data = struct.pack("%dh"%(len(sig)), *list(sig))
stream.write(data)
inc=inc+chunk
sig=signal[inc:inc+chunk]


stream.close()
p.terminate()

关于python - 在 python 中播放 .wav 文件的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18721780/

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