problem z konwertowaniem mowy na tekst - poziom podstawowy

0

Witam mam problem z konwertowanie mowy na tekst. Nie rozumiem na czym polega problem bo jak nie używałem klas to wszystko działało poprawnie.

import speech_recognition as sr
import pyttsx3 as tts

r = sr.Recognizer()
engine = tts.init()
engine.setProperty('rate', 125)

def mow(text):
    engine.say(text)
    engine.runAndWait()

def getText():
    with sr.Microphone() as source:
        try:
            print("Słucham...")
            audio = r.listen(source)
            text = r.recognize_google(audio, language='pl-PL')
            if text != "":
                return text
            return 0
        except:
            return 0

while True:
    txt = getText()
    if not txt == 0:
        print(txt)
        mow(txt)
        break
    else:
        print("Nie udało się rozpoznać...")
        continue

Ten program działał poprawnie wszytko dobrze było zamieniane na tekst. Natomiast po dodanie pliku main.py oraz przerzucenie tego kody do osobnej klasy, nie działa już odczytywanie mowy. Mianowicie mam komunikat że nasłuchuje ale wpada w pętlę nieskończoną.

import speechConversion as mSpeechConversion

if __name__ == '__main__':
    mSpeechConversion.speechConversion()
import speech_recognition as sr
import pyttsx3 as tts

def mow(text):
    print("test1")
    engine.say(text)
    engine.runAndWait()

def getText():
    print("test2")
    with sr.Microphone() as source:
        try:
            print("Słucham...")
            audio = recognizer.listen(source)
            text = recognizer.recognize_google(audio, language='pl-PL')
            if text != "":
                return text
            return 0
        except:
            return 0

class speechConversion:
    recognizer = sr.Recognizer()
    engine = tts.init()
    engine.setProperty('rate', 125)

while True:
    txt = getText()
    if not txt == 0:
        print(txt)
        mow(txt)
        break
    else:
        print("Nie udało się rozpoznać...")
        continue

Do tej pory pracowałem tylko z C++, wiec nie rozumiem czemu tutaj nie może z mikrofonu przekonwertować mowy na tekst. Próbowałem w main.py dodać import speech_recognition oraz pyttsx3 ale to też nic nie dało.

0

A co to jest to, speechConversion, wołane tutaj: mSpeechConversion.speechConversion()?

47

A co wypluwa Ci try except? Nie masz tam żadnej konkretnej obsługi i nawet nie wiesz na czym się dokładni wywaliło. Strzelam, że dostajesz tam excepta i metoda zwraca Ci ciągle 0, ew. txt jest pustym stringiem. Efektem jest nieskończona pętla.

Dzisiaj był bardzo podobny temat z wręcz identycznym problemem -> Problem z powtarzającym się błędem w programie asystenta domowego

1 użytkowników online, w tym zalogowanych: 0, gości: 1