Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Identifikace jazyka se používá k identifikaci jazyků mluvených ve zvuku v porovnání se seznamem podporovaných jazyků.
Případy použití identifikace jazyka (LID) zahrnují:
- Rozpoznávání řeči na text, když potřebujete identifikovat jazyk ve zvukovém zdroji a pak ho přepsat na text.
- Překlad řeči, když potřebujete identifikovat jazyk ve zvukovém zdroji a pak ho přeložit do jiného jazyka.
Při rozpoznávání řeči je počáteční latence vyšší s identifikací jazyka. Tuto volitelnou funkci byste měli zahrnout jenom podle potřeby.
Nastavení možností konfigurace
Ať už používáte identifikaci jazyka s převodem řeči na text nebo s překladem řeči, existují některé běžné koncepty a možnosti konfigurace.
- Definujte seznam kandidátských jazyků , které očekáváte ve zvuku.
- Rozhodněte se, jestli chcete používat počáteční nebo kontinuální identifikaci jazyka.
Pak službě Speech provedete žádost o rozpoznávání jednou nebo nepřetržitým rozpoznáváním .
Tento článek obsahuje fragmenty kódu, které popisují koncepty. K dispozici jsou odkazy na kompletní ukázky pro každý případ použití.
Kandidátské jazyky
Kandidátským jazykům poskytujete objekt AutoDetectSourceLanguageConfig
. Očekáváte, že alespoň jeden z kandidátů je ve zvukovém přenosu. Můžete zahrnout až čtyři jazyky pro počáteční LID nebo až 10 jazyků pro kontinuální LID. Služba Speech vrátí jeden z kandidátských jazyků, které jsou k dispozici i v případě, že tyto jazyky nebyly ve zvukovém přenosu. Například, pokud jsou jako kandidáti k dispozici fr-FR
(francouzština) a en-US
(angličtina), ale mluví se německy, služba vrátí buď fr-FR
nebo en-US
.
Musíte zadat úplné národní prostředí s oddělovačem pomlčky (-
), ale identifikace jazyka používá pouze jedno národní prostředí na základní jazyk. Nezahrnujte více národních prostředí pro stejný jazyk, například en-US
a en-GB
.
var autoDetectSourceLanguageConfig =
AutoDetectSourceLanguageConfig.FromLanguages(new string[] { "en-US", "de-DE", "zh-CN" });
auto autoDetectSourceLanguageConfig =
AutoDetectSourceLanguageConfig::FromLanguages({ "en-US", "de-DE", "zh-CN" });
auto_detect_source_language_config = \
speechsdk.languageconfig.AutoDetectSourceLanguageConfig(languages=["en-US", "de-DE", "zh-CN"])
AutoDetectSourceLanguageConfig autoDetectSourceLanguageConfig =
AutoDetectSourceLanguageConfig.fromLanguages(Arrays.asList("en-US", "de-DE", "zh-CN"));
var autoDetectSourceLanguageConfig = SpeechSDK.AutoDetectSourceLanguageConfig.fromLanguages([("en-US", "de-DE", "zh-CN"]);
NSArray *languages = @[@"en-US", @"de-DE", @"zh-CN"];
SPXAutoDetectSourceLanguageConfiguration* autoDetectSourceLanguageConfig = \
[[SPXAutoDetectSourceLanguageConfiguration alloc]init:languages];
Další informace najdete v podporovaných jazycích.
Počáteční a průběžná identifikace jazyka
Řeč podporuje počáteční i kontinuální identifikaci jazyka (LID).
Poznámka:
Průběžná identifikace jazyka se podporuje jenom u sad Speech SDK v jazyce C#, C++, Java (pouze pro převod řeči na text), JavaScriptu (pouze pro převod řeči na text) a Pythonu.
- Při spuštění LID identifikuje jazyk jednou v průběhu prvních několika sekund zvukového záznamu. Pokud se jazyk ve zvuku nezmění, použijte na začátku LID. Při zahájení jazykové identifikace (LID) je zjištěn a vrácen jeden jazyk za méně než 5 sekund.
- Nepřetržité rozpoznávání jazyků umí identifikovat více jazyků během audiozáznamu. Použijte kontinuální identifikaci jazyka, pokud se jazyk ve zvuku může změnit. Průběžné rozhraní LID nepodporuje změny jazyků ve stejné větě. Pokud například primárně mluvíte ve španělštině a vkládáte některá anglická slova, nerozpozná se změna jazyka pro jednotlivá slova.
Implementaci počátečního LID nebo kontinuálního LID provedete voláním metod pro rozpoznání jednou nebo nepřetržitě. Nepřetržité LID je podporováno pouze s nepřetržitým rozpoznáváním.
Rozpoznávání jednou nebo nepřetržitě
Identifikace jazyka je dokončena pomocí objektů rozpoznávání a operací. Požádejte službu Speech o rozpoznávání zvuku.
Poznámka:
Nezaměňujte rozpoznávání s identifikací. Rozpoznávání lze použít s identifikací jazyka nebo bez identifikace jazyka.
Buď zavolejte metodu "rozpoznat jednou" nebo spusťte a zastavte metody průběžného rozpoznávání. Můžete si vybrat z:
- Rozpoznejte jednou používáním LID na začátku. Průběžné rozpoznávání není podporováno pro rozpoznání jednou.
- Používejte nepřetržité rozpoznávání s identifikací jazyka na začátku.
- Používejte nepřetržité rozpoznávání s nepřetržitou identifikací jazyka.
Vlastnost SpeechServiceConnection_LanguageIdMode
je vyžadována pouze pro kontinuální LID. Bez ní služba Speech ve výchozím nastavení používá rozhraní LID při spuštění. Podporované hodnoty jsou AtStart
pro startovní LID nebo Continuous
pro kontinuální LID.
// Recognize once with At-start LID. Continuous LID isn't supported for recognize once.
var result = await recognizer.RecognizeOnceAsync();
// Start and stop continuous recognition with At-start LID
await recognizer.StartContinuousRecognitionAsync();
await recognizer.StopContinuousRecognitionAsync();
// Start and stop continuous recognition with Continuous LID
speechConfig.SetProperty(PropertyId.SpeechServiceConnection_LanguageIdMode, "Continuous");
await recognizer.StartContinuousRecognitionAsync();
await recognizer.StopContinuousRecognitionAsync();
// Recognize once with At-start LID. Continuous LID isn't supported for recognize once.
auto result = recognizer->RecognizeOnceAsync().get();
// Start and stop continuous recognition with At-start LID
recognizer->StartContinuousRecognitionAsync().get();
recognizer->StopContinuousRecognitionAsync().get();
// Start and stop continuous recognition with Continuous LID
speechConfig->SetProperty(PropertyId::SpeechServiceConnection_LanguageIdMode, "Continuous");
recognizer->StartContinuousRecognitionAsync().get();
recognizer->StopContinuousRecognitionAsync().get();
// Recognize once with At-start LID. Continuous LID isn't supported for recognize once.
SpeechRecognitionResult result = recognizer->RecognizeOnceAsync().get();
// Start and stop continuous recognition with At-start LID
recognizer.startContinuousRecognitionAsync().get();
recognizer.stopContinuousRecognitionAsync().get();
// Start and stop continuous recognition with Continuous LID
speechConfig.setProperty(PropertyId.SpeechServiceConnection_LanguageIdMode, "Continuous");
recognizer.startContinuousRecognitionAsync().get();
recognizer.stopContinuousRecognitionAsync().get();
# Recognize once with At-start LID. Continuous LID isn't supported for recognize once.
result = recognizer.recognize_once()
# Start and stop continuous recognition with At-start LID
recognizer.start_continuous_recognition()
recognizer.stop_continuous_recognition()
# Start and stop continuous recognition with Continuous LID
speech_config.set_property(property_id=speechsdk.PropertyId.SpeechServiceConnection_LanguageIdMode, value='Continuous')
recognizer.start_continuous_recognition()
recognizer.stop_continuous_recognition()
Převod řeči na text
Používáte rozpoznávání řeči na text, když potřebujete identifikovat jazyk ve zvukovém zdroji a pak ho převést na text. Další informace najdete v tématu Přehled převodu řeči na text.
Poznámka:
Rozpoznávání řeči na text s identifikací jazyka na začátku je podporováno pomocí knihoven Speech SDK v jazycích C#, C++, Python, Java, JavaScript a Objective-C. Rozpoznávání řeči na text s průběžnou identifikací jazyka se podporuje jenom u sad Speech SDK v jazyce C#, C++, Java, JavaScript a Python.
V současné době je pro rozpoznávání řeči na text s průběžnou identifikací jazyka nutné vytvořit službu SpeechConfig z koncového bodu, jak je znázorněno v příkladech kódu.
Podívejte se na další příklady rozpoznávání řeči na text s identifikací jazyka na GitHubu.
using Microsoft.CognitiveServices.Speech;
using Microsoft.CognitiveServices.Speech.Audio;
var speechConfig = SpeechConfig.FromEndpoint(new Uri("YourSpeechEndpoint"), "YourSpeechKey");
var autoDetectSourceLanguageConfig =
AutoDetectSourceLanguageConfig.FromLanguages(
new string[] { "en-US", "de-DE", "zh-CN" });
using var audioConfig = AudioConfig.FromDefaultMicrophoneInput();
using (var recognizer = new SpeechRecognizer(
speechConfig,
autoDetectSourceLanguageConfig,
audioConfig))
{
var speechRecognitionResult = await recognizer.RecognizeOnceAsync();
var autoDetectSourceLanguageResult =
AutoDetectSourceLanguageResult.FromResult(speechRecognitionResult);
var detectedLanguage = autoDetectSourceLanguageResult.Language;
}
Podívejte se na další příklady rozpoznávání řeči na text s identifikací jazyka na GitHubu.
using namespace std;
using namespace Microsoft::CognitiveServices::Speech;
using namespace Microsoft::CognitiveServices::Speech::Audio;
auto speechConfig = SpeechConfig::FromEndpoint("YourServiceEndpoint", "YourSpeechResoureKey");
auto autoDetectSourceLanguageConfig =
AutoDetectSourceLanguageConfig::FromLanguages({ "en-US", "de-DE", "zh-CN" });
auto recognizer = SpeechRecognizer::FromConfig(
speechConfig,
autoDetectSourceLanguageConfig
);
speechRecognitionResult = recognizer->RecognizeOnceAsync().get();
auto autoDetectSourceLanguageResult =
AutoDetectSourceLanguageResult::FromResult(speechRecognitionResult);
auto detectedLanguage = autoDetectSourceLanguageResult->Language;
Podívejte se na další příklady rozpoznávání řeči na text s identifikací jazyka na GitHubu.
AutoDetectSourceLanguageConfig autoDetectSourceLanguageConfig =
AutoDetectSourceLanguageConfig.fromLanguages(Arrays.asList("en-US", "de-DE"));
SpeechRecognizer recognizer = new SpeechRecognizer(
speechConfig,
autoDetectSourceLanguageConfig,
audioConfig);
Future<SpeechRecognitionResult> future = recognizer.recognizeOnceAsync();
SpeechRecognitionResult result = future.get(30, TimeUnit.SECONDS);
AutoDetectSourceLanguageResult autoDetectSourceLanguageResult =
AutoDetectSourceLanguageResult.fromResult(result);
String detectedLanguage = autoDetectSourceLanguageResult.getLanguage();
recognizer.close();
speechConfig.close();
autoDetectSourceLanguageConfig.close();
audioConfig.close();
result.close();
Podívejte se na další příklady rozpoznávání řeči na text s identifikací jazyka na GitHubu.
auto_detect_source_language_config = \
speechsdk.languageconfig.AutoDetectSourceLanguageConfig(languages=["en-US", "de-DE"])
speech_recognizer = speechsdk.SpeechRecognizer(
speech_config=speech_config,
auto_detect_source_language_config=auto_detect_source_language_config,
audio_config=audio_config)
result = speech_recognizer.recognize_once()
auto_detect_source_language_result = speechsdk.AutoDetectSourceLanguageResult(result)
detected_language = auto_detect_source_language_result.language
NSArray *languages = @[@"en-US", @"de-DE", @"zh-CN"];
SPXAutoDetectSourceLanguageConfiguration* autoDetectSourceLanguageConfig = \
[[SPXAutoDetectSourceLanguageConfiguration alloc]init:languages];
SPXSpeechRecognizer* speechRecognizer = \
[[SPXSpeechRecognizer alloc] initWithSpeechConfiguration:speechConfig
autoDetectSourceLanguageConfiguration:autoDetectSourceLanguageConfig
audioConfiguration:audioConfig];
SPXSpeechRecognitionResult *result = [speechRecognizer recognizeOnce];
SPXAutoDetectSourceLanguageResult *languageDetectionResult = [[SPXAutoDetectSourceLanguageResult alloc] init:result];
NSString *detectedLanguage = [languageDetectionResult language];
var autoDetectSourceLanguageConfig = SpeechSDK.AutoDetectSourceLanguageConfig.fromLanguages(["en-US", "de-DE"]);
var speechRecognizer = SpeechSDK.SpeechRecognizer.FromConfig(speechConfig, autoDetectSourceLanguageConfig, audioConfig);
speechRecognizer.recognizeOnceAsync((result: SpeechSDK.SpeechRecognitionResult) => {
var languageDetectionResult = SpeechSDK.AutoDetectSourceLanguageResult.fromResult(result);
var detectedLanguage = languageDetectionResult.language;
},
{});
Vlastní modely převodu řeči na text
Poznámka:
Rozpoznávání jazyka s vlastními modely lze používat pouze s převodem řeči na text v reálném čase a překladem řeči. Dávkový přepis podporuje pouze rozpoznávání jazyka pro výchozí základní modely.
Tato ukázka ukazuje, jak používat rozpoznávání jazyka s vlastním koncovým bodem. Pokud je en-US
zjištěný jazyk, použije příklad výchozí model. Pokud je fr-FR
zjištěný jazyk, použije příklad koncový bod vlastního modelu. Další informace najdete v tématu Nasazení vlastního modelu řeči.
var sourceLanguageConfigs = new SourceLanguageConfig[]
{
SourceLanguageConfig.FromLanguage("en-US"),
SourceLanguageConfig.FromLanguage("fr-FR", "The Endpoint Id for custom model of fr-FR")
};
var autoDetectSourceLanguageConfig =
AutoDetectSourceLanguageConfig.FromSourceLanguageConfigs(
sourceLanguageConfigs);
Tato ukázka ukazuje, jak používat rozpoznávání jazyka s vlastním koncovým bodem. Pokud je en-US
zjištěný jazyk, použije příklad výchozí model. Pokud je fr-FR
zjištěný jazyk, použije příklad koncový bod vlastního modelu. Další informace najdete v tématu Nasazení vlastního modelu řeči.
std::vector<std::shared_ptr<SourceLanguageConfig>> sourceLanguageConfigs;
sourceLanguageConfigs.push_back(
SourceLanguageConfig::FromLanguage("en-US"));
sourceLanguageConfigs.push_back(
SourceLanguageConfig::FromLanguage("fr-FR", "The Endpoint Id for custom model of fr-FR"));
auto autoDetectSourceLanguageConfig =
AutoDetectSourceLanguageConfig::FromSourceLanguageConfigs(
sourceLanguageConfigs);
Tato ukázka ukazuje, jak používat rozpoznávání jazyka s vlastním koncovým bodem. Pokud je en-US
zjištěný jazyk, použije příklad výchozí model. Pokud je fr-FR
zjištěný jazyk, použije příklad koncový bod vlastního modelu. Další informace najdete v tématu Nasazení vlastního modelu řeči.
List sourceLanguageConfigs = new ArrayList<SourceLanguageConfig>();
sourceLanguageConfigs.add(
SourceLanguageConfig.fromLanguage("en-US"));
sourceLanguageConfigs.add(
SourceLanguageConfig.fromLanguage("fr-FR", "The Endpoint Id for custom model of fr-FR"));
AutoDetectSourceLanguageConfig autoDetectSourceLanguageConfig =
AutoDetectSourceLanguageConfig.fromSourceLanguageConfigs(
sourceLanguageConfigs);
Tato ukázka ukazuje, jak používat rozpoznávání jazyka s vlastním koncovým bodem. Pokud je en-US
zjištěný jazyk, použije příklad výchozí model. Pokud je fr-FR
zjištěný jazyk, použije příklad koncový bod vlastního modelu. Další informace najdete v tématu Nasazení vlastního modelu řeči.
en_language_config = speechsdk.languageconfig.SourceLanguageConfig("en-US")
fr_language_config = speechsdk.languageconfig.SourceLanguageConfig("fr-FR", "The Endpoint Id for custom model of fr-FR")
auto_detect_source_language_config = speechsdk.languageconfig.AutoDetectSourceLanguageConfig(
sourceLanguageConfigs=[en_language_config, fr_language_config])
Tato ukázka ukazuje, jak používat rozpoznávání jazyka s vlastním koncovým bodem. Pokud je en-US
zjištěný jazyk, použije příklad výchozí model. Pokud je fr-FR
zjištěný jazyk, použije příklad koncový bod vlastního modelu. Další informace najdete v tématu Nasazení vlastního modelu řeči.
SPXSourceLanguageConfiguration* enLanguageConfig = [[SPXSourceLanguageConfiguration alloc]init:@"en-US"];
SPXSourceLanguageConfiguration* frLanguageConfig = \
[[SPXSourceLanguageConfiguration alloc]initWithLanguage:@"fr-FR"
endpointId:@"The Endpoint Id for custom model of fr-FR"];
NSArray *languageConfigs = @[enLanguageConfig, frLanguageConfig];
SPXAutoDetectSourceLanguageConfiguration* autoDetectSourceLanguageConfig = \
[[SPXAutoDetectSourceLanguageConfiguration alloc]initWithSourceLanguageConfigurations:languageConfigs];
var enLanguageConfig = SpeechSDK.SourceLanguageConfig.fromLanguage("en-US");
var frLanguageConfig = SpeechSDK.SourceLanguageConfig.fromLanguage("fr-FR", "The Endpoint Id for custom model of fr-FR");
var autoDetectSourceLanguageConfig = SpeechSDK.AutoDetectSourceLanguageConfig.fromSourceLanguageConfigs([enLanguageConfig, frLanguageConfig]);
Spuštění překladu řeči
Překlad řeči použijte, když potřebujete identifikovat jazyk ve zvukovém zdroji a pak ho přeložit do jiného jazyka. Další informace najdete v tématu Přehled překladu řeči.
Poznámka:
Překlad řeči s identifikací jazyka se podporuje jenom u sad Speech SDK v jazyce C#, C++, JavaScript a Python.
Podívejte se na další příklady překladu řeči s identifikací jazyka na GitHubu.
using Microsoft.CognitiveServices.Speech;
using Microsoft.CognitiveServices.Speech.Audio;
using Microsoft.CognitiveServices.Speech.Translation;
public static async Task RecognizeOnceSpeechTranslationAsync()
{
var endpointUrl = new Uri("YourSpeechResoureEndpoint");
var config = SpeechTranslationConfig.FromEndpoint(endpointUrl, "YourSpeechResoureKey");
// Source language is required, but currently ignored.
string fromLanguage = "en-US";
speechTranslationConfig.SpeechRecognitionLanguage = fromLanguage;
speechTranslationConfig.AddTargetLanguage("de");
speechTranslationConfig.AddTargetLanguage("fr");
var autoDetectSourceLanguageConfig = AutoDetectSourceLanguageConfig.FromLanguages(new string[] { "en-US", "de-DE", "zh-CN" });
using var audioConfig = AudioConfig.FromDefaultMicrophoneInput();
using (var recognizer = new TranslationRecognizer(
speechTranslationConfig,
autoDetectSourceLanguageConfig,
audioConfig))
{
Console.WriteLine("Say something or read from file...");
var result = await recognizer.RecognizeOnceAsync().ConfigureAwait(false);
if (result.Reason == ResultReason.TranslatedSpeech)
{
var lidResult = result.Properties.GetProperty(PropertyId.SpeechServiceConnection_AutoDetectSourceLanguageResult);
Console.WriteLine($"RECOGNIZED in '{lidResult}': Text={result.Text}");
foreach (var element in result.Translations)
{
Console.WriteLine($" TRANSLATED into '{element.Key}': {element.Value}");
}
}
}
}
Podívejte se na další příklady překladu řeči s identifikací jazyka na GitHubu.
auto endpointString = "YourSpeechResoureEndpoint";
auto config = SpeechTranslationConfig::FromEndpoint(endpointString, "YourSpeechResoureKey");
auto autoDetectSourceLanguageConfig = AutoDetectSourceLanguageConfig::FromLanguages({ "en-US", "de-DE" });
// Sets source and target languages
// The source language will be detected by the language detection feature.
// However, the SpeechRecognitionLanguage still need to set with a locale string, but it will not be used as the source language.
// This will be fixed in a future version of Speech SDK.
auto fromLanguage = "en-US";
config->SetSpeechRecognitionLanguage(fromLanguage);
config->AddTargetLanguage("de");
config->AddTargetLanguage("fr");
// Creates a translation recognizer using microphone as audio input.
auto recognizer = TranslationRecognizer::FromConfig(config, autoDetectSourceLanguageConfig);
cout << "Say something...\n";
// Starts translation, and returns after a single utterance is recognized. The end of a
// single utterance is determined by listening for silence at the end or until a maximum of 15
// seconds of audio is processed. The task returns the recognized text as well as the translation.
// Note: Since RecognizeOnceAsync() returns only a single utterance, it is suitable only for single
// shot recognition like command or query.
// For long-running multi-utterance recognition, use StartContinuousRecognitionAsync() instead.
auto result = recognizer->RecognizeOnceAsync().get();
// Checks result.
if (result->Reason == ResultReason::TranslatedSpeech)
{
cout << "RECOGNIZED: Text=" << result->Text << std::endl;
for (const auto& it : result->Translations)
{
cout << "TRANSLATED into '" << it.first.c_str() << "': " << it.second.c_str() << std::endl;
}
}
else if (result->Reason == ResultReason::RecognizedSpeech)
{
cout << "RECOGNIZED: Text=" << result->Text << " (text could not be translated)" << std::endl;
}
else if (result->Reason == ResultReason::NoMatch)
{
cout << "NOMATCH: Speech could not be recognized." << std::endl;
}
else if (result->Reason == ResultReason::Canceled)
{
auto cancellation = CancellationDetails::FromResult(result);
cout << "CANCELED: Reason=" << (int)cancellation->Reason << std::endl;
if (cancellation->Reason == CancellationReason::Error)
{
cout << "CANCELED: ErrorCode=" << (int)cancellation->ErrorCode << std::endl;
cout << "CANCELED: ErrorDetails=" << cancellation->ErrorDetails << std::endl;
cout << "CANCELED: Did you set the speech resource key and endpoint values?" << std::endl;
}
}
Podívejte se na další příklady překladu řeči s identifikací jazyka na GitHubu.
import azure.cognitiveservices.speech as speechsdk
import time
import json
speech_key, service_endpoint = "YourSpeechResoureKey","YourServiceEndpoint"
weatherfilename="en-us_zh-cn.wav"
# set up translation parameters: source language and target languages
translation_config = speechsdk.translation.SpeechTranslationConfig(
subscription=speech_key,
endpoint=service_endpoint,
speech_recognition_language='en-US',
target_languages=('de', 'fr'))
audio_config = speechsdk.audio.AudioConfig(filename=weatherfilename)
# Specify the AutoDetectSourceLanguageConfig, which defines the number of possible languages
auto_detect_source_language_config = speechsdk.languageconfig.AutoDetectSourceLanguageConfig(languages=["en-US", "de-DE", "zh-CN"])
# Creates a translation recognizer using and audio file as input.
recognizer = speechsdk.translation.TranslationRecognizer(
translation_config=translation_config,
audio_config=audio_config,
auto_detect_source_language_config=auto_detect_source_language_config)
# Starts translation, and returns after a single utterance is recognized. The end of a
# single utterance is determined by listening for silence at the end or until a maximum of 15
# seconds of audio is processed. The task returns the recognition text as result.
# Note: Since recognize_once() returns only a single utterance, it is suitable only for single
# shot recognition like command or query.
# For long-running multi-utterance recognition, use start_continuous_recognition() instead.
result = recognizer.recognize_once()
# Check the result
if result.reason == speechsdk.ResultReason.TranslatedSpeech:
print("""Recognized: {}
German translation: {}
French translation: {}""".format(
result.text, result.translations['de'], result.translations['fr']))
elif result.reason == speechsdk.ResultReason.RecognizedSpeech:
print("Recognized: {}".format(result.text))
detectedSrcLang = result.properties[speechsdk.PropertyId.SpeechServiceConnection_AutoDetectSourceLanguageResult]
print("Detected Language: {}".format(detectedSrcLang))
elif result.reason == speechsdk.ResultReason.NoMatch:
print("No speech could be recognized: {}".format(result.no_match_details))
elif result.reason == speechsdk.ResultReason.Canceled:
print("Translation canceled: {}".format(result.cancellation_details.reason))
if result.cancellation_details.reason == speechsdk.CancellationReason.Error:
print("Error details: {}".format(result.cancellation_details.error_details))
Spuštění a použití kontejneru
Kontejnery služby Speech poskytují rozhraní API koncových bodů dotazů založených na websocketu, ke kterým se přistupuje prostřednictvím sady Speech SDK a rozhraní příkazového řádku služby Speech. Speech SDK a Speech CLI ve výchozím nastavení používají veřejnou službu Speech. Pokud chcete kontejner použít, musíte změnit inicializační metodu. Místo klíče a koncového bodu použijte adresu URL hostitele kontejneru.
Při spuštění ID jazyka v kontejneru použijte SourceLanguageRecognizer
objekt místo SpeechRecognizer
nebo TranslationRecognizer
.
Další informace o kontejnerech najdete v průvodci postupy pro kontejnery speech pro identifikaci jazyka.
Implementace dávkového přepisu řeči na text
Chcete-li identifikovat jazyky pomocí rozhraní Batch transcription REST API, použijte v rámci žádosti Transcriptions - Submit vlastnost languageIdentification
uvedenou v těle žádosti.
Upozorňující
Dávkový přepis podporuje pouze identifikaci jazyka pro výchozí základní modely. Pokud je v žádosti o přepis zadána identifikace jazyka i vlastní model, služba se vrátí, aby používala základní modely pro zadané kandidátské jazyky. To může vést k neočekávaným výsledkům rozpoznávání.
Pokud váš scénář převodu řeči na text vyžaduje identifikaci jazyka i vlastní modely, použijte přepis řeči na text v reálném čase místo dávkového přepisu.
Následující příklad ukazuje použití languageIdentification
vlastnosti se čtyřmi kandidátskými jazyky. Další informace o vlastnostech požadavku najdete v části Vytvoření dávkového přepisu.
{
<...>
"properties": {
<...>
"languageIdentification": {
"candidateLocales": [
"en-US",
"ja-JP",
"zh-CN",
"hi-IN"
]
},
<...>
}
}