zwei mögliche wege zur besseren übersetzung von text to speech

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
der brummende brutus
User
Beiträge: 2
Registriert: Mittwoch 2. März 2022, 16:41

heyho. ich habe letztens erst ein speech to text skript mit anschliesender übersetzung geschrieben. dies tut auch seine arbeit nur gibt es dabei eine verzögerung von speechReocgnition da es nicht permanent aufnehmen und schreiben kann. dies führt zu einer aufnahme lücke zwischen der spracherkennung ud dem ausgeben des textes. und da es eig in echtzeit die "untertitel" auspucken soll, weil ich es dafür geschrieben habe, habe ich mir überlegt es abzuändern. in der theorie wollte ich von einer website, die sprachditkierung macht und dabei viel schneller und akkurater ist, die stimme erkennen lassen und per beatuifulsoup den text kopieren, übersetzen und wieder ausspucken lassen. soweit so gut. das wollte ich machen und es funtkioniert theoretisch auch. es nimmt halt nur die html datei von neuem und greift somit nicht auf den text zu der schon ausgeschrieben wurde auf der html die ich schon geöffnet habe. deswegen habe ich mir jetzt überlegt ein Screen-Capturing programm zsm mit pytesseract laufen zu lassen. die frage ist hierbei wäre das hilfreicher oder genauso langsam? habt ihr lösungenzu meinem problem mit beautifulsoup und wenn ja was wäre sinvoller und weniger zeitauwändiger? und falls ihr lösungen zum grundliegendem problem habt, freue ich mich auch über diese. (der beautifulsoup code ist noch nicht zu ende gemacht aber wenn es sich nicht lohnt brauch ich mir die mühe auch nicht zu machen deswegen frag ich hier nach. ich denke als verständnis was ich mache reicht es)(der erste skript ist die eig spracherkennung die langsam ist und das zweite skript ist der anfang meiner bs methode)

Code: Alles auswählen

import speech_recognition
#import pyttsx3 
from googletrans import Translator

recognizer = speech_recognition.Recognizer()
translator = Translator()

while True:
    
    try:

        with speech_recognition.Microphone() as source:

           
            recognizer.adjust_for_ambient_noise(source, duration=0.2)
            audio = recognizer.record(source, 3)
            #audio = recognizer.listen(source,2)
            text1 = recognizer.recognize_google(audio, language="de-DE")
            text = text1.lower()
            translation = translator.translate(text, dest='en')
            print(translation.text)
        
    except Exception as e: 
            
             continue

Code: Alles auswählen

from bs4 import BeautifulSoup
import requests

url = f'https://www.textfromtospeech.com/de/voice-to-text/'
page = requests.get(url)
soup = BeautifulSoup(page.content, 'html.parser')
panel = soup.find('div' ,attrs={'class':'panel-body'})
print(panel)
Benutzeravatar
Codroid
User
Beiträge: 5
Registriert: Donnerstag 10. März 2022, 12:30
Kontaktdaten:

Zunächst ein Disclaimer: Ich habe auf diesem Gebiet leider keine ausreichende Erfahrung um eine garantierte Lösung liefern zu können. Alle Tipps müsstest du also einfach mal ausprobieren und schauen, ob es etwas bringt.
Ok. Ich habe tatsächlich über die Google Speech Recognition bereits ein Programm zur Übersetzung von MP3 Aufnahmen geschrieben. Das ist jetzt nicht direkt mit einer Live-Aufnahme zu vergleichen, allerdings gibt es ein paar Parallelen.

Der Recognizer braucht für seine Arbeit verhältnismäßig lange. Diese Zeit steigt natürlich mit der Länge der zu übersetzenden Audio. Auch ist mir aufgefallen, dass google die Session bei Längen von über einer Minute automatisch abbricht. Zu lange Audios sind also aus diesen beiden Gründen schonmal nicht zu empfehlen. Was kannst du jetzt machen?
Es ist möglich über

Code: Alles auswählen

recognizer_instance.pause_threshold = <float>
deine Audio an jeder Redepause in Chunks einzuteilen. Wenn du diesen Threshold gut wählst, solltest du kleine Chunks bekommen können, die sich schneller übersetzen lassen. Da ich in deinem Code nicht sehe, dass du deine Audio an irgendeiner Stelle in Chunks einteilst, gehe ich erstmal davon aus, dass der Recognizer primär aus diesem Grund zu langsam ist.
Codroid ist eine Programmierschule in der das praktische Programmieren mit Python unterrichtet wird. Falls du Interesse hast, dann schreibe gerne eine PN oder email.
Antworten