我制作了一个Telegram机器人,其中之一的任务是从音频文件中创建样本。对于大多数发送给它的音频文件来说,样本都非常好;就像这样:
然而,对于一些音频来说,样本看起来有点奇怪:
如下所示,此文件中的波形图未显示!(我可以保证声音不为空)
为了创建这个样本,我使用了pydub(感谢James!)。以下是我创建样本的部分代码:
然后我使用
我使用了
有人可以告诉我我做错了什么吗?提前感谢!
为了创建这个样本,我使用了pydub(感谢James!)。以下是我创建样本的部分代码:
song = AudioSegment.from_mp3('song.mp3')
sliced = song[start*1000:end*1000]
sliced.export('song.ogg', format='ogg', parameters=["-acodec", "libopus"])
然后我使用
bot.send_voice
方法发送样品。像这样:bot.send_voice(
chat_id=update.message.chat.id,
voice=open('song.ogg', 'rb'),
caption=settings.caption,
parse_mode=ParseMode.MARKDOWN,
timeout=1000
)
Telegram Bot API 的文档说:
因此,在以下代码行中:如果你想让 Telegram 客户端将音频文件显示为可以播放的语音消息,请使用此方法发送音频文件。为使其正常工作,您的音频必须是使用 OPUS 编码的 .ogg 文件(其他格式可能被视为音频或文档发送)。
sliced.export('song.ogg', format='ogg', parameters=["-acodec", "libopus"])
我使用了
parameters=["-acodec", "libopus"]
。有人可以告诉我我做错了什么吗?提前感谢!