gpt4 book ai didi

api - Telegram Bot API : voice message audio spectrogram is missing. 一个错误?

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

我正在开发 Telegram 机器人,我有一个关于 sendvoice API 的问题发送语音(音频)信息。

我推送从 MP3 源文件转换的 OGG 文件,使用 ffmpeg 进行转换,使用以下命令:

$ ffmpeg -loglevel panic -i \
/path/to/la_piattaforma_telegram_è_perfetta.mp3 \
-c:a libopus -compression_level 10 -frame_duration 60 -vbr on -application voip \
/path/to/la_piattaforma_telegram_è_perfetta.ogg -y

顺便说一句,MIME 类型显示正确:
$ file --mime-type -b \ 
/path/to/la_piattaforma_telegram_è_perfetta.ogg
audio/ogg

音频文件按预期正确播放,但我遇到的(小)问题是 Telegram 客户端(桌面/安卓/任何)不显示“波形”( 音频频谱图 ,如下图中的蓝色小部件),而是将波形可视化为一条线。

关于如何显示波形图形的任何想法?是否需要任何特定的 OPUS 格式才能实现良好的可视化?

enter image description here
$ mediainfo /path/to/la_piattaforma_telegram_è_perfetta.ogg
General
Complete name : /path/to/la_piattaforma_telegram_è_perfetta.ogg
Format : Ogg
File size : 5.37 KiB
Duration : 2 s 79 ms
Overall bit rate : 21.2 kb/s

Audio
ID : 1485113069 (0x588506ED)
Format : Opus
Duration : 2 s 79 ms
Channel(s) : 1 channel
Channel positions : Front: C
Sampling rate : 16.0 kHz
Compression mode : Lossy
Writing library : libopus unknown-fixed

缺少波形可视化可能是因为音轨是单声道的( 1 声道 )?

最佳答案

我解决了这个问题。
这是我的错/错误(主要是)。我现在回答我自己,分享我刚刚找到的解决方案。

  • Telegram SendVoice API docs声明要发送的音频文件必须是使用 OPUS 编码的 .OGG 文件,
  • 因此,如我的问题中所述,我使用 ffmpeg 将原始(源)文件(即 .MP3)转换为 .OGG 所需的格式。
  • 不幸的是,对于我的程序中的一个错误,我发送了 MP3 原始音频而不是转换后的 OGG :(

  • 奇怪的是,Telegram API 接受 MP3 音频格式没有错误,但在这种情况下不显示频谱图(而是只显示一条实线)。
    现在,通过发送正确的 .OGG 文件,我得到了预期的频谱图!
    顺便说一句,为了挑剔,Telegram API 上仍然存在一个与 API 端点文档规范相关的小错误(sendVoice 确实接受 ALSO .MP3 而不仅仅是 .OGG 文件)。

    关于api - Telegram Bot API : voice message audio spectrogram is missing. 一个错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56448384/

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