Installieren und Ausführen von Docker-Containern für die APIs des Speech-Diensts

Mithilfe von Containern können Sie einige der Speech-Dienst-APIs von Azure Cognitive Services in Ihrer eigenen Umgebung ausführen. Container eignen sich hervorragend für bestimmte Sicherheits- und Datengovernanceanforderungen. In diesem Artikel erfahren Sie, wie Sie einen Speech-Container herunterladen, installieren und ausführen.

Mit Speech-Containern können Sie eine Speech-basierte Anwendungsarchitektur erstellen, die sowohl für stabile Cloudfunktionen als auch für den Edge-Bereich optimiert ist. Es sind mehrere Container verfügbar, die dieselbe Preisstruktur wie die cloudbasierten Azure Speech-Dienste verwenden.

Wichtig

Wir haben die Standardstimmen für die Sprachsynthese und den Sprachsynthesecontainer am 31. August 2021 eingestellt. Erwägen Sie, Ihre Anwendungen zu migrieren, um stattdessen den Container für neuronale Sprachsynthese zu verwenden. Weitere Informationen zum Aktualisieren Ihrer Anwendung finden Sie unter Migrieren von der Standardstimme zur vordefinierten neuronalen Stimme.

Container Features Neueste Version Releasestatus
Spracherkennung Analysiert die Stimmung und transkribiert kontinuierliche Echtzeitsprach- oder Batchaudioaufzeichnungen mit Zwischenergebnissen. 3.8.0 Allgemein verfügbar
Benutzerdefinierte Spracherkennung Verwendet ein benutzerdefiniertes Modell aus dem Custom Speech-Portal und transkribiert kontinuierliche Echtzeitsprach- oder Batchaudioaufzeichnungen in Text mit Zwischenergebnissen. 3.8.0 Allgemein verfügbar
Speech-Sprachenerkennung Erkennt die in Audiodateien gesprochene Sprache. 1.5.0 Vorschau
Neuronale Sprachsynthese Konvertiert Text mithilfe von Deep Neural Network-Technologie in natürlich klingende Sprache, die eine natürlichere synthetische Sprache ermöglicht. 2.7.0 Allgemein verfügbar

Voraussetzungen

Wichtig

  • Wenn Sie die Speech-Container verwenden möchten, müssen Sie eine Onlineanfrage einreichen und diese genehmigen lassen. Weitere Informationen finden Sie unter „Anfordern der Genehmigung für die Containerausführung“.
  • Allgemein verfügbare Container erfüllen die Stabilitäts- und Supportanforderungen von Microsoft. Container in der Vorschauphase befinden sich noch in der Entwicklung.

Für die Verwendung von Speech-Dienstcontainern müssen folgende Voraussetzungen erfüllt sein. Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen. Erforderlich:

  • Docker ist auf einem Hostcomputer installiert. Docker muss so konfiguriert werden, dass die Container eine Verbindung mit Azure herstellen und Abrechnungsdaten an Azure senden können.
    • Unter Windows muss Docker auch für die Unterstützung von Linux-Containern konfiguriert werden.
    • Sie sollten über grundlegende Kenntnisse der Docker-Konzepte verfügen.
  • Eine Speech-Dienstressource im Tarif „Free“ (F0) oder „Standard“ (S)

Erfassen erforderlicher Parameter

Es werden drei primäre Parameter für alle Cognitive Services-Container benötigt. Die Microsoft-Software-Lizenzbedingungen müssen mit dem Wert accept vorhanden sein. Außerdem werden ein Endpunkt-URI und ein API-Schlüssel benötigt.

Endpunkt-URI

Der {ENDPOINT_URI}-Wert ist im Azure-Portal auf der Seite {ENDPOINT_URI} der entsprechenden Cognitive Services-Ressource verfügbar. Wechseln Sie zur Seite Übersicht, zeigen Sie auf den Endpunkt, und das Symbol In Zwischenablage kopieren wird angezeigt. Kopieren Sie den Endpunkt, und verwenden Sie ihn bei Bedarf.

Screenshot, der die Erfassung des Endpunkt-URIs für den späteren Gebrauch zeigt.

Tasten

Der {API_KEY}-Wert wird zum Starten des Containers verwendet und ist im Azure-Portal auf der Seite {API_KEY} der entsprechenden Cognitive Services-Ressource verfügbar. Wechseln Sie zur Seite Schlüssel, und wählen Sie das Symbol In Zwischenablage kopieren aus.

Screenshot, der das Abrufen eines der zwei Schlüssel für den späteren Gebrauch zeigt.

Wichtig

Diese Abonnementschlüssel werden für den Zugriff auf Ihre Cognitive Services-API verwendet. Geben Sie Ihre Schlüssel nicht weiter. Speichern Sie diese sicher. Verwenden Sie beispielsweise Azure Key Vault. Außerdem wird empfohlen, diese Schlüssel regelmäßig neu zu generieren. Für einen API-Aufruf ist nur ein Schlüssel erforderlich. Beim Neugenerieren des ersten Schlüssels können Sie den zweiten Schlüssel für den kontinuierlichen Zugriff auf den Dienst verwenden.

Anforderungen und Empfehlungen für den Hostcomputer

Der Host ist ein x64-basierter Computer, auf dem der Docker-Container ausgeführt wird. Dies kann ein lokaler Computer oder ein Docker-Hostingdienst in Azure sein, z. B.:

Containeranforderungen und -empfehlungen

Die folgende Tabelle beschreibt die minimale und empfohlene Zuordnung von Ressourcen für jeden Speech-Container:

Container Minimum Empfohlen
Spracherkennung 4 Kerne, 4 GB Arbeitsspeicher 8 Kerne, 6 GB Arbeitsspeicher
Benutzerdefinierte Spracherkennung 4 Kerne, 4 GB Arbeitsspeicher 8 Kerne, 6 GB Arbeitsspeicher
Speech-Sprachenerkennung 1 Kern, 1 GB Arbeitsspeicher 1 Kern, 1 GB Arbeitsspeicher
Neuronale Sprachsynthese 6 Kerne, 12 GB Arbeitsspeicher 8 Kerne, 16 GB Arbeitsspeicher

Jeder Kern muss eine Geschwindigkeit von mindestens 2,6 GHz aufweisen.

Kern und Arbeitsspeicher entsprechen den Einstellungen --cpus und --memory, die im Rahmen des Befehls docker run verwendet werden.

Hinweis

Die Mindest- und empfohlenen Zuordnungen basieren auf Docker-Grenzwerten, nicht auf den Ressourcen des Hostcomputers. Beispielsweise ordnen Spracherkennungscontainer Teile eines großen Sprachmodells im Arbeitsspeicher zu. Es wird empfohlen, dass die gesamte Datei in den Arbeitsspeicher passen sollte, wobei es sich um zusätzliche 4 bis 6 GB handelt. Außerdem dauert die erste Ausführung jedes Containers unter Umständen länger, da Modelle in den Arbeitsspeicher ausgelagert werden.

Unterstützung von Advanced Vector Extensions

Der Host ist der Computer, auf dem der Docker-Container ausgeführt wird. Der Host muss Unterstützung für Advanced Vector Extensions (AVX2) bieten. Sie können die AVX2-Unterstützung auf Linux-Hosts mit dem folgenden Befehl überprüfen:

grep -q avx2 /proc/cpuinfo && echo AVX2 supported || echo No AVX2 support detected

Warnung

Der Hostcomputer muss AVX2 unterstützen. Ohne AVX2-Unterstützung funktioniert der Container nicht ordnungsgemäß.

Anfordern der Genehmigung für die Containerausführung

Füllen Sie das Anforderungsformular aus, und übermitteln Sie es, um Zugriff auf den Container anzufordern.

Im Formular müssen Sie Informationen über Sie selbst, Ihr Unternehmen und das Benutzerszenario eintragen, für das Sie den Container verwenden möchten. Das Azure Cognitive Services-Team überprüft das Formular nach der Übermittlung und sendet Ihnen eine E-Mail mit der Entscheidung innerhalb von 10 Geschäftstagen.

Wichtig

  • Im Formular müssen Sie eine E-Mail-Adresse angeben, die einer Azure-Abonnement-ID zugeordnet ist.
  • Die Azure-Ressource, die Sie zum Ausführen des Containers verwenden, muss mit der genehmigten Azure-Abonnement-ID erstellt worden sein.
  • Überprüfen Sie Ihre E-Mail-Adresse (Posteingang und Junk-Ordner) auf Updates zum Status Ihrer Anwendung von Microsoft.

Nach der Genehmigung können Sie den Container ausführen, nachdem Sie ihn aus Microsoft Container Registry (MCR) heruntergeladen haben (weiter unten in diesem Artikel beschrieben).

Sie können den Container nicht ausführen, wenn Ihr Azure-Abonnement nicht genehmigt wurde.

Abrufen des Containerimages mit dem Befehl „docker pull“

Containerimages für Speech stehen in der folgenden Container Registry zur Verfügung.

Container Repository
Spracherkennung mcr.microsoft.com/azure-cognitive-services/speechservices/speech-to-text:latest

Tipp

Mithilfe des Befehls docker images können Sie Ihre heruntergeladenen Containerimages auflisten. Mit dem folgenden Befehl werden beispielsweise die ID, das Repository und das Tag jedes heruntergeladenen Containerimages in Form einer Tabelle aufgelistet:

docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"

IMAGE ID         REPOSITORY                TAG
<image-id>       <repository-path/name>    <tag-name>

Docker-Pullvorgang für die Speech-Container

Docker-Pullvorgang für den Spracherkennungscontainer

Verwenden Sie den Befehl docker pull, um ein Containerimage aus Microsoft Container Registry herunterzuladen:

docker pull mcr.microsoft.com/azure-cognitive-services/speechservices/speech-to-text:latest

Wichtig

Das Tag latest pullt das Gebietsschema en-US. Weitere Gebietsschemas finden Sie unter Gebietsschemas für die Spracherkennung.

Gebietsschemas für die Spracherkennung

Alle Tags, mit Ausnahme von latest, haben das folgende Format und beachten die Groß-/Kleinschreibung:

<major>.<minor>.<patch>-<platform>-<locale>-<prerelease>

Das folgende Tag ist ein Beispiel für das Format:

2.6.0-amd64-en-us

Informationen zu allen unterstützten Gebietsschemas des Spracherkennungscontainers finden Sie unter Imagetags für Spracherkennung.

Verwenden des Containers

Wenn sich der Container auf dem Hostcomputer befindet, können Sie über den folgenden Prozess mit dem Container arbeiten.

  1. Führen Sie den Container aus, und verwenden Sie dabei die erforderlichen Abrechnungseinstellungen. Es sind noch weitere Beispiele für den Befehl docker run verfügbar.
  2. Fragen Sie den Vorhersageendpunkt des Containers ab.

Ausführen des Containers mit „docker run“

Verwenden Sie den Befehl docker run, um den Container auszuführen. Weitere Informationen zum Abrufen der Werte {Endpoint_URI} und {API_Key} finden Sie unter {Endpoint_URI}. Es sind auch noch weitere Beispiele für den Befehl verfügbar.

Ausführen des Containers in nicht verbundenen Umgebungen

Für die Nutzung von Containern, die nicht mit dem Internet verbunden sind, müssen Sie einen Zugang anfordern. Weitere Informationen finden Sie unter Anfordern des Zugriffs zur Verwendung von Containern in nicht verbundenen Umgebungen.

Hinweis

Allgemeine Containeranforderungen finden Sie unter Containeranforderungen und Empfehlungen.

Zum Ausführen des Containers für die standardmäßige Spracherkennung führen Sie den folgenden docker run-Befehl aus:

docker run --rm -it -p 5000:5000 --memory 4g --cpus 4 \
mcr.microsoft.com/azure-cognitive-services/speechservices/speech-to-text \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Dieser Befehl:

  • Führt einen Spracherkennungscontainer aus dem Containerimage aus.
  • Ordnet 4 CPU-Kerne und 4 GB Arbeitsspeicher zu.
  • Macht den TCP-Port 5000 verfügbar und ordnet eine Pseudo-TTY-Verbindung für den Container zu.
  • Entfernt den Container automatisch, nachdem er beendet wurde. Das Containerimage ist auf dem Hostcomputer weiterhin verfügbar.

Hinweis

Container unterstützen komprimierte Audioeingaben an das Speech SDK mithilfe von GStreamer. Befolgen Sie zum Installieren von GStreamer in einem Container die Linux-Anweisungen für GStreamer im Artikel Verwenden von per Codec komprimierter Audioeingabe mit dem Speech SDK.

Diarisierung für die Spracherkennungsausgabe

Die Diarisierung ist standardmäßig aktiviert. Verwenden Sie diarize_speech_config.set_service_property, um eine Diarisierung in Ihrer Antwort zu erhalten.

  1. Legen Sie das Ausgabeformat des Ausdrucks auf Detailed fest.

  2. Legen Sie den Modus der Diarisierung fest. Unterstützte Modi: Identity und Anonymous.

    diarize_speech_config.set_service_property(
        name='speechcontext-PhraseOutput.Format',
        value='Detailed',
        channel=speechsdk.ServicePropertyChannel.UriQueryParameter
    )
    
    diarize_speech_config.set_service_property(
        name='speechcontext-phraseDetection.speakerDiarization.mode',
        value='Identity',
        channel=speechsdk.ServicePropertyChannel.UriQueryParameter
    )
    

    Hinweis

    Der Modus „Identität“ gibt "SpeakerId": "Customer" oder "SpeakerId": "Agent" zurück. Der Modus „Anonym“ gibt "SpeakerId": "Speaker 1" oder "SpeakerId": "Speaker 2" zurück.

Analysieren der Stimmung bei der Spracherkennungsausgabe

Ab Version v2.6.0 des Spracherkennungs-Containers sollten Sie den Sprachdienst 3.0-API-Endpunkt anstelle des Vorschauendpunkts verwenden. Beispiel:

  • https://eastus.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment
  • https://localhost:5000/text/analytics/v3.0/sentiment

Hinweis

Die Sprachdienst v3.0-API ist nicht abwärtskompatibel mit v3.0-preview.1. Um die Unterstützung für die neueste Standpunktanalysefunktion zu erhalten, verwenden Sie v2.6.0 des Spracherkennungs-Containerimages und Sprachdienst v3.0.

Ab v2.2.0 des Spracherkennungscontainers können Sie die API für die Standpunktanalyse v3 in der Ausgabe aufrufen. Um die Standpunktanalyse aufrufen zu können, benötigen Sie einen Sprachdienst-API-Ressourcenendpunkt. Beispiel:

  • https://eastus.api.cognitive.microsoft.com/text/analytics/v3.0-preview.1/sentiment
  • https://localhost:5000/text/analytics/v3.0-preview.1/sentiment

Wenn Sie auf einen Sprachdienstendpunkt in der Cloud zugreifen, benötigen Sie einen Schlüssel. Wenn Sie die Sprachdienstfeatures lokal ausführen, ist dies möglicherweise nicht notwendig.

Der Schlüssel und der Endpunkt werden wie im folgenden Beispiel als Argumente an den Speech-Container übergeben:

docker run -it --rm -p 5000:5000 \
mcr.microsoft.com/azure-cognitive-services/speechservices/speech-to-text:latest \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY} \
CloudAI:SentimentAnalysisSettings:TextAnalyticsHost={TEXT_ANALYTICS_HOST} \
CloudAI:SentimentAnalysisSettings:SentimentAnalysisApiKey={SENTIMENT_APIKEY}

Dieser Befehl:

  • Führt dieselben Schritte aus wie der voranstehende Befehl.
  • Speichert einen Sprachdienst-API-Endpunkt und einen Schlüssel zum Senden von Standpunktanalyseanforderungen.

Phraselist v2 für die Spracherkennungsausgabe

Seit v2.6.0 des Spracherkennungscontainers können Sie die Ausgabe mit eigenen Ausdrücken abrufen – entweder den gesamten Satz oder Ausdrücke in der Satzmitte. Beispielsweise der große Mann im folgenden Satz:

  • „Dies ist ein Satz der große Mann dies ist ein weiterer Satz“.

Zum Konfigurieren einer Ausdruckliste müssen Sie Ihre eigenen Ausdrücke beim Vornehmen des Aufrufs hinzufügen. Zum Beispiel:

    phrase="the tall man"
    recognizer = speechsdk.SpeechRecognizer(
        speech_config=dict_speech_config,
        audio_config=audio_config)
    phrase_list_grammer = speechsdk.PhraseListGrammar.from_recognizer(recognizer)
    phrase_list_grammer.addPhrase(phrase)
    
    dict_speech_config.set_service_property(
        name='setflight',
        value='xonlineinterp',
        channel=speechsdk.ServicePropertyChannel.UriQueryParameter
    )

Wenn Sie mehrere Ausdrücke hinzufügen möchten, rufen Sie .addPhrase() für jeden Ausdruck auf, um ihn der Ausdrucksliste hinzuzufügen.

Wichtig

Die Optionen Eula, Billing und ApiKey müssen angegeben werden, um den Container ausführen zu können. Andernfalls wird der Container nicht gestartet. Weitere Informationen finden Sie unter Abrechnung.

Abfragen des Vorhersageendpunkts des Containers

Hinweis

Verwenden Sie eine eindeutige Portnummer, wenn Sie mehrere Container verwenden.

Container SDK-Host-URL Protocol
Standardmäßige und benutzerdefinierte Spracherkennung ws://localhost:5000 WS
Neuronale Sprachsynthese, Spracherkennung http://localhost:5000 HTTP

Weitere Informationen zur Verwendung der Protokolle WSS und HTTPS finden Sie unter Containersicherheit.

Spracherkennung (standardmäßig und benutzerdefiniert)

Der Container bietet websocketbasierte Abfrageendpunkt-APIs, auf die über das Speech SDK zugegriffen wird. Standardmäßig verwendet das Speech SDK Online-Speech-Dienste. Um den Container verwenden zu können, müssen Sie die Initialisierungsmethode ändern.

Tipp

Wenn Sie das Sprach-SDK mit Containern verwenden, müssen Sie nicht die Azure Speech-Ressource Abonnementschlüssel oder Authentifizierungsbearertoken bereitstellen.

Weitere Informationen finden Sie in den folgenden Beispielen.

Ändern Sie den folgenden Azure-Cloudinitialisierungsaufruf

var config = SpeechConfig.FromSubscription("YourSubscriptionKey", "YourServiceRegion");

in den folgenden Aufruf mit dem Containerhost:

var config = SpeechConfig.FromHost(
    new Uri("ws://localhost:5000"));

Analysieren von Stimmungen

Wenn Sie Ihre Anmeldeinformationen für die Sprachdienst-API in den Container eingegeben haben, können Sie das Speech SDK verwenden, um Spracherkennungsanforderungen mit Standpunktanalyse zu senden. Sie können die API-Antworten so konfigurieren, dass sie entweder ein einfaches oder detailliertes Format verwenden.

Hinweis

Bei v1.13 des Speech Service Python SDK ist ein Problem mit der Standpunktanalyse bekannt. Verwenden Sie v1.12.x oder früher, wenn Sie eine Standpunktanalyse im Speech Service Python SDK verwenden.

Fügen Sie "Sentiment" als Wert für Simple.Extensions hinzu, um den Speech-Client für die Verwendung eines einfachen Formats zu konfigurieren. Wenn Sie eine bestimmte Modellversion für den Sprachdienst auswählen möchten, ersetzen Sie 'latest' in der speechcontext-phraseDetection.sentimentAnalysis.modelversion-Eigenschaftskonfiguration.

speech_config.set_service_property(
    name='speechcontext-PhraseOutput.Simple.Extensions',
    value='["Sentiment"]',
    channel=speechsdk.ServicePropertyChannel.UriQueryParameter
)
speech_config.set_service_property(
    name='speechcontext-phraseDetection.sentimentAnalysis.modelversion',
    value='latest',
    channel=speechsdk.ServicePropertyChannel.UriQueryParameter
)

Simple.Extensions gibt das Stimmungsergebnis auf der Stammebene der Antwort zurück.

{
   "DisplayText":"What's the weather like?",
   "Duration":13000000,
   "Id":"6098574b79434bd4849fee7e0a50f22e",
   "Offset":4700000,
   "RecognitionStatus":"Success",
   "Sentiment":{
      "Negative":0.03,
      "Neutral":0.79,
      "Positive":0.18
   }
}

Wenn Sie die Standpunktanalyse vollständig deaktivieren möchten, fügen Sie sentimentanalysis.enabled den Wert false hinzu.

speech_config.set_service_property(
    name='speechcontext-phraseDetection.sentimentanalysis.enabled',
    value='false',
    channel=speechsdk.ServicePropertyChannel.UriQueryParameter
)

Neuronale Sprachsynthese

Der Container stellt REST-basierte Endpunkt-APIs bereit. Es gibt viele Beispielquellcodeprojekte für Plattform-, Framework- und Sprachvarianten.

Bei den Containern für die neuronale Sprachsynthese sollten Sie sich auf das Gebietsschema und die Sprache des heruntergeladenen Imagetags stützen. Wenn Sie z. B. das latest-Tag heruntergeladen haben, ist das Standardgebietsschema en-US und AriaNeural die Stimme. Das {VOICE_NAME}-Argument wäre dann en-US-AriaNeural. Sehen Sie sich folgendes SSML-Beispiel an:

<speak version="1.0" xml:lang="en-US">
    <voice name="en-US-AriaNeural">
        This text will get converted into synthesized speech.
    </voice>
</speak>

Ausführen mehrerer Container auf dem gleichen Host

Wenn Sie beabsichtigen, mehrere Container mit offengelegten Ports auszuführen, stellen Sie sicher, dass jeder Container mit einem anderen offengelegten Port ausgeführt wird. Führen Sie beispielsweise den ersten Container an Port 5000 und den zweiten Container an Port 5001 aus.

Sie können diesen Container und einen anderen Cognitive Services-Container zusammen auf dem Host ausführen. Sie können auch mehrere Container desselben Cognitive Services-Containers ausführen.

Überprüfen auf aktive Container

Es gibt mehrere Möglichkeiten zu überprüfen, ob ein Container aktiv ist. Suchen Sie die externe IP-Adresse und den verfügbar gemachten Port des betreffenden Containers, und öffnen Sie Ihren bevorzugten Webbrowser. Verwenden Sie die folgenden verschiedenen URLs für Anforderungen, um zu überprüfen, ob der Container ausgeführt wird. Die hier aufgeführten Beispiel-URLs für Anforderungen sind http://localhost:5000, aber Ihr spezifischer Container kann variieren. Stellen Sie sicher, dass Sie sich auf die externe IP-Adresse Ihres Containers und den verfügbar gemachten Port beziehen.

Anforderungs-URL Zweck
http://localhost:5000/ Der Container stellt eine Homepage bereit.
http://localhost:5000/ready Diese mit GET angeforderte URL ermöglicht es, zu überprüfen, ob der Container eine Abfrage des Modells akzeptiert. Diese Anforderung kann für Live- und Bereitschaftstests von Kubernetes verwendet werden.
http://localhost:5000/status Diese URL wird auch mit GET angefordert und überprüft, ob der zum Starten des Containers verwendete API-Schlüssel gültig ist, ohne dass eine Endpunktabfrage veranlasst wird. Diese Anforderung kann für Live- und Bereitschaftstests von Kubernetes verwendet werden.
http://localhost:5000/swagger Der Container stellt eine umfassende Dokumentation für die Endpunkte sowie die Funktion Jetzt ausprobieren bereit. Diese Funktion ermöglicht Ihnen die Eingabe Ihrer Einstellungen in einem webbasierten HTML-Formular, sodass Sie die Abfrage ausführen können, ohne Code schreiben zu müssen. Nach der Rückgabe der Abfrage wird ein cURL-Beispielbefehl bereitgestellt, der das erforderliche Format für HTTP-Header und -Text veranschaulicht.

Homepage des Containers

Beenden des Containers

Zum Herunterfahren des Containers drücken Sie in der Befehlszeilenumgebung, in der der Container ausgeführt wird, STRG+C.

Problembehandlung

Wenn Sie den Container starten oder ausführen, kann es zu Problemen kommen. Verwenden Sie eine Bereitstellung für die Ausgabe, und aktivieren Sie die Protokollierung. Auf diese Weise kann der Container Protokolldateien generieren, die bei der Behandlung von Problemen helfen.

Tipp

Weitere Informationen zur Problembehandlung und Anleitungen finden Sie unter Häufig gestellte Fragen (FAQ) zu Cognitive Services-Containern.

Wenn Sie Probleme beim Ausführen eines Cognitive Services-Containers haben, können Sie versuchen, den Microsoft-Diagnosecontainer zu verwenden. Verwenden Sie diesen Container zum Diagnostizieren häufiger Fehler in Ihrer Bereitstellungsumgebung, die ggf. verhindern, dass Cognitive Services-Container wie erwartet funktionieren.

Zum Abrufen des Containers verwenden Sie den folgenden Befehl: docker pull

docker pull mcr.microsoft.com/azure-cognitive-services/diagnostic

Führen Sie dann den Container aus. Ersetzen Sie {ENDPOINT_URI} durch Ihren Endpunkt, und ersetzen Sie {API_KEY} durch den Schlüssel für Ihre Ressource:

docker run --rm mcr.microsoft.com/azure-cognitive-services/diagnostic \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Der Container überprüft die Netzwerkkonnektivität mit dem Abrechnungsendpunkt.

Abrechnung

Der Speech-Container sendet Abrechnungsinformationen an Azure und verwendet dafür eine Speech-Ressource in Ihrem Azure-Konto.

Abfragen des Containers werden gemäß des Tarifs der Azure-Ressource in Rechnung gestellt, die für den Parameter ApiKey verwendet wird.

Für die Ausführung von Azure Cognitive Services-Containern besteht keine Lizenz, wenn sie nicht mit dem Messungs- oder Abrechnungsendpunkt verbunden sind. Sie müssen sicherstellen, dass die Container jederzeit Abrechnungsinformationen an den Abrechnungsendpunkt übermitteln können. Cognitive Services-Container senden keine Kundendaten (z. B. das analysierte Bild oder den analysierten Text) an Microsoft.

Herstellen einer Verbindung mit Azure

Der Container benötigt die Abrechnungsargumentwerte, um ausgeführt werden zu können. Diese Werte ermöglichen es dem Container, eine Verbindung mit dem Abrechnungsendpunkt herzustellen. Der Container meldet die Nutzung etwa alle 10 bis 15 Minuten. Wenn der Container nicht innerhalb des zulässigen Zeitfensters eine Verbindung mit Azure herstellt, wird der Container weiterhin ausgeführt, verarbeitet aber keine Anfragen, bis der Abrechnungsendpunkt wiederhergestellt wurde. Es erfolgen 10 Verbindungsversuche im gleichen Zeitintervall von 10 bis 15 Minuten. Wenn die Verbindung mit dem Abrechnungsendpunkt nicht innerhalb der 10 Versuche hergestellt werden kann, wird die Bereitstellung von Anforderungen durch den Container beendet. Ein Beispiel für die Informationen, die für die Abrechnung an Microsoft gesendet werden, finden Sie in den Häufig gestellten Fragen zu Cognitive Services-Containern.

Abrechnungsargumente

Der Befehl docker run startet den Container, wenn alle drei der folgenden Optionen über gültige Werte verfügen:

Option BESCHREIBUNG
ApiKey Der API-Schlüssel der Cognitive Services-Ressource, der zum Nachverfolgen von Abrechnungsinformationen verwendet wird.
Der Wert dieser Option muss für die bereitgestellte Ressource, die in Billing angegeben wurde, auf einen API-Schlüssel festgelegt werden.
Billing Der Endpunkt der Cognitive Services-Ressource, der zum Nachverfolgen von Abrechnungsinformationen verwendet wird.
Der Wert dieser Option muss auf den Endpunkt-URI einer bereitgestellten Azure-Ressource festgelegt werden.
Eula Gibt an, dass Sie die Lizenz für den Container akzeptiert haben.
Der Wert dieser Option muss auf accept festgelegt werden.

Weitere Informationen zu diesen Optionen finden Sie unter Konfigurieren von Containern.

Zusammenfassung

In diesem Artikel haben Sie die Konzepte und den Workflow zum Herunterladen, Installieren und Ausführen von Speech-Containern kennengelernt. Zusammenfassung:

  • Speech stellt vier Linux-Container für Docker bereit, die verschiedene Funktionen besitzen:
    • Spracherkennung
    • Benutzerdefinierte Spracherkennung
    • Neuronale Sprachsynthese
    • Speech-Sprachenerkennung
  • Containerimages werden aus der Containerregistrierung in Azure heruntergeladen.
  • Containerimages werden in Docker ausgeführt.
  • Geben Sie den Host-URI des Containers an, unabhängig davon, ob Sie die Rest-API (nur Sprachsynthese) oder das SDK (Spracherkennung oder Sprachsynthese) verwenden.
  • Bei der Instanziierung eines Containers müssen Sie Abrechnungsinformationen angeben.

Wichtig

Für die Ausführung von Cognitive Services-Containern besteht keine Lizenz, wenn sie nicht zu Messzwecken mit Azure verbunden sind. Kunden müssen sicherstellen, dass Container jederzeit Abrechnungsinformationen an den Messungsdienst übermitteln können. Cognitive Services-Container senden keine Kundendaten (etwa das analysierte Bild oder den analysierten Text) an Microsoft.

Nächste Schritte