Как я могу изменить язык при бинг речи у бота

Я использую Bing речь в Botframeowrk, как показано ниже:

var speechOptions = 
{
    speechRecognizer: new CognitiveServices.SpeechRecognizer(
    {
        subscriptionKey: 'YOUR_COGNITIVE_SPEECH_API_KEY'
    }),
    speechSynthesizer: new CognitiveServices.SpeechSynthesizer(
    {
        subscriptionKey: 'YOUR_COGNITIVE_SPEECH_API_KEY',
        gender: CognitiveServices.SynthesisGender.Female,
        voiceName: 'Microsoft Server Speech Text to Speech Voice (en-US, JessaRUS)'
    })
}

Я хочу изменить язык с "en-us" на какой-то другой язык, есть ли варианты, которые я должен добавить, например, lang: "it-it".

А также есть ли способ, которым я могу менять языки в зависимости от того, на каком языке говорит пользователь?

1 ответ

Решение

Есть 2 различных элемента: голосовой ввод (SpeechRecognizer) и голосовой вывод (SpeechSynthesizer)

SpeechRecognizer

Есть необязательный locale параметр, который вы можете передать, как вы передаете subscriptionKey см. источники:

export interface ICognitiveServicesSpeechRecognizerProperties {
    locale?: string,
    subscriptionKey?: string,
    fetchCallback?: (authFetchEventId: string) => Promise<string>,
    fetchOnExpiryCallback?: (authFetchEventId: string) => Promise<string>
}

Существует запасной вариант, если он не предоставлен ( источник):

const locale = properties.locale || 'en-US';

SpeechSynthesizer

использование gender а также voiceName параметры ( источники):

export interface ICognitiveServicesSpeechSynthesisProperties {
    subscriptionKey?: string,
    gender?: SynthesisGender,
    voiceName?: string,
    fetchCallback?: (authFetchEventId: string) => Promise<string>,
    fetchOnExpiryCallback?: (authFetchEventId: string) => Promise<string>
}

Список возможных значений этих параметров приведен здесь: https://docs.microsoft.com/en-us/azure/cognitive-services/speech/api-reference-rest/bingvoiceoutput

Другие вопросы по тегам