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:
- OpenAI Whisper (lokal oder ĂŒber API)
- 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
Feature | Whisper (OpenAI) | Azure Speech |
---|---|---|
Genauigkeit | Sehr gut | Gut bis sehr gut |
Spracheingaben | Frei | Konfigurierbar |
Geschwindigkeit | mittel | schnell |
Offline möglich | ja (lokal) | nein |
Preis | gĂŒnstig | Azure-typisch |
DateigröĂe max | ca. 25 MB | ca. 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