Dil belirlemeyi uygulama

Dil belirleme, desteklenen diller listesiyle karşılaştırıldığında seste konuşulan dilleri tanımlamak için kullanılır.

Dil belirleme (LID) kullanım örnekleri şunlardır:

  • Bir ses kaynağındaki dili tanımlamanız ve ardından metne dönüştürmeniz gerektiğinde metin tanımaya konuşma.
  • Bir ses kaynağında dili tanımlamanız ve ardından başka bir dile çevirmeniz gerektiğinde konuşma çevirisi.

Konuşma tanıma için, dil belirleme ile ilk gecikme süresi daha yüksektir. Bu isteğe bağlı özelliği yalnızca gerektiğinde eklemelisiniz.

Yapılandırma seçeneklerini ayarlama

İster konuşmayı metne dönüştürmeyle ister konuşma çevirisiyle dil tanımlamayı kullanın, bazı yaygın kavramlar ve yapılandırma seçenekleri vardır.

Ardından Konuşma tanıma hizmetine bir kez veya sürekli tanıma isteğinde bulunursunuz.

Önemli

Konuşma SDK'sı sürüm 1.25 ve üzeri ile Dil Belirleme API'leri basitleştirilmiştir. SpeechServiceConnection_SingleLanguageIdPriority ve SpeechServiceConnection_ContinuousLanguageIdPriority özellikleri kaldırıldı. Bunların yerini tek bir özellik SpeechServiceConnection_LanguageIdMode alır. Artık düşük gecikme süresi ile yüksek doğruluk arasında öncelik vermeniz gerekmez. Sürekli konuşma tanıma veya çeviri için yalnızca başlangıçta mı yoksa sürekli Dil Belirleme'de mi çalışabileceğinizi seçmeniz gerekir.

Bu makalede, kavramları açıklamak için kod parçacıkları sağlanır. Her kullanım örneği için eksiksiz örneklerin bağlantıları sağlanır.

Aday diller

Nesneyle AutoDetectSourceLanguageConfig aday dilleri sağlarsınız. Adaylardan en az birinin seste olmasını bekliyorsunuz. Başlangıç LID için en fazla dört dil veya sürekli LID için en fazla 10 dil ekleyebilirsiniz. Konuşma hizmeti, bu diller seste olmasa bile sağlanan aday dillerden birini döndürür. Örneğin, aday olarak (Fransızca) ve en-US (İngilizce) sağlanırsa ancak Almanca konuşulursa fr-FR , hizmet veya en-USdöndürürfr-FR.

Tam yerel ayarı tire (-) ayırıcısı ile sağlamanız gerekir, ancak dil belirleme temel dil başına yalnızca bir yerel ayar kullanır. Aynı dil için birden çok yerel ayar eklemeyin, örneğin en-US ve 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];

Daha fazla bilgi için bkz . desteklenen diller.

Başlangıç ve Sürekli dil belirleme

Konuşma, hem başlangıç hem de sürekli dil belirlemeyi (LID) destekler.

Not

Sürekli dil belirleme yalnızca C#, C++, Java (yalnızca konuşmayı metne dönüştürme için), JavaScript (yalnızca konuşmayı metne dönüştürme için) ve Python'daki Konuşma SDK'ları ile desteklenir.

  • Başlangıç LID'ı sesi ilk birkaç saniye içinde dili bir kez tanımlar. Sesteki dil değişmiyorsa başlangıç LID'sini kullanın. Başlangıç LID ile tek bir dil algılanır ve 5 saniyeden kısa sürede döndürülür.
  • Sürekli LID, ses sırasında birden çok dili tanımlayabilir. Sesteki dil değişebiliyorsa sürekli LID kullanın. Sürekli LID, aynı cümle içinde dilleri değiştirmeyi desteklemez. Örneğin, öncelikli olarak İspanyolca konuşuyorsanız ve bazı İngilizce sözcükler ekliyseniz, sözcük başına dil değişikliği algılanmıyor demektir.

Bir kez veya sürekli tanımak üzere yöntemleri çağırarak başlangıç LID'sini veya sürekli LID'yi uygularsınız. Sürekli LID yalnızca sürekli tanıma ile desteklenir.

Bir kez veya sürekli tanıma

Dil belirleme, tanıma nesneleri ve işlemleriyle tamamlanır. Ses tanıma için Konuşma hizmetine bir istekte bulunun.

Not

Tanımayı kimlikle karıştırmayın. Tanıma, dil belirleme ile veya olmadan kullanılabilir.

"Bir kez tanıma" yöntemini veya sürekli tanıma yöntemlerini başlat ve durdur'u çağırın. Şu seçimlerden birini yapabilirsiniz:

  • Başlangıç LID ile bir kez tanıyabilir. Sürekli LID bir kez tanınması için desteklenmez.
  • BaşlangıçtaKI LID ile sürekli tanımayı kullanın.
  • Sürekli LID ile sürekli tanıma kullanın.

SpeechServiceConnection_LanguageIdMode özelliği yalnızca sürekli LID için gereklidir. Bu olmadan, Konuşma hizmeti varsayılan olarak başlangıç LID'sine ayarlı olur. Desteklenen değerler başlangıçtaKI LID veya Continuous sürekli LID için kullanılırAtStart.

// 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()

Konuşmayı metne dönüştürmeyi kullanma

Ses kaynağındaki dili tanımlamanız ve ardından metne dönüştürmeniz gerektiğinde Konuşmayı metne dönüştürme özelliğini kullanırsınız. Daha fazla bilgi için bkz . Metne konuşmaya genel bakış.

Not

C#, C++, Python, Java, JavaScript ve Objective-C'deki Konuşma SDK'ları ile başlangıç dili tanımlama ile metin tanıma desteklenir. Sürekli dil belirleme ile metin tanımaya konuşma yalnızca C#, C++, Java, JavaScript ve Python'daki Konuşma SDK'larıyla desteklenir.

Şu anda sürekli dil tanımlaması ile konuşmayı metin tanıma için, kod örneklerinde gösterildiği gibi uç nokta dizesinden wss://{region}.stt.speech.microsoft.com/speech/universal/v2 bir SpeechConfig oluşturmanız gerekir. Gelecekteki bir SDK sürümünde bunu ayarlamanız gerekmez.

GitHub'da dil tanımlama ile konuşmadan metin tanımaya ilişkin diğer örneklere bakın.

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'da dil tanımlama ile konuşmadan metin tanımaya ilişkin diğer örneklere bakın.

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'da dil tanımlama ile konuşmadan metin tanımaya ilişkin diğer örneklere bakın.

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'da dil tanımlama ile konuşmadan metin tanımaya ilişkin diğer örneklere bakın.

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;
},
{});

Metin özel modellerine konuşma

Not

Özel modellerle dil algılama yalnızca gerçek zamanlı konuşmayı metne dönüştürme ve konuşma çevirisi ile kullanılabilir. Toplu transkripsiyon yalnızca varsayılan temel modeller için dil algılamayı destekler.

Bu örnek, özel bir uç nokta ile dil algılamanın nasıl kullanılacağını gösterir. Algılanan dil ise en-USörnekte varsayılan model kullanılır. Algılanan dil ise fr-FRörnekte özel model uç noktası kullanılır. Daha fazla bilgi için bkz . Özel konuşma modeli dağıtma.

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);

Bu örnek, özel bir uç nokta ile dil algılamanın nasıl kullanılacağını gösterir. Algılanan dil ise en-USörnekte varsayılan model kullanılır. Algılanan dil ise fr-FRörnekte özel model uç noktası kullanılır. Daha fazla bilgi için bkz . Özel konuşma modeli dağıtma.

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);

Bu örnek, özel bir uç nokta ile dil algılamanın nasıl kullanılacağını gösterir. Algılanan dil ise en-USörnekte varsayılan model kullanılır. Algılanan dil ise fr-FRörnekte özel model uç noktası kullanılır. Daha fazla bilgi için bkz . Özel konuşma modeli dağıtma.

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);

Bu örnek, özel bir uç nokta ile dil algılamanın nasıl kullanılacağını gösterir. Algılanan dil ise en-USörnekte varsayılan model kullanılır. Algılanan dil ise fr-FRörnekte özel model uç noktası kullanılır. Daha fazla bilgi için bkz . Özel konuşma modeli dağıtma.

 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])

Bu örnek, özel bir uç nokta ile dil algılamanın nasıl kullanılacağını gösterir. Algılanan dil ise en-USörnekte varsayılan model kullanılır. Algılanan dil ise fr-FRörnekte özel model uç noktası kullanılır. Daha fazla bilgi için bkz . Özel konuşma modeli dağıtma.

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]);

Konuşma çevirisi çalıştırma

Bir ses kaynağındaki dili tanımlamanız ve ardından başka bir dile çevirmeniz gerektiğinde Konuşma çevirisini kullanın. Daha fazla bilgi için bkz . Konuşma çevirilerine genel bakış.

Not

Dil belirleme ile konuşma çevirisi yalnızca C#, C++, JavaScript ve Python'daki Konuşma SDK'larıyla desteklenir. Şu anda dil tanımlamalı konuşma çevirisi için, kod örneklerinde gösterildiği gibi uç nokta dizesinden wss://{region}.stt.speech.microsoft.com/speech/universal/v2 bir SpeechConfig oluşturmanız gerekir. Gelecekteki bir SDK sürümünde bunu ayarlamanız gerekmez.

GitHub'da dil tanımlama ile konuşma çevirisi ile ilgili diğer örneklere bakın.

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'da dil tanımlama ile konuşma çevirisi ile ilgili diğer örneklere bakın.

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'da dil tanımlama ile konuşma çevirisi ile ilgili diğer örneklere bakın.

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))

Kapsayıcı çalıştırma ve kullanma

Konuşma kapsayıcıları, Konuşma SDK'sı ve Konuşma CLI'sı aracılığıyla erişilen websocket tabanlı sorgu uç noktası API'leri sağlar. Varsayılan olarak, Konuşma SDK'sı ve Konuşma CLI'sı genel Konuşma hizmetini kullanır. Kapsayıcıyı kullanmak için başlatma yöntemini değiştirmeniz gerekir. Anahtar ve bölge yerine kapsayıcı ana bilgisayar URL'si kullanın.

Bir kapsayıcıda dil kimliği çalıştırdığınızda veya TranslationRecognizeryerine SpeechRecognizer nesnesini kullanınSourceLanguageRecognizer.

Kapsayıcılar hakkında daha fazla bilgi için dil tanımlama konuşma kapsayıcıları nasıl yapılır kılavuzuna bakın.

Konuşmayı metne dönüştürme toplu iş transkripsiyonu uygulama

Batch transkripsiyon REST API'siyle dilleri tanımlamak için Transcriptions_Create isteğinizin gövdesindeki özelliğini kullanınlanguageIdentification.

Uyarı

Toplu transkripsiyon yalnızca varsayılan temel modeller için dil tanımlamayı destekler. Transkripsiyon isteğinde hem dil tanımlaması hem de özel model belirtilirse, hizmet belirtilen aday diller için temel modelleri kullanmaya geri döner. Bu, beklenmeyen tanıma sonuçlarına neden olabilir.

Konuşmayı metne dönüştürme senaryonuz hem dil belirleme hem de özel modeller gerektiriyorsa, toplu transkripsiyon yerine gerçek zamanlı konuşmayı metne dönüştürmeyi kullanın.

Aşağıdaki örnekte özelliğin languageIdentification dört aday dille kullanımı gösterilmektedir. İstek özellikleri hakkında daha fazla bilgi için bkz . Toplu transkripsiyon oluşturma.

{
    <...>
    
    "properties": {
    <...>
    
        "languageIdentification": {
            "candidateLocales": [
            "en-US",
            "ja-JP",
            "zh-CN",
            "hi-IN"
            ]
        },	
        <...>
    }
}