Spracheingaben verarbeiten mit Whisper oder Azure Speech-to-Text in Access

Warum ĂŒberhaupt Sprache?

Weil nicht jeder tippen will.
Weil Du schneller sprichst als Du schreibst.
Und weil es einfach geht – mit Access als OberflĂ€che.

Ich zeig Dir zwei Wege:

  1. OpenAI Whisper (lokal oder ĂŒber API)
  2. Microsoft Azure Speech-to-Text (ĂŒber REST)

Beides lÀsst sich aus Access per VBA ansprechen.

Vorbereitung

Du brauchst:

  • WAV- oder MP3-Datei mit Sprache
  • Internetverbindung
  • VBA in Access
  • FĂŒr Whisper: Lokale Installation oder API-Key (z. B. OpenRouter oder direkt OpenAI)
  • FĂŒr Azure: Azure-Konto mit Speech-Endpoint und API-Key

Whisper (per OpenAI API)

Schritt 1: WAV-Datei vorbereiten

Mono, 16-bit, 16 kHz – keine Stereo-Fancy-Sachen.
Am besten mit Audacity oder ffmpeg umwandeln.

Schritt 2: Upload und Transkription

Function TranskribiereMitWhisper(pfad As String) As String
    Dim http As Object
    Dim boundary As String
    Dim fileBytes() As Byte
    Dim body As String
    Dim contentType As String
    Dim tempFile As Integer

    boundary = "----WebKitFormBoundary7MA4YWxkTrZu0gW"

    ' Datei öffnen
    Open pfad For Binary As #1
    ReDim fileBytes(LOF(1) - 1)
    Get #1, , fileBytes
    Close #1

    ' TemporÀre Datei schreiben
    tempFile = FreeFile()
    Open Environ$("TEMP") & "\audio_upload.tmp" For Binary Access Write As #tempFile
    Put #tempFile, , fileBytes
    Close #tempFile

    ' HTTP-Aufruf vorbereiten
    Set http = CreateObject("MSXML2.XMLHTTP")
    http.Open "POST", "https://api.openai.com/v1/audio/transcriptions", False
    http.setRequestHeader "Authorization", "Bearer DEIN_API_KEY"
    http.setRequestHeader "Content-Type", "multipart/form-data; boundary=" & boundary

    ' Multipart manuell senden (Achtung: stark vereinfacht)
    ' Empfehlung: lieber Curl.exe per Shell starten oder externe Wrapper nutzen

    MsgBox "Whisper-Upload geht besser ĂŒber externes Tool oder PowerShell.", vbExclamation
    TranskribiereMitWhisper = ""
End Function

Whisper per VBA direkt ist umstÀndlich.
Besser: curl nutzen oder Python-Wrapper aufrufen.

Alternativ: Python-Script von Access aus aufrufen

Shell "python C:\scripts\whisper_transcribe.py ""C:\audio\eingabe.wav""", vbNormalFocus

RĂŒckgabe ĂŒber Textdatei oder REST möglich.

Azure Speech-to-Text (REST API)

Schritt 1: Azure einrichten

  • Ressource vom Typ „Speech“ in Azure anlegen
  • API-Key + Region notieren
  • Audio vorbereiten (16 kHz, mono, WAV)

Schritt 2: REST-Aufruf aus Access

Function AzureTranscribe(wavPfad As String) As String
    Dim http As Object
    Dim fileBytes() As Byte
    Dim response As String
    Dim region As String
    Dim key As String

    region = "westeurope"
    key = "DEIN_API_KEY"

    Open wavPfad For Binary As #1
    ReDim fileBytes(LOF(1) - 1)
    Get #1, , fileBytes
    Close #1

    Set http = CreateObject("MSXML2.ServerXMLHTTP")
    http.Open "POST", "https://" & region & ".stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?language=de-DE", False
    http.setRequestHeader "Content-Type", "audio/wav; codecs=audio/pcm; samplerate=16000"
    http.setRequestHeader "Ocp-Apim-Subscription-Key", key
    http.send fileBytes

    response = http.responseText
    AzureTranscribe = ExtrahiereAzureText(response)
End Function

JSON-Ausgabe auslesen

Function ExtrahiereAzureText(json As String) As String
    Dim sc As Object
    Set sc = CreateObject("ScriptControl")
    sc.Language = "JScript"
    sc.AddCode "function parse(j){return JSON.parse(j).DisplayText;}"
    ExtrahiereAzureText = sc.Run("parse", json)
End Function

Vergleich Whisper vs Azure

FeatureWhisper (OpenAI)Azure Speech
GenauigkeitSehr gutGut bis sehr gut
SpracheingabenFreiKonfigurierbar
Geschwindigkeitmittelschnell
Offline möglichja (lokal)nein
PreisgĂŒnstigAzure-typisch
DateigrĂ¶ĂŸe maxca. 25 MBca. 10 MB

Was sinnvoll ist

  • Mit Azure starten, wenn Du schon ein Abo hast
  • FĂŒr mehr Kontrolle: Whisper lokal installieren (z. B. whisper.cpp)
  • Access = UI, Backend = Python oder REST
  • Antwort in Tabelle speichern (siehe vorherige BeitrĂ€ge)

„Sprich mit Deiner Access-Datenbank. Die versteht Dich jetzt.“

Wenn Du das brauchst – ich helf Dir beim Setup.
Auch mit PowerShell, Python oder ffmpeg, wenn’s sein muss.

Keine Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert