如何解决尝试使用 System.Speech
SpeechSynthesizer s = new SpeechSynthesizer();
SpeechRecognitionEngine sr = new SpeechRecognitionEngine();
PromptBuilder pb = new PromptBuilder();
private void Form1_Load(object sender,EventArgs e)
{
s.Volume = 50;
s.SelectVoiceByHints(VoiceGender.Female,VoiceAge.Teen);
Choices list = new Choices();
list.Add(File.ReadAllLines(@"D:\Blue\commands.txt"));
//Add a file path here
Grammar gm = new Grammar(new GrammarBuilder(list));
try
{
sr.RequestRecognizerUpdate();
sr.LoadGrammar(gm);
sr.SpeechRecognized += Sr_SpeechRecognized;
sr.SetInputToDefaultAudioDevice();
sr.RecognizeAsync(RecognizeMode.Multiple);
}
catch
{
return;
}
Say("Welcome back sir. How can I help you today?");
}
public void Say(string phrase)
{
s.SpeakAsync(phrase);
}
private void Sr_SpeechRecognized(object sender,SpeechRecognizedEventArgs e)
{
string speechSaid = e.Result.Text;
switch (speechSaid)
{
case ("open chrome"):
Say("opening chrome!");
Process.Start(@"C:\Program Files\Google\Chrome\Application\chrome.exe","--profile-directory=\"Profile 4\"");
break;
}
所以我决定尝试制作自己的语音助手。在网上找到了一个教程,它帮助我了解如何使用 System.Speech 发出基本的语音命令,现在我想添加一个大多数助手都有的功能......谷歌搜索。我希望能够说 google x,然后应用将打开 https://www.google.com/search?q=x 寻找我所说的内容。
你们能帮我写代码吗?我曾经有一个使用 SpeechRecognition API 用 js 制作的语音助手,但有一些限制。设法让 google 命令使用此代码:
args = rawText.trim().split(/ +/);
command = args.shift().toLowerCase();
msg = args.join(" ");
switch(command) {
case "google":
window.open(`http://google.com/search?q=${msg.replace("search","")}`,"_blank");
return `I found some information for ${msg}`; break;
现在我正在尝试用 C# 做同样的事情,但我是 C# 编程的新手
编辑 1:如果有办法让语音助手语音识别我说的每个单词,也有兴趣删除语法部分。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。