Scriptbeispiel: Umsetzung einer Diktiersoftware inkl. Vorlesefunktion und Übersetzung

import sounddevice as sd
import numpy as np
from scipy.io.wavfile import write
import os
import subprocess
import pyttsx3
import time
import pyperclip
import pyautogui

def transkription_und_uebersetzung(aufnahme_dateiname):
    # Führe die Transkription durch
    command_transkrip = f"whisper {aufnahme_dateiname} --device cuda --model medium --output_dir transkrip"
    os.system(command_transkrip)

    # Führe die Übersetzung durch
    command_transl = f"whisper {aufnahme_dateiname} --device cuda --model medium --output_dir transl --task translate"
    os.system(command_transl)

# Konfiguration der Aufnahme
fs = 44100  # Abtastrate (Samples pro Sekunde)

# Starte die kontinuierliche Aufnahme
aufnahme = sd.InputStream(samplerate=fs, channels=1, dtype='int16')
aufnahme.start()

buffer = []
recording = True

print("Bitte sprechen Sie etwas ins Mikrofon...")

try:
    while recording:
        # Lies die aktuellen Audiodaten
        audiodaten, _ = aufnahme.read(fs)

        # Füge die aktuellen Audiodaten zum Puffer hinzu
        buffer.extend(audiodaten)

        # Überprüfe, ob der Puffer zu groß ist (2 Sekunden Stille)
        if len(buffer) > fs * 20:
            recording = False

except KeyboardInterrupt:
    print("\nAufnahme manuell gestoppt.")

finally:
    # Stoppe die Aufnahme
    aufnahme.stop()

    # Konvertiere den Buffer zu einem NumPy-Array
    buffer = np.array(buffer)

    # Speichern der Aufnahme als WAV-Datei mit fester Bezeichnung "aufnahme.wav"
    aufnahme_dateiname = "aufnahme.wav"
    write(aufnahme_dateiname, fs, buffer)

    # Führe die restlichen Befehle aus
    transkription_und_uebersetzung(aufnahme_dateiname)

    print("Aufnahme, Transkription und Übersetzung abgeschlossen.")

    # Wechsle zum Ordner "transl"
    transl_ordner = "transkrip"
    os.chdir(transl_ordner)

    # Lese den Inhalt der Datei "aufnahme.txt"
    ergebnis_dateiname = "aufnahme.txt"
    with open(ergebnis_dateiname, 'r', encoding='utf-8') as file:
        inhalt = file.read()

    print(f"Inhalt der Datei {ergebnis_dateiname}:\n{inhalt}")

    # Vorlesen des Inhalts per Audio
    text_to_speech = pyttsx3.init()
    text_to_speech.say(inhalt)
    text_to_speech.runAndWait()

    # Warte für eine kurze Zeit, damit das Vorlesen abgeschlossen werden kann
    time.sleep(2)

# Lese den Inhalt der Datei "aufnahme.txt"
ergebnis_dateiname = "aufnahme.txt"
with open(ergebnis_dateiname, 'r', encoding='utf-8') as file:
    inhalt = file.read()

print(f"Inhalt der Datei {ergebnis_dateiname}:\n{inhalt}")

# Kopiere den Text in die Zwischenablage
pyperclip.copy(inhalt)

# Füge den Text an der aktuellen Cursorposition ein (zum Beispiel durch Tastenkombination Strg+V)
pyautogui.hotkey('ctrl', 'v')

print("Text wurde an der aktuellen Cursorposition eingefügt.")

Kommentare sind deaktiviert.