Привет всем, я пытаюсь загрузить аудиофайл из Telegram и разобрать во временную папку облачных функций Google для обработки. Я пытаюсь сделать некоторые записи из аудиофайла.
Однако он продолжает выдавать ошибку в строке ft.transcode(voice.download('/tmp/file.ogg'), 'wav')
о том, что файл не существует. Есть ли в GCF папка tmp?
Мой код такой, как показано ниже
import os
import telegram
import speech_recognition as sr
import ftransc.core as ft
from googletrans import Translator
from google.cloud import speech_v1
bot = telegram.Bot(token=os.environ["TELEGRAM_TOKEN"])
translator = Translator()
def webhook(request):
if request.method == "POST":
update = telegram.Update.de_json(request.get_json(force=True), bot)
chat_id = update.message.chat.id
# Reply with the same message
# getting the audio file
audio_data = update.message.voice
chat_data = update.message.text
if audio_data :
voice = bot.getFile(audio_data.file_id)
print ("hello")
print(voice)
voice.download('/tmp/file.ogg')
os.listdir('/tmp')
ft.transcode(voice.download('/tmp/file.ogg'), 'wav')
r = sr.Recognizer()
with sr.WavFile('/tmp/file.wav') as source:
audio = r.record(source)
txt = r.recognize_google(audio)
print(txt)
else :
print(chat_data)
try:
translated = translator.translate(chat_data, dest='bn')
transldated_data = translated.text
except :
transldated_data = "please try again"
print(transldated_data)
bot.sendMessage(chat_id=chat_id, text=transldated_data)
return "ok"