convert und bis 250tes Wort

This commit is contained in:
Sven Riwoldt
2025-02-03 20:19:41 +01:00
parent 4811f5dea3
commit bf38148e9f
203 changed files with 40 additions and 14 deletions

View File

@@ -3,11 +3,13 @@ import speech_recognition as sr
import os
# Lade die MP3-Datei und konvertiere sie zu WAV
audio = AudioSegment.from_mp3("dreiWorte.mp3")
audio = audio.set_channels(1).set_frame_rate(16000) # Mono & 16kHz für bessere Erkennung
audio = AudioSegment.from_mp3("bis200.mp3")
audio = audio.set_channels(2).set_frame_rate(48000) # Mono & 16kHz für bessere Erkennung
BUFFER_BEFORE = 300
BUFFER_AFTER = 300
# Stille erkennen mit optimierten Werten
silent_ranges = silence.detect_silence(audio, min_silence_len=200, silence_thresh=-45)
silent_ranges = silence.detect_silence(audio, min_silence_len=400, silence_thresh=-45)
silent_ranges = [(start, end) for start, end in silent_ranges if end - start > 200] # Kurze Pausen filtern
# Wortsegmente bestimmen
@@ -20,30 +22,35 @@ word_segments.append((start, len(audio))) # Letztes Wort hinzufügen
# Sprach-Recognizer vorbereiten
recognizer = sr.Recognizer()
namenr = 1
# Jedes Segment speichern und transkribieren
for i, (start, end) in enumerate(word_segments):
start = max(0, start - BUFFER_BEFORE)
end = min(len(audio), end + BUFFER_AFTER)
segment = audio[start:end]
temp_file = f"temp_word_{i+1}.wav"
print(temp_file)
segment.export(temp_file, format="wav")
word_text = ""
#word_text = ""
# Spracherkennung durchführen
with sr.AudioFile(temp_file) as source:
audio_data = recognizer.record(source)
try:
word_text = recognizer.recognize_google(audio_data, language="sv-SV") # Schwedisch
word_text = recognizer.recognize_google(audio_data, language="sv-SE") # Schwedisch
print("Erkanntes Wort:", word_text)
word_text = word_text.replace(" ", "_") # Leerzeichen durch Unterstrich ersetzen
final_file = f"{word_text}.wav"
print(f"Wort {i+1}: {word_text} -> Gespeichert als {final_file}")
os.rename(temp_file, final_file)
except sr.UnknownValueError:
print("Google konnte nichts erkennen.")
final_file = f"{namenr}.wav"
os.rename(temp_file, final_file)
print(f"{namenr} -> Gespeichert als {final_file}")
namenr = namenr + 1
except Exception as e:
print(f"Fehler: {e}")
#word_text = word_text.replace(" ", "_") # Leerzeichen durch Unterstrich ersetzen
#final_file = f"{word_text}.wav"
final_file = "1.wav"
os.rename(temp_file, final_file)
print(f"Wort {i+1}: {word_text} -> Gespeichert als {final_file}")
print("Fertig! Alle Worte wurden gespeichert.")