C# 如何在直达频道中创建be语言bot
我正在directline频道中使用bot框架创建一个bot。 我已经创建了两个机器人,一个用英语,一个用法语,但我的想法是只创建一个机器人,并根据用户的不同调用dialog englishluis和frenchluis 我的机器人也在使用语音识别 这是我的法语直达电话代码:C# 如何在直达频道中创建be语言bot,c#,html,botframework,speech-recognition,direct-line-botframework,C#,Html,Botframework,Speech Recognition,Direct Line Botframework,我正在directline频道中使用bot框架创建一个bot。 我已经创建了两个机器人,一个用英语,一个用法语,但我的想法是只创建一个机器人,并根据用户的不同调用dialog englishluis和frenchluis 我的机器人也在使用语音识别 这是我的法语直达电话代码: <!DOCTYPE html> <html> <head> <link href="https://cdn.botframework.com/botframework- w
<!DOCTYPE html>
<html>
<head>
<link href="https://cdn.botframework.com/botframework-
webchat/latest/botchat.css" rel="stylesheet" />
</head>
<body>
<div id="bot" />
<script src="https://cdn.botframework.com/botframework-
webchat/latest/botchat.js"></script>
<script src="https://cdn.botframework.com/botframework-
webchat/latest/CognitiveServices.js"></script>
<script>
var speechOptions = {
speechRecognizer: new CognitiveServices.SpeechRecognizer(
{ locale: 'fr-fr', subscriptionKey:
'xxxxxxx' }),
speechSynthesizer: new CognitiveServices.SpeechSynthesizer(
{
subscriptionKey: 'xxxxxxxxxxx',
gender: CognitiveServices.SynthesisGender.Female,
voiceName: 'Microsoft Server Speech Text to Speech Voice (fr-FR,
HortenseRUS)'
})
}
var botConnection = new BotChat.DirectLine({
// secret:
"yF0xxxxxxxxxxxxxxM",
secret: "yBxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
webSocket: true ,
});
BotChat.App({
speechOptions: speechOptions,
botConnection: botConnection,
user: {
id: 'userid',
name: 'User',
},
bot: { id: 'botid' },
resize: 'detect',
locale: 'fr-FR'
},
document.getElementById("bot"));
function postHelp() {
botConnection
.postActivity({
from: { id: 'userid', name: 'User' },
name: 'postHelp',
type: 'message',
text: 'help'
})
.subscribe(function(id) {
console.log('"postHelp" sent');
});
};
function welcome() {
botConnection
.postActivity({
from: { id: 'userid', name: 'User' },
name: 'welcome',
type: 'event',
value: 'help'
})
.subscribe(function (id) {
console.log('"welcome" sent');
});
}
</script>
</body>
</html>
var语音选项={
speechRecognizer:新的认知服务。speechRecognizer(
{locale:'fr fr',subscriptionKey:
“xxxxxxx”}),
speechSynthesizer:新的认知服务。speechSynthesizer(
{
订阅密钥:“XXXXXXXXXX”,
性别:认知服务。综合性别。女性,
voiceName:'Microsoft服务器语音文本到语音(fr,
HortenseRUS)'
})
}
var botConnection=new BotChat.DirectLine({
//秘密:
“yf0xxxxxxxxxxxx”,
秘密:“YBxxxxxxxxxxxxxxxxxxxxxxxxxxxx”,
webSocket:没错,
});
BotChat.App({
语音提示:语音提示,
botConnection:botConnection,
用户:{
id:'用户id',
名称:“用户”,
},
bot:{id:'botid'},
调整大小:“检测”,
区域设置:“fr”
},
文档.getElementById(“bot”);
函数postHelp(){
僵尸连接
1.后期活动({
发件人:{id:'userid',name:'User'},
名称:“postHelp”,
键入:“消息”,
文本:“帮助”
})
.订阅(功能(id){
log('postHelp“sent');
});
};
函数欢迎(){
僵尸连接
1.后期活动({
发件人:{id:'userid',name:'User'},
姓名:'欢迎',
键入:“事件”,
价值:“帮助”
})
.订阅(功能(id){
log('welcome'sent');
});
}
如何创建一个函数来检测messagecontroller.cs中的语言,或者如果您有任何其他想法,请帮助我
先谢谢你
directline.html的新代码
<!DOCTYPE html>
<html>
<head>
<link href="https://cdn.botframework.com/botframework-
webchat/latest/botchat.css" rel="stylesheet" />
</head>
<div id="bot" />
<script src="https://cdn.botframework.com/botframework-
webchat/latest/botchat.js"></script>
<script src="https://cdn.botframework.com/botframework-
webchat/latest/CognitiveServices.js"></script>
<script>
var speechOptions = {
speechRecognizer: new CognitiveServices.SpeechRecognizer(
{ locale: String.localrec, subscriptionKey:
'xxxxxxxxxxxxx' }),
speechSynthesizer: new CognitiveServices.SpeechSynthesizer(
{
subscriptionKey: 'xxxxxxxxxxxxxxxx',
gender: CognitiveServices.SynthesisGender.Female,
// voiceName: 'Microsoft Server Speech Text to Speech Voice (fr-
FR, HortenseRUS)'
voiceName: String.localevoice
})
}
var botConnection = new BotChat.DirectLine({
// secret: "yxxxxxxxxxxxxxxxM",
secret: "yxxxxxxxxxxxxxxxxxxx",
webSocket: true ,
});
BotChat.App({
speechOptions: speechOptions,
botConnection: botConnection,
user: {
id: 'userid',
name: 'User',
},
bot: { id: 'botid' },
resize: 'detect',
locale: String.localed
},
document.getElementById("bot"));
function postHelp() {
botConnection
.postActivity({
from: { id: 'userid', name: 'User' },
name: 'postHelp',
type: 'message',
text: 'help'
})
.subscribe(function(id) {
console.log('"postHelp" sent');
});
};
function welcome() {
botConnection
.postActivity({
from: { id: 'userid', name: 'User' },
name: 'welcome',
type: 'event',
value: 'help'
})
.subscribe(function (id) {
console.log('"welcome" sent');
});
}
var getFirstBrowserLanguage = function () {
var nav = window.navigator,
browserLanguagePropertyKeys = ['language', 'browserLanguage',
'systemLanguage', 'userLanguage'],
i,
language;
// support for HTML 5.1 "navigator.languages"
if (Array.isArray(nav.languages)) {
for (i = 0; i < nav.languages.length; i++) {
language = nav.languages[i];
if (language && language.length) {
return language;
}
}
}
// support for other well known properties in browsers
for (i = 0; i < browserLanguagePropertyKeys.length; i++) {
language = nav[browserLanguagePropertyKeys[i]];
if (language && language.length) {
return language;
}
}
return null;
};
console.log(getFirstBrowserLanguage());
let localed = "";
if ((navigator.languages != undefined) || (navigator.languages == "fr") ||
getFirstBrowserLanguage() =="fr")
String.localed = 'fr-fr';
else
String.localed = 'en-US';
let localrec = "";
if ((navigator.languages != undefined) || (navigator.languages == "fr") ||
getFirstBrowserLanguage() =="fr")
String.localrec = 'fr-fr';
else
String.localrec = null;
function getVoice(localevoice) {
if (locale.startsWith('fr'))
return 'Microsoft Server Speech Text to Speech Voice (fr-FR,
HortenseRUS)';
else
return 'Microsoft Server Speech Text to Speech Voice (en-US, ZiraRUS)';
}
let localevoice = "";
if ((navigator.languages != undefined) || (navigator.languages == "fr") ||
(getFirstBrowserLanguage() =="fr") || (navigator.languages[0] == "fr") ||
(navigator.language == "fr") || (navigator.userLanguage == "fr" ))// IE
<= 10
String.localevoice = 'Microsoft Server Speech Text to Speech Voice (fr-
FR, HortenseRUS)';
else
String.localevoice = 'Microsoft Server Speech Text to Speech Voice (en-
US,
ZiraRUS)';
</script>
</body>
</html>
var语音选项={
speechRecognizer:新的认知服务。speechRecognizer(
{locale:String.localrec,subscriptionKey:
“XXXXXXXXXXXX”}),
speechSynthesizer:新的认知服务。speechSynthesizer(
{
订阅密钥:“XXXXXXXXXXXXXX”,
性别:认知服务。综合性别。女性,
//voiceName:'Microsoft服务器语音文本到语音(fr-
霍特塞罗斯神父“
voiceName:String.localevoice
})
}
var botConnection=new BotChat.DirectLine({
//秘密:“YXXXXXXXXXXXXXXXXM”,
秘密:“yxxxxxxxxxxxx”,
webSocket:没错,
});
BotChat.App({
语音提示:语音提示,
botConnection:botConnection,
用户:{
id:'用户id',
名称:“用户”,
},
bot:{id:'botid'},
调整大小:“检测”,
语言环境:String.localed
},
文档.getElementById(“bot”);
函数postHelp(){
僵尸连接
1.后期活动({
发件人:{id:'userid',name:'User'},
名称:“postHelp”,
键入:“消息”,
文本:“帮助”
})
.订阅(功能(id){
log('postHelp“sent');
});
};
函数欢迎(){
僵尸连接
1.后期活动({
发件人:{id:'userid',name:'User'},
姓名:'欢迎',
键入:“事件”,
价值:“帮助”
})
.订阅(功能(id){
log('welcome'sent');
});
}
var getFirstBrowserLanguage=函数(){
var nav=window.navigator,
browserLanguagePropertyKeys=[“语言”,“browserLanguage”,
“系统语言”、“用户语言”],
我
语言;
//支持HTML5.1“navigator.languages”
if(Array.isArray(导航语言)){
对于(i=0;i 您可以在消息控制器中检查活动的.Locale属性,并基于该属性加载不同的对话框:
if (activity.Locale.StartsWith("fr"))
await Conversation.SendAsync(activity, () => new FrenchLuisDialog());
else
await Conversation.SendAsync(activity, () => new EnglishLuisDialog());
在承载webchat控件的页面中,从导航器中检索区域设置,并使用它设置语音识别器,选择语音,并为BotChat设置区域设置。应用程序:
<script>
function getVoice(locale) {
if (locale.startsWith('fr'))
return 'Microsoft Server Speech Text to Speech Voice (fr-FR, HortenseRUS)';
else
return 'Microsoft Server Speech Text to Speech Voice (en-US, ZiraRUS)';
}
let locale = "";
if (navigator.languages != undefined)
locale = navigator.languages[0];
else
locale = navigator.language;
var speechOptions = {
speechRecognizer: new CognitiveServices.SpeechRecognizer(
{locale: locale, subscriptionKey:'xxxxxxx' }),
speechSynthesizer: new CognitiveServices.SpeechSynthesizer(
{
subscriptionKey: 'xxxxxxxxxxx',
gender: CognitiveServices.SynthesisGender.Female,
voiceName: getVoice(locale)
})
}
var botConnection = new BotChat.DirectLine({
secret: "yBxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
webSocket: true ,
});
BotChat.App({
speechOptions: speechOptions,
botConnection: botConnection,
user: {
id: 'userid',
name: 'User',
},
bot: { id: 'botid' },
resize: 'detect',
locale: locale
},
document.getElementById("bot"));
函数getVoice(语言环境){
if(locale.startsWith('fr'))
返回“Microsoft服务器语音文本到语音(fr,HortenseRUS)”;
其他的
返回“Microsoft服务器语音文本到语音语音(en-US,ZiraRUS)”;
}
让locale=“”;
if(navigator.languages!=未定义)
locale=navigator.languages[0];
其他的
locale=navigator.language;
var语音选项={