Временная папка для облачных функций Google не работает - PullRequest
0 голосов
/ 18 апреля 2020

Привет всем, я пытаюсь загрузить аудиофайл из 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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...