Member 13766536 Ответов: 0

Невозможно получить инструкции в аудиоформате и не удается воспроизвести аудиофайл после первого


Джарвис должен сказать, что каждая инструкция появляется на экране, но здесь произносится первое утверждение, и никто другой не получает звукового голоса. И при сохранении аудио только первый оператор сохраняется в виде аудиофайла. как удалить предыдущий аудиофайл после обработки и сохранить новый аудиофайл в качестве инструкции.Как получить печатные заявления в аудиоформе, например , есть печатное заявление ("скажи что-нибудь!"), оно должно быть там на экране, а также аудио того же самого должно быть произнесено.

Что я уже пробовал:

import speech_recognition as sr
from time import ctime
import time
import os
from gtts import gTTS
from pygame import mixer
mixer.init()

def speak(audioString):
    print(audioString)
    tts = gTTS(text=audioString, lang='en')
    tts.save("audio.mp3")
    os.system("mpg321 audio.mp3")

def speak_out():
    mixer.music.load('audio.mp3')
    mixer.music.play()
    time.sleep(2)

def recordAudio():
    r = sr.Recognizer()
    with sr.Microphone() as source:
        print("Say something!")
        r.pause_threshold = 1
        r.adjust_for_ambient_noise(source, duration=1)
        audio = r.listen(source)
    data = ""
    try:
        data = r.recognize_google(audio)
        print("You said: " + data)        
    except sr.UnknownValueError:
        print("I could not understand")
    except sr.RequestError as e:
        print("Server error. Check your internet connection: {0}".format(e)) 
    return data

def jarvis(data):
    if "how are you" in data:
        speak("I am fine")

    if "what time is it" in data:
        speak(ctime())

    if 'mail' in data:
        speak('who is recipient')
        recipient = speak()

        if 'John' in data:
            speak('What should I say')
            content = recordAudio()
            mail = smtplib.SMTP('smtp.gmail.com', 587)
            mail.ehlo()
            mail.starttls()
            mail.login('abc@gmail.com','xyz')
            mail.sendmail('Person name', 'mail_id', content)
            mail.close()
            speak('Email sent')


time.sleep(2)
speak("Hi Ajay, what can I do for you?")
speak_out()
while 1:
    data = recordAudio()
    jarvis(data)

0 Ответов