# AWS zeigt früheren Sprachstart für Agenten mit Kokoro auf SageMaker AI

- Source: MechNext — https://mechnext.eu/de/article/49-aws-walkthrough-starts-agent-speech-earlier-with-kokoro-on-sagemaker-ai
- Published: 2026-10-23
- Updated: 2026-10-23
- Category: Industry News
- Language: de (Markdown in other languages: ?lang=en, ?lang=sk, ?lang=pl, ?lang=zh, ?lang=ru)

> Die AWS-Anleitung übergibt fertige Sätze schon während der Antwortgenerierung an die Sprachsynthese. Die Autoren berichten von früherem Audio und erläutern Messung, Transport und Bereitstellung.

Eine AWS-Anleitung übergibt abgeschlossene Agentensätze an Kokoro-82M, bevor die gesamte Antwort generiert ist. So kann die Sprachsynthese früher beginnen. Das Modell mit 82 Millionen Parametern läuft in einem eigenen Container auf einem SageMaker-AI-Echtzeitendpunkt mit einer GPU-Instanz vom Typ ml.g5.xlarge. Implementierungsergebnisse und Leistungsangaben stammen von den Autoren der Anleitung.

### Mehrere Sätze über eine Verbindung

POST /invocations streamt die Ausgabe für eine vollständige Eingabe. WS /invocations-bidirectional-stream unterstützt mehrere Nachrichten über dieselbe bidirektionale Verbindung. Nach Audio und dem Steuerframe synthesis_complete wartet der Container auf weitere Eingaben. Erst eine ausdrückliche Schließnachricht des Clients beendet die Sitzung.

Jeder Handler synthetisiert und überträgt Nachrichten nacheinander: Während der Übertragung eines Satzes erzeugt er noch kein Audio für den nächsten. Der berichtete Vorteil entsteht durch den früheren Beginn beim ersten Satz und dadurch, dass nicht für jeden Satz eine neue Verbindung aufgebaut wird.

Der Satzsegmentierer akzeptiert vollständige Zeichenketten oder Textfragmente. feed() gibt neu abgeschlossene Sätze frei und hält den unvollständigen Rest zurück; flush() liefert diesen beim Eingabeende aus. Die Autoren berichten von drei geprüften Satzeingaben in einer laufenden Sitzung, deren Audio jeweils zum eingegebenen Text passte.

SageMaker AI liefert Eingaben als binäre WebSocket-Frames an den Container. Erwartet ein Starlette-Handler Textframes, kann jede Anfrage einen KeyError für das Feld text auslösen, obwohl der Endpunkt InService bleibt. Die Umsetzung verarbeitet beide Frame-Typen, dekodiert Binäreingaben als UTF-8 und empfiehlt Tests mit binären Frames.

### Was die Messungen erfassen

Für die isolierte Messung des TTS-Transports verwendeten die Autoren einen Text mit 267 Zeichen und vier Sätzen. Sie führten je fünf Versuche am laufenden Endpunkt durch: mit dem ganzen Block und nur dem ersten Satz. Laut Bericht sank die mittlere Zeit bis zum ersten Audiobyte von 329,3 auf 156,7 Millisekunden, eine relative Verringerung um 52,4 % in diesem Vergleich.

Das Gesamtbeispiel nutzt einen Strands-Agenten mit Amazon Bedrock, gehostet in AgentCore. Getrennte Verbindungen bedienen SSE zum Browser, die Textgenerierung in Bedrock und die bidirektionale Kokoro-Synthese. Der Modus bidi empfängt Text und Audio gleichzeitig über eine gemeinsame Ereigniswarteschlange; batch wartet vor der Synthese auf die vollständige Antwort.

Mit identischem Prompt, demselben laufenden Bedrock-Modell und Endpunkt berichten die Autoren von 2,4-mal schnellerem ersten Audio im lokalen Container und 3,5-mal schnellerem in AgentCore. Der Reproduktionstest misst das erste Ereignis audio_chunk relativ zu agent_start. Beide Modi kodieren Audio zum Aufrufer in base64, da BedrockAgentCoreApp JSON-serialisierbare Dictionaries liefert, die das SDK in SSE-Frames umwandelt.

### Transport und Bereitstellung

Die Autoren untersuchten Transportkosten anhand von 24 Clips und verglichen MP3 mit AAC. Mit Amazon Transcribe hätten sie keinen Qualitätsunterschied zwischen den Kodierungen festgestellt. Base64 vergrößerte die Nutzlast um etwa 33 %. In einer Antwort kamen vier logische MP3-Frames in sechs Übertragungsstücken an; zwei endeten mitten im Frame. Empfänger müssen deshalb puffern und zusammensetzen.

Eine Alternative auf der Modellverbindung kombiniert rohe binäre Audiodaten und JSON-Steuerframes in derselben bidirektionalen Sitzung, ohne base64 oder SSE auf diesem Abschnitt. Nur vollständig als JSON-Objekt dekodierbare Stücke gelten als Steuerdaten; andere als Audio. Die Prüfung des ganzen Stücks verhindert, dass PCM allein wegen einer öffnenden geschweiften Klammer als JSON gilt. Für bestehende SSE-Frontends empfehlen die Autoren weiter base64 über SSE; für einen neuen Sprachpfad oder bei Priorität auf Latenz kommt der vereinheitlichte Transport infrage.

Voraussetzungen sind Berechtigungen für SageMaker AI, AgentCore, IAM und ECR, vorbereitetes AWS CDK v2, Python ab 3.12, uv, Docker, Boto3-Unterstützung für invoke_endpoint_with_bidirectional_stream, WebSocket- und ASGI-Kenntnisse sowie der Referenzcode. Vorgefertigte Wheels des zugrunde liegenden HTTP/2-Clients gibt es erst ab Python 3.12. Der Container muss com.amazonaws.sagemaker.capabilities.bidirectional-streaming=true deklarieren.

speech-infra deploy erstellt Endpunktinfrastruktur, IAM-Rollen, S3-Modellgewichte-Cache, Container-Image, Modell und Endpunktkonfiguration. Danach erstellt agent-infra deploy die AgentCore-Laufzeit. Der Abbau erfolgt umgekehrt. Die destroy-Befehle behalten S3-Bucket und ECR-Repository; deren Speicherkosten enden erst nach separater Entfernung. Zudem warnt der Beitrag vor einer älteren festgelegten PyTorch-Version mit PYSEC-2026-2286. Als behoben nennt er torch 2.10.0 und verlangt die Prüfung und Aktualisierung der Versionsbindung vor einer Nutzung über einen Machbarkeitsnachweis hinaus.
