gpt4 book ai didi

python - 如何从wav取得中间时间范围。 python

转载 作者:行者123 更新时间:2023-12-03 00:32:16 24 4
gpt4 key购买 nike

我需要从wav的音频数据中间提取大约8秒。长度为0:27秒的文件。

-我所做的一切,花了9秒钟的中间时间由wav分割。文件分为3部分,取中间部分,但9s我需要8s。

以及如何在该numpy数组
中找到个位数?

import scipy.io.wavfile
import pyaudio
import numpy as np

(samplRate,data)=scipy.io.wavfile.read('Track48.wav')

print

CHANNELS=2

p= pyaudio.PyAudio()
#
nine_sec=len(data)/3
eight_sec=2*len(data)/3

stream = p.open(format=pyaudio.paInt16,
channels=CHANNELS,
rate=44100,
output=True
)

cuted_data=data[nine_sec:eight_sec]

newdata = cuted_data.astype(np.int16).tostring()
stream.write(newdata)

print(cuted_data)

谢谢您的帮助。

最佳答案

您可以使用pydub非常轻松地将中间的8秒 slice 。
pydub are here的详细信息
您可以安装为pip install pydub
我有一个348秒持续时间的wav文件,其中间8秒被切成薄片。

>>> song.duration_seconds
348.05551020408166

您还可以使用不同的文件格式,例如 wavmp3m4aogg等进行导入(转换为数据段)和导出。

源代码
from pydub import AudioSegment
from pydub.playback import play

song = AudioSegment.from_wav("music.wav")

#slice middle eight seconds of audio
midpoint = song.duration_seconds // 2

left_four_seconds = (midpoint - 4) * 1000 #pydub workds in milliseconds
right_four_seconds = (midpoint + 4) * 1000 #pydub workds in milliseconds

eight_sec_slice = song[left_four_seconds:right_four_seconds ]

#Play slice
play(eight_sec_slice )

#or save to file
eight_sec_slice.export("eight_sec_slice.wav", format="wav")

如您所见,中间8秒片的长度完全符合要求。
>>> eight_sec_slice.duration_seconds
8.0

关于python - 如何从wav取得中间时间范围。 python ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46899930/

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