如何在 bot 中更改 bing 语音的语言

Posted

技术标签:

【中文标题】如何在 bot 中更改 bing 语音的语言【英文标题】:How can I change language on bing speech in bot 【发布时间】:2018-01-24 12:28:53 【问题描述】:

我在 botframeowrk 中使用 bing 语音,如下所示:

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)

语音识别器

有一个可选的locale参数可以像传递subscriptionKey一样传递,见sources:

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

如果没有提供,则有一个后备 (source):

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

语音合成器

使用gendervoiceName参数(sources):

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#SupLocales

【讨论】:

以上是关于如何在 bot 中更改 bing 语音的语言的主要内容,如果未能解决你的问题,请参考以下文章

在使用 Bot Framework 时,如何将 Skype 音频附件与 Bing Speech API 一起使用?

使用 Bot Framework 代表用户发送消息

如何在基于Bot framewok v4构建的团队聊天机器人中启用语音功能

Discord bot:如何在语音频道中播放 mp3 文件

如何将实时语音添加到 Microsoft bot 框架的文本数据(正是 google 语音所做的)

如何将RASA基本文本bot转换为Rasa基本语音机器人