Реализация идентификации языка
Используется для определения языков, на которых говорят в аудиозаписях, при сравнении со списком поддерживаемых языков.
Варианты использования для идентификации языка (LID) включают:
- Распознавание речи в тексте, когда необходимо определить язык в источнике звука, а затем переписать его в текст.
- Перевод речи, когда вам нужно идентифицировать язык в источнике аудио, а затем перевести его на другой язык.
Для распознавания речи начальная задержка выше с идентификацией языка. Следует включать этот дополнительный компонент только по мере необходимости.
Настройка параметров конфигурации
Независимо от того, используется ли идентификация языка с речью в тексте или с переводом речи, существуют некоторые распространенные понятия и параметры конфигурации.
- Определите список потенциальных языков, которые вы хотите увидеть в аудио.
- Решите, использовать ли начальную или непрерывную идентификации языка.
Затем вам нужно сделать запрос на однократное или непрерывное распознавание в службу речи.
В этой статье содержатся фрагменты кода для описания концепций. Приведены ссылки на полные примеры для каждого варианта использования.
Потенциальные языки
Вы предоставляете языки-кандидаты объекту AutoDetectSourceLanguageConfig
. Вы ожидаете, что по крайней мере один из кандидатов находится в звуке. Для непрерывного liD можно включить до четырех языков при запуске LID или до 10 языков. Служба "Речь" возвращает один из языков-кандидатов, предоставляемых, даже если эти языки не были в звуке. Например, если fr-FR
(французский) и en-US
(английский) предоставляются в качестве кандидатов, но немецкий говорится, служба возвращает fr-FR
либо.en-US
Необходимо указать полное наименование языкового стандарта с дефисом-разделителем (-
), но при идентификации языка будет использоваться только один языковой стандарт для каждого базового языка. Не включайте несколько языковых стандартов для одного языка, например en-US
и 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];
Дополнительные сведения см . на поддерживаемых языках.
Начальная и непрерывная идентификация языка
Речь поддерживает как начальную, так и на непрерывной идентификации языка (LID).
Примечание.
Непрерывная идентификация языка поддерживается только с пакетами SDK службы "Речь" в C#, C++, Java (только для преобразования речи в текст), JavaScript (только для преобразования речи в текст) и Python.
- При запуске LID идентифицирует язык один раз в течение первых нескольких секунд звука. Используйте при запуске LID, если язык в звуке не изменяется. При запуске LID обнаруживается один язык и возвращается менее чем за 5 секунд.
- Непрерывный liD может определять несколько языков во время звука. Используйте непрерывную идентификацию языка, если язык в аудио может изменяется. Непрерывный идентификатор LID не поддерживает изменение языков в одном предложении. Например, если вы в основном говорите на испанском языке и вставляете некоторые английские слова, он не обнаруживает изменение языка на слово.
Реализовать начальную или непрерывную идентификацию языка можно, используя методы однократного или непрерывного распознавания. Непрерывная liD поддерживается только с непрерывным распознаванием.
Однократное или непрерывное распознавание
Идентификация языка завершается распознаванием объектов и операций. Отправьте запрос службе "Речь" для распознавания звука.
Примечание.
Не путайте распознавание с идентификацией. Распознавание может использоваться как с идентификацией языка, так и без нее.
Вызовите метод "распознать один раз" или методы запуска и остановки непрерывного распознавания. Выберите один из следующих вариантов:
- Распознайте один раз с помощью LID на начальном этапе. Непрерывный идентификатор LID не поддерживается для распознавания один раз.
- Используйте непрерывное распознавание с идентификатором LID в начале.
- Используйте непрерывное распознавание с непрерывным идентификатором LID.
Свойство SpeechServiceConnection_LanguageIdMode
требуется только для непрерывного liD. Без нее служба "Речь" по умолчанию используется для запуска LID. Поддерживаемые значения предназначены AtStart
для liD в начале или Continuous
для непрерывного 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()
Использование преобразования речи в текст
Вы используете распознавание речи для текста, когда необходимо определить язык в источнике звука, а затем переписать его в текст. Дополнительные сведения см. в разделе "Речь в тексте".
Примечание.
Распознавание речи в текст с помощью идентификации языка при запуске поддерживается с пакетами SDK службы "Речь" в C#, C++, Python, Java, JavaScript и Objective-C. Распознавание речи в текст с непрерывной идентификацией языка поддерживается только с пакетами SDK службы "Речь" в C#, C++, Java, JavaScript и Python.
В настоящее время для распознавания речи в текст с помощью непрерывной идентификации языка необходимо создать SpeechConfig из строки конечной wss://{region}.stt.speech.microsoft.com/speech/universal/v2
точки, как показано в примерах кода. В последующих версиях пакета SDK его устанавливать не нужно.
Дополнительные примеры распознавания речи в тексте с помощью идентификации языка на сайте GitHub.
using Microsoft.CognitiveServices.Speech;
using Microsoft.CognitiveServices.Speech.Audio;
var speechConfig = SpeechConfig.FromSubscription("YourSubscriptionKey","YourServiceRegion");
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;
}
Дополнительные примеры распознавания речи в тексте с помощью идентификации языка на сайте GitHub.
using namespace std;
using namespace Microsoft::CognitiveServices::Speech;
using namespace Microsoft::CognitiveServices::Speech::Audio;
auto speechConfig = SpeechConfig::FromSubscription("YourSubscriptionKey","YourServiceRegion");
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;
Дополнительные примеры распознавания речи в тексте с помощью идентификации языка на сайте GitHub.
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();
Дополнительные примеры распознавания речи в тексте с помощью идентификации языка на сайте GitHub.
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;
},
{});
Речь в текстовых пользовательских моделях
Примечание.
Обнаружение языка с пользовательскими моделями можно использовать только с речью в режиме реального времени для перевода текста и речи. Пакетное транскрибирование поддерживает только обнаружение языка для базовых моделей по умолчанию.
Данный пример показывает, как обнаружить язык с пользовательской конечной точкой. Если обнаружен язык, en-US
в примере используется модель по умолчанию. Если обнаружен язык fr-FR
, в примере используется конечная точка пользовательской модели. Дополнительные сведения см. в статье "Развертывание пользовательской модели речи".
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);
Данный пример показывает, как обнаружить язык с пользовательской конечной точкой. Если обнаружен язык, en-US
в примере используется модель по умолчанию. Если обнаружен язык fr-FR
, в примере используется конечная точка пользовательской модели. Дополнительные сведения см. в статье "Развертывание пользовательской модели речи".
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);
Данный пример показывает, как обнаружить язык с пользовательской конечной точкой. Если обнаружен язык, en-US
в примере используется модель по умолчанию. Если обнаружен язык fr-FR
, в примере используется конечная точка пользовательской модели. Дополнительные сведения см. в статье "Развертывание пользовательской модели речи".
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);
Данный пример показывает, как обнаружить язык с пользовательской конечной точкой. Если обнаружен язык, en-US
в примере используется модель по умолчанию. Если обнаружен язык fr-FR
, в примере используется конечная точка пользовательской модели. Дополнительные сведения см. в статье "Развертывание пользовательской модели речи".
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])
Данный пример показывает, как обнаружить язык с пользовательской конечной точкой. Если обнаружен язык, en-US
в примере используется модель по умолчанию. Если обнаружен язык fr-FR
, в примере используется конечная точка пользовательской модели. Дополнительные сведения см. в статье "Развертывание пользовательской модели речи".
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]);
Запуск перевода речи
Используйте перевод речи, если необходимо определить язык в источнике звука, а затем перевести его на другой язык. Дополнительные сведения см. в обзоре Перевод речи.
Примечание.
Перевод речи с идентификацией языка поддерживается только с пакетами SDK службы "Речь" в C#, C++, JavaScript и Python.
В настоящее время для перевода речи с использованием идентификации языка необходимо создать SpeechConfig из wss://{region}.stt.speech.microsoft.com/speech/universal/v2
строки конечной точки, как показано в примерах кода. В последующих версиях пакета SDK его устанавливать не нужно.
См. дополнительные примеры перевода речи с использованием идентификации языка на GitHub.
using Microsoft.CognitiveServices.Speech;
using Microsoft.CognitiveServices.Speech.Audio;
using Microsoft.CognitiveServices.Speech.Translation;
public static async Task RecognizeOnceSpeechTranslationAsync()
{
var region = "YourServiceRegion";
// Currently the v2 endpoint is required. In a future SDK release you won't need to set it.
var endpointString = $"wss://{region}.stt.speech.microsoft.com/speech/universal/v2";
var endpointUrl = new Uri(endpointString);
var config = SpeechTranslationConfig.FromEndpoint(endpointUrl, "YourSubscriptionKey");
// 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}");
}
}
}
}
См. дополнительные примеры перевода речи с использованием идентификации языка на GitHub.
auto region = "YourServiceRegion";
// Currently the v2 endpoint is required. In a future SDK release you won't need to set it.
auto endpointString = std::format("wss://{}.stt.speech.microsoft.com/speech/universal/v2", region);
auto config = SpeechTranslationConfig::FromEndpoint(endpointString, "YourSubscriptionKey");
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 region values?" << std::endl;
}
}
См. дополнительные примеры перевода речи с использованием идентификации языка на GitHub.
import azure.cognitiveservices.speech as speechsdk
import time
import json
speech_key, service_region = "YourSubscriptionKey","YourServiceRegion"
weatherfilename="en-us_zh-cn.wav"
# set up translation parameters: source language and target languages
# Currently the v2 endpoint is required. In a future SDK release you won't need to set it.
endpoint_string = "wss://{}.stt.speech.microsoft.com/speech/universal/v2".format(service_region)
translation_config = speechsdk.translation.SpeechTranslationConfig(
subscription=speech_key,
endpoint=endpoint_string,
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))
Запуск и использование контейнера
Контейнеры службы "Речь" предоставляют API конечных точек запросов на основе websocket, к которым обращается пакет SDK службы "Речь" и CLI службы "Речь". По умолчанию пакет SDK службы "Речь" и cli службы "Речь" используют общедоступную службу "Речь". Чтобы использовать контейнер, вам необходимо изменить метод инициализации. Используйте URL-адрес узла контейнера вместо ключа и региона.
При запуске идентификатора языка в контейнере используйте SourceLanguageRecognizer
объект вместо SpeechRecognizer
него.TranslationRecognizer
Дополнительные сведения о контейнерах см. в руководстве по использованию контейнеров распознавания речи на языке.
Реализация преобразования речи в текстовый пакетный транскрибирование
Чтобы определить языки с помощью REST API пакетной транскрибирования, используйте languageIdentification
свойство в тексте запроса Transcriptions_Create .
Предупреждение
Пакетное транскрибирование поддерживает только идентификацию языка для базовых моделей по умолчанию. Если в запросе транскрибирования указаны как идентификация языка, так и пользовательская модель, служба возвращается для использования базовых моделей для указанных языков-кандидатов. Это может привести к непредвиденным результатам распознавания.
Если для речи в текстовом сценарии требуется идентификация языка и пользовательские модели, используйте речь в режиме реального времени для текста вместо пакетной транскрибирования.
В следующем примере показано использование languageIdentification
свойства с четырьмя языками кандидатов. Дополнительные сведения о свойствах запроса см. в разделе "Создание пакетной транскрибирования".
{
<...>
"properties": {
<...>
"languageIdentification": {
"candidateLocales": [
"en-US",
"ja-JP",
"zh-CN",
"hi-IN"
]
},
<...>
}
}