我有以下形式的音频作为字节:
b'ID3x04x00x00x00x00x00#TSSEx00x00x00x0fx00x00x03Lavf57.71.100x00x00x00x00x00x00x00x00x00x00x00xff...
我从亚马逊网络服务得到的:
import boto3
client = boto3.client('polly')
response = client.synthesize_speech(
Engine='neural',
LanguageCode='en-GB',
OutputFormat='mp3',
SampleRate='8000',
Text='hey whats up this is a test',
VoiceId='Brian'
)
我想使用
AudioFileClip()
AudioFileClip 采用文件名或表示声音的数组。我知道我可以将音频另存为文件并读取它,但我想让 AudioFileClip 获取我上面显示的字节输出。
我试过了:
AudioFileClip(response['AudioStream'].read())
但这给出了错误:
类型错误:结束与第一个参数必须是字节或字节元组,而不是 str
我能做什么?
您需要将音频流转换为其他类型。(这就是为什么它被称为TypeError(。你把它作为一个字符串,它想要一个字节格式。
您可以使用字节数组函数将 str 转换为字节! https://docs.python.org/3/library/functions.html#func-bytearray
你也可以看看这个问题: 在 Python 3 中将字符串转换为字节的最佳方法?
如需更多帮助,请对此发表评论,我会尽快为您提供帮助。
希望这可以帮助您完成项目,
PythonMasterLua