Ami*_*ani 7 python audio pydub telegram python-telegram-bot
我做了一个Telegram机器人,它的工作之一就是从音频文件创建样本。现在,对于发送给它的大多数音频而言,样本都很好。像这样的东西:
但是,对于某些音频,样本看起来有些奇怪:
如您所见,此文件中的波未显示!(我可以向您保证声音不是空的)
为了创建示例,我使用pydub(谢谢James!)。这是我创建示例的部分:
song = AudioSegment.from_mp3('song.mp3')
sliced = song[start*1000:end*1000]
sliced.export('song.ogg', format='ogg', parameters=["-acodec", "libopus"])
Run Code Online (Sandbox Code Playgroud)
然后使用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
)
Run Code Online (Sandbox Code Playgroud)
Telegram Bot API的文档说:
如果希望Telegram客户端将文件显示为可播放的语音消息,请使用此方法发送音频文件。为此,您的音频必须位于使用OPUS编码的.ogg文件中(其他格式可能以音频或文档的形式发送)。
这就是为什么在这行代码中:
sliced.export('song.ogg', format='ogg', parameters=["-acodec", "libopus"])
Run Code Online (Sandbox Code Playgroud)
我用过parameters=["-acodec", "libopus"]。
谁能告诉我我在做什么错?提前致谢!
暗中拍摄猜测:
刚刚试听了这两首 Muse 歌曲后,“Pressure”是一首比“The Void”响亮得多的摇滚歌曲。我怀疑 Telegram 服务本身在执行语音到文本翻译时只是将音乐检测为噪音。与言语不同的是,言语之间的动态范围很宽,而音乐的音量往往相同。因此,每个样本的相对体积相对相同 - 因此是一条平坦的线。
| 归档时间: |
|
| 查看次数: |
195 次 |
| 最近记录: |