Die Hotline von Nordlicht Reisen nimmt Anrufe als Tonaufnahmen auf; die Datei anruf-hotline.wav steht für einen davon. Diese Lektion zeigt zwei Wege, Sprache in eine Anwendung zu bringen: ein Modell, das Gesprochenes versteht und selbst spricht, und den Dienst Azure Speech in Foundry Tools (kurz: Azure Speech) für Spracherkennung und Sprachausgabe. Alles hier ist nicht gegen Azure ausgeführt; so zeigt es Microsoft Learn. Antworten und Ausgaben sind nicht abgedruckt.
Weg 1: ein Audio-Modell
Learn beschreibt Modelle, die Audio in die bekannte Chat-Schnittstelle (/chat/completions) bringen. Zum Beispiel gpt-audio und gpt-audio-mini: Sie nehmen Text, Audio oder beides an und antworten mit Text, Audio oder beidem. Für „gesprochene Aufträge an ein Modell“ ist das der Weg der Prüfung. Eine zweite Familie, gpt-realtime, ist laut Learn für Gespräche mit geringer Verzögerung gedacht.
Learn nennt Grenzen: Audiodateien bis höchstens 20 MB, Ausgabeformate wie wav und mp3, eine feste Liste von Stimmen. Der Name der API-Version enthält das Wort preview; ob das Audio-Modell selbst eine Vorschau ist, steht auf der Seite nicht eindeutig: offen. Ebenso offen: ob es in Ihrer Region verfügbar ist.
Die Schritte im Portal, wie Learn sie für gpt-audio-mini zeigt:
- Im Foundry-Portal das Projekt öffnen (bei Nordlicht
nordlicht-ki). - Models + endpoints öffnen, Deploy model und Deploy base model wählen, das Modell suchen und bereitstellen. Das ist Lektion 2.1 mit einem anderen Modell.
- Unter Playgrounds den Chat playground öffnen (nicht den Audio playground: Learn sagt, er unterstütze dieses Modell nicht) und das Deployment wählen.
- Dort können Sie Audio aufnehmen, eine Audiodatei anhängen oder Text eingeben, und Sie hören die Antwort.
Für den Code hat Learn zu diesem Thema Reiter für JavaScript, Python, TypeScript und REST, keinen für C#. Das Prinzip der Anfrage ist in allen gleich: Die Audiodatei wird gelesen, als Base64-Text verpackt und als Inhaltsteil vom Typ input_audio mit dem Format (etwa wav) neben einem Textteil gesendet, dazu die gewünschten Ausgabearten (modalities) und Stimme und Format der Antwort. Das Anfrage-Beispiel in Learns REST-Reiter ist Python-Code; für die Prüfung lesen Sie ihn dort (Hinweis in Lektion 2.3). Hier steht kein ungeprüfter C#-Code.
Weg 2: Azure Speech
Azure Speech ist ein eigener Dienst dafür, Sprache in Text (speech to text) und Text in Sprache (text to speech) zu wandeln. Learn zeigt beides für C# mit dem NuGet-Paket Microsoft.CognitiveServices.Speech. Sie brauchen eine AI-Services-Ressource für Speech, Schlüssel und Adresse. Learn empfiehlt für den Betrieb Entra ID mit verwalteten Identitäten statt Schlüssel im Code.
Spracherkennung
Auszug aus Learns Schnellstart (die Zeilen davor lesen Schlüssel und Adresse aus Umgebungsvariablen):
var speechConfig = SpeechConfig.FromEndpoint(new Uri(endpoint), speechKey);
speechConfig.SpeechRecognitionLanguage = "en-US";
using var audioConfig = AudioConfig.FromDefaultMicrophoneInput();
using var speechRecognizer = new SpeechRecognizer(speechConfig, audioConfig);
var speechRecognitionResult = await speechRecognizer.RecognizeOnceAsync();
SpeechConfigträgt Adresse, Schlüssel und die Sprache der Aufnahme. Ohne Angabe ist laut Learnen-USder Standard. Für Deutsch tragen Sie den Code der deutschen Sprache ein. Welche Codes gültig sind, steht auf Learns Seite „Language support“, die wir nicht gelesen haben: offen.AudioConfigsagt, woher das Audio kommt. Für eine Datei nennt Learn statt des MikrofonsAudioConfig.FromWavFileInput("YourAudioFile.wav"); bei Nordlicht steht dortanruf-hotline.wav.RecognizeOnceAsyncerkennt laut Learn Äußerungen bis zu 30 Sekunden oder bis zur ersten Stille. Für längere Aufnahmen verweist Learn auf die fortlaufende Erkennung. Für Aufnahmedateien nennt Learn als Alternativen die Schnelltranskription (fast transcription, unterstützt unter anderem Spracherkennung und Sprechertrennung) und die Stapeltranskription (batch transcription).
Sprachausgabe
speechConfig.SpeechSynthesisVoiceName = "en-US-Ava:DragonHDLatestNeural";
using var audioConfig = AudioConfig.FromWavFileOutput("output.wav");
using var speechSynthesizer = new SpeechSynthesizer(speechConfig, audioConfig);
await speechSynthesizer.SpeakTextAsync("Hello, world!");
Learn erklärt das Namensformat der Stimmen: {locale}-{VoiceName}:{VoiceType}, im Beispiel en-US, Ava und DragonHDLatestNeural. Alle Neural-Stimmen sind laut Learn mehrsprachig; spricht eine Stimme die Sprache des Textes nicht, gibt der Dienst kein Audio aus. FromWavFileOutput speichert in eine Datei statt auf den Lautsprecher.
Der Fall: ein Anruf
Wofür passt was bei Nordlicht? Der Helfer schreibt einen Anruf der Hotline mit und legt den Text in die Akte; ein Mensch aus dem Kundendienst liest ihn. Das ist Spracherkennung, also Azure Speech. Der Text kann danach in die Textanalyse von Lektion 2.6. Eine Zusammenfassung und Stimmung direkt aus dem Anruf holt Lektion 2.9 mit Content Understanding. Die Sprachausgabe setzt der Pilot nicht für Antworten an Kunden ein; ob und wann, entscheidet ein Mensch. Kein Modell entscheidet über Erstattungen.
Aufzeichnungen: eine ehrliche Anmerkung
Anrufe sind Aufnahmen von Menschen. Learn schreibt zu Spracherkennung: Audio, in dem eine Person spricht, ist personenbezogene Information; Sie müssen die Gesetze zu Datenschutz, Kommunikation und Abhören Ihrer Rechtsordnung einhalten, nur Audio im Rahmen der berechtigten Erwartungen der Nutzer verarbeiten und alle nötigen Einwilligungen haben. Learn rät zu einer rechtlichen Prüfung und sagt selbst, es gebe keine Rechtsberatung. Ob Nordlicht Anrufe aufzeichnen und auswerten darf, welche Ansage am Anfang des Anrufs nötig ist und wie lange die Dateien bleiben, klärt die Rechtsberatung von Nordlicht. Diese Lektion entscheidet das nicht.
Ausprobieren (freiwillig)
Ein Projekt, ein Modell-Deployment und ein Speech-Aufruf kosten je Nutzung. Probieren Sie nur mit selbst gesprochenen Beispielen, nie mit echten Anrufen. Löschen Sie danach die Ressourcengruppe, damit nichts weiterläuft.
Übung 1
Ordnen Sie jeder Aufgabe einen Weg zu: Audio-Modell, Azure Speech (Spracherkennung), Azure Speech (Sprachausgabe) oder ein Weg aus einer anderen Lektion.
- Eine Beraterin stellt dem Helfer mündlich eine Frage zur Buchungsbestätigung und hört die Antwort.
anruf-hotline.wavsoll als Text in der Kundenakte stehen.- Die Buchungsbestätigung soll im Portal als Audiodatei zum Anhören bereitstehen.
- Zu einem Anruf sollen Zusammenfassung und Stimmung automatisch entstehen.
Lösung 1
- Audio-Modell: gesprochener Auftrag, gesprochene Antwort. Für Gespräche mit geringer Verzögerung nennt Learn
gpt-realtime. - Azure Speech, Spracherkennung:
AudioConfig.FromWavFileInputmit der Datei, und der Mensch liest das Ergebnis. - Azure Speech, Sprachausgabe:
FromWavFileOutputspeichert den gesprochenen Text als Datei. - Lektion 2.9: Content Understanding hat einen Analyzer für Audio. Alternativ: erst transkribieren (Azure Speech), dann Textanalyse (Lektion 2.6). Beides ist vertretbar; ein Test mit echten Aufnahmen entscheidet.