Audio Ai agent Pipeline

Audio Ai-Agent Pipelines
https://ift.tt/guXB1o6
Introduction
Voice-controlled AI agents have traditionally required expensive cloud APIs, constant internet connectivity, and a willingness to send sensitive audio to third-party servers. This project breaks that mould by assembling an end-to-end voice-to-action pipeline that keeps the heavy inference local. You speak — or upload an audio file — and the system transcribes, understands, routes, and executes without leaving your machine (except for the Groq-hosted Whisper call at the STT stage).
The stack is deliberately minimal yet production-quality:
– Whisper Large V3 via the Groq API for near-real-time, high-accuracy speech-to-text
– Llama 3 via Ollama as the local reasoning engine for intent classification and response generation
– Streamlit as the browser-based frontend with a premium glassmorphism UI
– Python tools layer for sandboxed file creation, code generation, summarisation, and general chat
This article walks through every layer of the pipeline — how each component works, how they connect, and the design decisions behind the architecture.
System Architecture
The agent follows a strictly linear pipeline: audio in → text out → intent out → tool execution → UI feedback. There are no shared mutable states between stages, which makes the system easy to reason about and straightforward to extend.
Stage 1 — Audio Input
The frontend supports two input modes:
– Mikrofonaufnahme — Streamlits st.button löst einen Python-Aufruf zu sounddevice.rec() aus. Der rohe PCM-Puffer wird bei 16 kHz (Mono) gesammelt, ausgewählt, weil Whisper bei diesem Abtastfrequenz trainiert wurde, und als temporäre .wav-Datei mittels scipy.io.wavfile.write gespeichert.
– Dateiupload — Streamlits st.file_uploader akzeptiert .wav, .mp3, .m4a und andere gängige Audio-Container. Die Bytes werden in eine temporäre Datei geschrieben und von hier an identisch zu einer Mikrofonaufnahme behandelt.
Stage 2 — Speech-to-Text mit Whisper Large V3
Warum Whisper Large V3?
OpenAI’s Whisper ist ein Encoder-Decoder-Transformer, trainiert auf 680.000 Stunden multilingualer, multitask-überwachter Audiodaten. Die Large-V3-Variante (1,55 Milliarden Parameter) erzielt die niedrigste Wortfehlerrate in der Serie und bietet im Vergleich zu V2 verbesserte Rauschrobustheit und Spracherkennung.
Wichtige Verbesserungen von V3 gegenüber V2:
– Reduzierte Halluzinationen bei stillen oder nahezu stillen Abschnitten
– Bessere Handhabung von Code-Switching (Sprachenwechsel mitten im Satz)
– Verbesserte Zeichensetzung, was für nachgelagerte NLP-Aufgaben wichtig ist
– 80-Kanal Log-Mel-Spektrogramm-Eingabe (statt 80 einheitliche Mel-Filterbänke) für feinere Frequenzauflösung
Groq API-Integration
Die lokale Ausführung von Whisper Large V3 erfordert eine GPU mit mindestens 10 GB VRAM. Um die Anforderungen an den lokalen Rechner gering zu halten und dennoch die Genauigkeit von V3 zu wahren, leitet das Projekt STT über die Groq-API — einen hardwarebeschleunigten Inferenzdienst, der Transkripte auf typischen Sprachclips unter einer Sekunde zurückliefert.
Der Human-in-the-Loop Checkpoint
Bevor das Transkript bei Llama 3 landet, rendert Streamlit es in einem editierbaren st.text_area. Dies ist eine bewusste Designentscheidung: Selbst bei einer Genauigkeit von >95% können domänenspezifischer Jargon, Eigennamen und Umgebungsgeräusche ein oder zwei Wörter verfälschen. Dem Benutzer das Korrigieren des Transkripts vor der Ausführung zu überlassen verhindert die Propagation von Halluzinationen — eine Transkriptionsfehler, der in den LLM eingespeist wird, führt zu einer falschen Absicht und einer falschen Aktion.
Stage 3 — Intent-Detektion mit Llama 3 (Lokal)
Warum Llama 3 über Ollama?
Meta’s Llama 3 (8B instruct-tuned Variante) läuft vollständig lokal über Ollama, das Modell-Download, Quantisierung (standardmäßig 4-Bit) und eine lokale REST-API verwaltet, die das Format von OpenAI-Chat-Abschlüssen widerspiegelt.
Drei Vorteile der Wahl eines lokalen LLM für Intent-Erkennung gegenüber einer weiteren Cloud-API:
1. Privatsphäre — das Transkript verlässt die Maschine nach dem Groq-STT-Aufruf nie
2. Latenz — kein Netzwerk-Rundlauf; Inferenz auf moderner CPU 1–3 Sekunden
3. Kosten — keine pro Token Gebühren bei hoher Frequenz und kurzem Kontext der Absichts-Detektion
Stage 4 — Tool-Execution (tools.py)
Sobald Absicht und Payload extrahiert sind, ruft ein einfacher Router (Match / if-elif) in app.py die entsprechende Funktion aus tools.py auf. Alle Ausgaben werden in einem sandboxed output/-Verzeichnis abgelegt, so dass generierte Dateien nicht im Projekt-Stamm landen.
Jedes Tool ist ein schlanker Wrapper, der einen Prompt für Llama 3 formatiert, ollama.chat() aufruft und den Ergebnis-String zurückgibt. Das write_code-Tool speichert zusätzlich den Codeblock auf der Festplatte und gibt den Dateipfad zurück.
Stage 5 — Streamlit UI
Layout
Streamlit wurde gewählt, weil es die Client-Server-Grenze für eine schnelle Prototypentwicklung eliminiert: Der Python-Prozess ist sowohl Anwendungslogik als auch Webserver. Die UI verwendet benutzerdefiniertes CSS, das über st.markdown(…, unsafe_allow_html=True) injiziert wird, um die Glassmorphism-Ästhetik der README zu erreichen.
Dadurch erhalten Benutzer eine Echtzeit-Ansicht darüber, wo sich die Pipeline gerade befindet, was wichtig ist, weil der Llama-3-Inferenzschritt auf CPU 2–5 Sekunden dauern kann.
Data Flow — Step by Step
Hier ist die vollständige Daten-Transformation in jedem Schritt für eine Beispieläußerung: “Write a Python function that reverses a string”
Stage 1 → Stage 2 → Stage 3 → Stage 4 → Stage 5
Eine vollständige Visualisierung der einzelnen Transformationsstufen finden Sie im Originalartikel.
Designentscheidungen und Abwägungen
Cloud STT vs. vollständig lokales STT
Whisper Large V3 lokal auszuführen erfordert ≥10 GB GPU-VRAM und führt zu einer erheblichen Startlatenz. Die Weiterleitung des STT über das Groq-Inferenz-API bietet Transkriptionen in V3-Qualität mit Untersekunden-Latenz, ohne die Hardwareanforderung. Der Nachteil ist eine einzige Cloud-Abhängigkeit pro Sprachnachfrage — für die meisten Anwendungsfälle akzeptabel, aber durch ein lokales Whisper-Modell für vollständig luft-gedämmte Deployments ersetzbar.
4-Bit quantisierte Llama 3 vs. Vollständige Präzision
Ollamas Standard ist eine 4-Bit-Quantisierung (Q4_K_M), wodurch das 8B-Modell von ca. 16 GB auf ca. 4,7 GB reduziert wird. Auf dieser Komprimierungsebene bleibt die Qualität der Intent-Detektion und der kurzen Code-Generierung im Wesentlichen unverändert gegenüber der Vollpräzisions-Inferenz. Für längere Code-Generierung oder komplexe Begründung kann der Benutzer llama3:8b-instruct-fp16 mit ca. dem Dreifachen des Speicherbedarfs verwenden.
Sandboxed Output Directory
Alle generierten Dateien landen in output/ und nie im Projekt-Stammverzeichnis. Dies verhindert unbeabsichtigtes Überschreiben von Quelldateien während Code-Generierungsaufgaben und erleichtert die Bereinigung. Künftig könnte output/ als Docker-Volume gemountet werden.
Stateless Tool Functions
Jede Tool-Funktion in tools.py ist rein im Sinne dessen, dass sie einen String annimmt und einen String zurückgibt (plus eine Nebeneffekt-Schreibaktion auf die Festplatte). Dadurch lassen sich Tools jeweils unit-testen und leicht erweitern — das Hinzufügen eines neuen Intents erfordert lediglich: (a) das Hinzufügen des Intent-Labels zum System-Prompt, (b) das Schreiben einer neuen Funktion in tools.py, und (c) das Hinzufügen eines Falls zum Router.
Conclusion
Dieses Projekt demonstriert, dass ein voll funktionsfähiger, sprachgesteuerter KI-Agent mit Open-Source-Komponenten und minimaler Infrastruktur aufgebaut werden kann. Die Architektur ist absichtlich einfach − eine fünfstufige lineare Pipeline, bei der jede Stufe eine einzige Verantwortung hat und eine klare Eingabe/Ausgabe besitzt. Whisper Large V3 übernimmt den perceptualen harten Part (Spracherkennung), Llama 3 den semantischen harten Part (Verstehen der Absicht) und Streamlit den UX-harten Part (Echtzeit-Feedback), ohne dass ein JavaScript-Bauprozess erforderlich wäre.
Der Humans-in-the-Loop-Checkpoint zwischen STT und LLM ist die wichtigste Zuverlässigkeitsfunktion des Systems: Er erkennt an, dass kein Transkriptionsmodell perfekt ist, und gibt dem Benutzer die Kontrolle, bevor irreversible Aktionen durchgeführt werden.
Der Codebasis ist klein genug, um an einem Nachmittag gelesen zu werden, modular genug, um in einer Stunde erweitert zu werden, und principled genug, um mit Vertrauen deployed zu werden.
HI-FI News
via DEV Community https://dev.to
April 12, 2026 at 03:34PM
April 12, 2026 at 03:34PM
-
Product on sale
Audiophile Vinyl Records Cleaning BundleOriginal price was: €69.90.€59.90Current price is: €59.90. excl. VAT -
Product on sale
Easy Start Vinyl Records Cleaning KitOriginal price was: €69.90.€59.90Current price is: €59.90. excl. VAT -
Vinyl Records Cleaner Easy Groove Concentrate€34.95 excl. VAT -
Easy Groove Super Set€199.00 excl. VAT -
Easy Groove Enzycaster – vinyl records prewash cleaner€34.95 excl. VAT -
Easy Groove Extreme MK. II- vinyl records prewash cleaner€45.00 excl. VAT -
Vinyl Records Cleaner – Easy Groove Virgin Concentrate€35.00 excl. VAT -
Easy Groove Spray&Wipe vinyl records cleaner€34.95 excl. VAT








