gpt4 book ai didi

python - 使用 python-telegram-bot 进行语音识别,无需下载音频文件

转载 作者:行者123 更新时间:2023-12-04 23:35:01 26 4
gpt4 key购买 nike

我正在开发一个电报机器人,用户在其中发送语音消息,机器人将其转录并发回文本中所说的内容。
为此,我将 python-telegram-bot 库和 Speech_recognition 库与谷歌引擎一起使用。
我的问题是,用户发送的语音消息是 .mp3,但是为了转录它们,我需要将它们转换为 .wav。为此,我必须下载发送到机器人的文件。
有没有办法避免这种情况?我知道这不是一种有效且安全的方法,因为许多活跃用户同时会导致竞争状况并占用大量空间。


def voice_handler(update, context):
bot = context.bot
file = bot.getFile(update.message.voice.file_id)
file.download('voice.mp3')
filename = "voice.wav"

# convert mp3 to wav file
subprocess.call(['ffmpeg', '-i', 'voice.mp3',
'voice.wav', '-y'])

# initialize the recognizer
r = sr.Recognizer()

# open the file
with sr.AudioFile(filename) as source:

# listen for the data (load audio to memory)
audio_data = r.record(source)
# recognize (convert from speech to text)
text = r.recognize_google(audio_data, language='ar-AR')


def main() -> None:
updater.dispatcher.add_handler(MessageHandler(Filters.voice, voice_handler))

最佳答案

正如评论中所指出的,一种选择可能是将文件下载到内存而不是磁盘。
如果这不适合您,您可以每次都给文件一个唯一的 id - 例如使用用户 user_id甚至是 uuid - 这将防止文件被覆盖。

关于python - 使用 python-telegram-bot 进行语音识别,无需下载音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72743713/

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