Sprachenerkennungscontainer mit Docker

Der Sprachenerkennungscontainer erkennt die Sprache, die in Audiodateien gesprochen wird. Sie können Sprache in Echtzeit oder Batchaudioaufzeichnungen mit Zwischenergebnissen erhalten. In diesem Artikel erfahren Sie, wie Sie einen Sprachenerkennungscontainer herunterladen, installieren und ausführen.

Hinweis

Der Speech-Sprachenerkennungscontainer ist als Public Preview verfügbar. Container in der Vorschauversion befinden sich noch in der Entwicklung und erfüllen nicht die Stabilitäts- und Supportanforderungen von Microsoft.

Weitere Informationen zu den Voraussetzungen, zum Überprüfen, ob ein Container ausgeführt wird, Ausführen mehrerer Container auf demselben Host und Ausführen nicht verbundener Container finden Sie unter Installieren und Ausführen von Docker-Containern für die APIs des Speech-Diensts.

Tipp

Um die besten Ergebnisse zu erzielen, verwenden Sie den Speech Sprachenerkennungs-Container zusammen mit den Spracherkennungs-Containern oder den benutzerdefinierten Spracherkennungs-Containern.

Containerimages

Das Containerimage „Speech-Sprachenerkennung“ für alle unterstützten Versionen und Gebietsschemas finden Sie im Microsoft Container Registry (MCR)-Syndikat. Es befindet sich im Repository azure-cognitive-services/speechservices/ und trägt den Namen language-detection.

Screenshot des Dialogfelds „Connectors und Triggers suchen“.

Der vollqualifizierte Containerimagename lautet mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection. Fügen Sie entweder eine bestimmte Version oder zum Abrufen der aktuellen Version :latest an.

Version `Path`
Neueste Version mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection:latest
1.16.0 mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection:1.16.0-amd64-preview

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

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

Die Tags sind der Einfachheit halber auch im JSON-Format verfügbar. Der Text enthält den Containerpfad und eine Liste mit Tags. Die Tags sind nicht nach Version sortiert, "latest" ist jedoch wie im folgenden Codeschnipsel gezeigt immer am Ende der Liste enthalten:

{
  "name": "azure-cognitive-services/speechservices/language-detection",
  "tags": [
    "1.1.0-amd64-preview",
    "1.11.0-amd64-preview",
    "1.12.0-amd64-preview",
    "1.13.0-amd64-preview",
    "1.14.0-amd64-preview",
    "1.15.0-amd64-preview",
    "1.16.0-amd64-preview",
    "1.3.0-amd64-preview",
    "1.5.0-amd64-preview",
    "1.6.1-amd64-preview",
    "1.7.0-amd64-preview",
    "1.8.0-amd64-preview",
    "latest"
  ]
}

Abrufen des Containerimages mit dem Befehl „docker pull“

Sie müssen die Voraussetzungen erfüllen (einschließlich der Hardwareanforderungen). Sehen Sie sich auch die empfohlene Zuordnung von Ressourcen für die einzelnen Speech-Container an.

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

docker pull mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection:latest

Ausführen des Containers mit „docker run“

Verwenden Sie den Befehl docker run, um den Container auszuführen.

Die folgende Tabelle zeigt die verschiedenen docker run-Parameter und die entsprechenden Beschreibungen:

Parameter BESCHREIBUNG
{ENDPOINT_URI} Der Endpunkt ist zur Messung und Abrechnung erforderlich. Weitere Informationen finden Sie unter Abrechnungsargumente.
{API_KEY} Der API-Schlüssel ist erforderlich. Weitere Informationen finden Sie unter Abrechnungsargumente.

Wenn Sie den Sprachenerkennungscontainer ausführen, konfigurieren Sie Port, Arbeitsspeicher und CPU gemäß den Anforderungen und Empfehlungen für den Sprachenerkennungscontainer.

Hier sehen Sie einen Beispielbefehl docker run mit Platzhalterwerten. Sie müssen die Werte ENDPOINT_URI und API_KEY angeben:

docker run --rm -it -p 5000:5003 --memory 1g --cpus 1 \
mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Dieser Befehl:

  • Führt einen Speech-Sprachenerkennungscontainer auf der Grundlage des Containerimages aus.
  • Ordnet 1 CPU-Kern und 1 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.

Weitere Informationen zur Verwendung von docker run mit Speech-Containern finden Sie unter Installieren und Ausführen von Docker-Containern für die APIs des Speech-Diensts.

Ausführen mit dem Spracherkennungs-Container

Wenn Sie den Sprachenerkennungs-Container mit dem Spracherkennungs-Container ausführen möchten, können Sie dieses Docker-Image verwenden. Verwenden Sie nach dem Starten beider Container diesen docker run-Befehl, um speech-to-text-with-languagedetection-client auszuführen:

docker run --rm -v ${HOME}:/root -ti antsu/on-prem-client:latest ./speech-to-text-with-languagedetection-client ./audio/LanguageDetection_en-us.wav --host localhost --lport 5003 --sport 5000

Das Erhöhen der Anzahl gleichzeitiger Aufrufe kann sich auf Zuverlässigkeit und Wartezeit auswirken. Für die Sprachenerkennung empfiehlt es sich, maximal 4 gleichzeitige Aufrufe mit 1 CPU und 1 GB Arbeitsspeicher zu verwenden. Für Hosts mit 2 CPUs und 2 GB Arbeitsspeicher werden maximal sechs gleichzeitige Aufrufe empfohlen.

Verwenden des Containers

Speech-Container bieten websocketbasierte Abfrageendpunkt-APIs, auf die über das Speech SDK und die Speech-Befehlszeilenschnittstelle (Command Line Interface, CLI) zugegriffen wird. Standardmäßig verwenden das Speech SDK und die Speech-CLI den öffentlichen Speech-Dienst. Um den Container verwenden zu können, müssen Sie die Initialisierungsmethode ändern.

Wichtig

Wenn Sie den Speech-Dienst mit Containern verwenden, müssen Sie die Hostauthentifizierung verwenden. Wenn Sie den Schlüssel und die Region konfigurieren, werden Anforderungen an den öffentlichen Speech-Dienst gesendet. Die Ergebnisse des Speech-Diensts sind möglicherweise nicht wie erwartet. Anforderungen von nicht verbundenen Containern schlagen fehl.

Verwenden Sie anstelle dieser Konfiguration für die Azure-Cloudinitialisierung:

var config = SpeechConfig.FromSubscription(...);

Die folgende Konfiguration mit dem Container host:

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

Verwenden Sie anstelle dieser Konfiguration für die Azure-Cloudinitialisierung:

auto speechConfig = SpeechConfig::FromSubscription(...);

Die folgende Konfiguration mit dem Container host:

auto speechConfig = SpeechConfig::FromHost("http://localhost:5000");

Verwenden Sie anstelle dieser Konfiguration für die Azure-Cloudinitialisierung:

speechConfig, err := speech.NewSpeechConfigFromSubscription(...)

Die folgende Konfiguration mit dem Container host:

speechConfig, err := speech.NewSpeechConfigFromHost("http://localhost:5000")

Verwenden Sie anstelle dieser Konfiguration für die Azure-Cloudinitialisierung:

SpeechConfig speechConfig = SpeechConfig.fromSubscription(...);

Die folgende Konfiguration mit dem Container host:

SpeechConfig speechConfig = SpeechConfig.fromHost("http://localhost:5000");

Verwenden Sie anstelle dieser Konfiguration für die Azure-Cloudinitialisierung:

const speechConfig = sdk.SpeechConfig.fromSubscription(...);

Die folgende Konfiguration mit dem Container host:

const speechConfig = sdk.SpeechConfig.fromHost("http://localhost:5000");

Verwenden Sie anstelle dieser Konfiguration für die Azure-Cloudinitialisierung:

SPXSpeechConfiguration *speechConfig = [[SPXSpeechConfiguration alloc] initWithSubscription:...];

Die folgende Konfiguration mit dem Container host:

SPXSpeechConfiguration *speechConfig = [[SPXSpeechConfiguration alloc] initWithHost:"http://localhost:5000"];

Verwenden Sie anstelle dieser Konfiguration für die Azure-Cloudinitialisierung:

let speechConfig = SPXSpeechConfiguration(subscription: "", region: "");

Die folgende Konfiguration mit dem Container host:

let speechConfig = SPXSpeechConfiguration(host: "http://localhost:5000");

Verwenden Sie anstelle dieser Konfiguration für die Azure-Cloudinitialisierung:

speech_config = speechsdk.SpeechConfig(
    subscription=speech_key, region=service_region)

Die folgende Konfiguration mit dem Container endpoint:

speech_config = speechsdk.SpeechConfig(
    host="http://localhost:5000")

Wenn Sie die Speech CLI in einem Container verwenden, schließen Sie die Option --host http://localhost:5000/ ein. Sie müssen auch --key none angeben, um sicherzustellen, dass die CLI nicht versucht, einen Speech-Schlüssel für die Authentifizierung zu verwenden. Informationen zum Konfigurieren der Speech-CLI finden Sie unter Erste Schritte mit der Azure KI Speech-CLI.

Testen Sie die Sprachenerkennung mit der Hostauthentifizierung anstelle von Schlüssel und Region. Wenn Sie die Sprach-ID in einem Container ausführen, verwenden Sie das SourceLanguageRecognizer-Objekt anstelle von SpeechRecognizer oder TranslationRecognizer.

Nächste Schritte