Как изменить язык в прямой линии для голосового ввода? C# - PullRequest
0 голосов
/ 26 мая 2020

Привет, поэтому язык по умолчанию - английский sh, и я хочу перейти на немецкий. В настоящее время я использую вариант 3, но он все еще не работает. Что случилось?

<script
> src="https://cdn.botframework.com/botframework-webchat/latest/CognitiveServices.js"></script>
> <script>
>     const params = BotChat.queryParams(location.search);
>     const user = {
>         id: params['userid'] || 'userid',
>         name: params['username'] || 'username'
>     };
> 
>     const bot = {
>         id: params['botid'] || 'botid',
>         name: params['botname'] || 'botname'
>     };
> 
>     window.botchatDebug = params['debug'] && params['debug'] === 'true';
>     
>     const speechOptions =
>  
>       speechRecognizer: new CognitiveServices.SpeechRecognizer({ SpeechRecognitionLanguage: 'de-de', subscriptionKey: 'xxxxx' }),
>         speechSynthesizer: new CognitiveServices.SpeechSynthesizer({
>         locale: 'de-de',
>         gender: CognitiveServices.SynthesisGender.Female,
>         subscriptionKey: 'xxxxxxx',
>         voiceName: 'Microsoft Server Speech Text to Speech Voice (de-DE, KatjaNeural)'
>       })
>     };
>     BotChat.App({
>         bot: bot,
>         locale: params['de-DE'],
>         resize: 'detect',
> 
>         speechOptions: speechOptions,
>         user: user,
> 
>         directLine: {
>             domain: params['domain'],
>             secret: params['s'],
>             token: params['t'],
>             webSocket: params['webSocket'] && params['webSocket'] === 'true' // defaults to true
>         }
>     }, document.getElementById('BotChatGoesHere')); </script> </body> </html>

Есть идеи или код для решения моей проблемы?

Ответы [ 2 ]

1 голос
/ 26 мая 2020

Причина, по которой это не работает, заключается в том, что в "params" нет связанного значения для чтения. На основе приведенного выше кода для параметра «params» установлено значение location.search, которое в моем случае читается как {"": "undefined"}, потому что location.search самостоятельно преобразуется в "". Кроме того, вы обрабатываете «de-DE» как переданное значение, когда на самом деле вы предоставляете ключ (которого не существует), который затем возвращает значение (которого нет).

Если вы действительно хотите использовать «params», тогда назначьте ему пару значений ключа, например, params['locale'] = 'de-DE'.

Если вы хотите для go с помощью «params», просто назначьте locale напрямую, например:

locale: params['de-DE']

to

locale: 'de-DE'.

Надеюсь на помощь !!

0 голосов
/ 12 июня 2020

Решено.

  1. Добавьте прямой речевой канал в Azure в свою речевую когнитивную службу.
  2. Добавьте параметры языка следующим образом:

    const speechOptions = {
        speechRecognizer: new CognitiveServices.SpeechRecognizer({ subscriptionKey: 'XXXXX', locale: 'de-DE' }),
        speechSynthesizer: new CognitiveServices.SpeechSynthesizer({
            gender: CognitiveServices.SynthesisGender.Female,
            subscriptionKey: 'XXXXX',
            voiceName: 'Microsoft Server Speech Text to Speech Voice (de-DE, KatjaNeutral)', location: 'de-DE'
        })
    };
    

Теперь бот слушает немецкий язык в WebChat, а также указанные выше параметры для 'de-DE'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...