gpt4 book ai didi

python - Python读取.3gpp文件

转载 作者:行者123 更新时间:2023-12-03 01:29:48 26 4
gpt4 key购买 nike

我有大量的音频文件列表,希望在学习算法中用于分类。问题是这些都是.3gpp格式,只是使用

f = open(filename, 'r')
content = f.read()

引发异常

UnicodeDecodeError: 'charmap' codec can't decode byte 0x8f in position 695: character maps to undefined



我一直在寻找可以读取.3gpp文件的库,但似乎找不到任何库,现在我问这里的社区,他们是否知道如何以这种格式读取

最佳答案

您是否正在尝试将音频文件读入数组?如果是这样,您可以尝试pydub读取文件,转换为numpy数组,还可以导出为其他格式,例如wav,mp3等,或播放它。详细信息here'

我能够得到一个.3ga样本文件,并使用ffmpeg的“amr”选项转换为audioSegment(pydub在后端使用了ffmpeg)。
如果要读取整个数组,请取消注释np.set_printoptions
工作代码如下

import numpy as np
import sys

from pydub import AudioSegment
from pydub.playback import play

#To print array fully
#np.set_printoptions(threshold=sys.maxsize)

#Format conversion from .3ga
song = AudioSegment.from_file('example.3ga', format='amr')

#If you want to play file
#play(song)

#export to other format
song.export("example.wav", format='wav')

#Collect samples in array
samples = song.get_array_of_samples()
samples = np.array(samples)
print(samples)

输出。
>>python 3gaConverter.py 
[ 6723 22419 30259 ... -21813 -22992 -21218]

如果您只想转换为其他格式,则可以直接使用ffmpeg
$ffmpeg -y -f amr -i ./example.3ga -f mp3 ./out.mp3

OR
$ffmpeg -y -f amr -i ./example.3ga -f wav ./out.wav

关于python - Python读取.3gpp文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58670647/

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