【发布时间】:2020-04-18 08:10:59
【问题描述】:
大家好,我正在尝试从电报下载音频文件并解析到谷歌云函数临时文件夹中进行处理。我正在尝试从音频文件中进行一些转录。
但是,它一直在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"
【问题讨论】:
标签: python google-cloud-functions