我最近在Google search via speech in c#找到了一段很棒的代码,帮助我了解如何转换用户输入并使其成为程序可以读取的文本并将其转换为网络搜索。我开始工作了。但现在我想看看我能走得多远,但在过去的几周里,我已经完全迷失了。关于我对原版进行的一些调整,我有一些问题,这些调整不起作用。
default;
if (speech.ToLower().Contains("play song", "playlist", "play"))
{
string songName = speech.Replace(' ', ' ');
songName = speech.Replace(' ', ' ');
songName = System.Diagnostics.Process.Start(songName);
string song = @"C:file location of song" + songName;
System.Diagnostics.Process.Start(songName);
}
if (speech.ToLower().Contains("type"))
{
string wantedText = speech.Replace(' ', ' ');
wantedText = speech.Replace(' ', ' ');
wantedText = System.Diagnostics.Process.Start(wantedText);
string song = wantedText;
System.Diagnostics.Process.Start(wantedText);
}
break;
1:为了播放一首歌:
a)(“播放歌曲”,“播放列表”,“播放”)发出错误,表示“方法'不包含'包含'需要3个参数”。如何为此文本代码或将来的任何语音代码制作三个或更多参数?
b)据我所知,使用System.Diagnostics.Process.Start显然不会起作用。我不知道在这种情况下使用什么系统。
2:为了在活动窗口中输入直接类型:
a)我缺乏c#知识阻碍了我推进这个想法的能力。我的第一个想法就是把它当作我在命令提示符上输入语音来对待它,我可以这样做。但是,我希望它转到活动窗口中的活动闪烁文本光标,而不是命令提示符,可以是Word或任何搜索引擎。我也认为这可能与上面链接中的原始URL版本类似。
b)据我所知,使用System.Diagnostics.Process.Start显然不会起作用。我不知道在这种情况下使用什么系统。与问题1b相同的问题。我不知道两者的过程是否相同。
我希望我能很好地提出这些问题,谢谢你的帮助!
答案 0 :(得分:2)
你应该避免在一个问题中提出多个问题,因为它会让人感到困惑。
1a)Contains
检查字符串是否包含在另一个字符串中。如果你想检查多个字符串,你需要多次调用它:
var lower = speech.ToLower();
if (lower.Contains("play song") || lower.Contains("playlist") || lower.Contains("play"))
{ ... }
现在在这个特定的情况下,您应该知道最后一个条件也满足前两个条件,因此您可以将条件缩短为:
if (speech.ToLower().Contains("play"))
这也将涵盖其他两种情况(因为“播放列表”和“播放歌曲”都包含字符串“play”)。
1b)您需要启动音乐播放器并将歌曲名称作为参数传递。您可以尝试启动资源管理器并将歌曲名称作为参数传递。我认为资源管理器会自动启动与扩展程序相关的程序(如果存在这样的关联)。
2a)这不是一个真正的问题。 SO旨在帮助解决有关编程的特定问题。您应该首先尝试找出您想要做的事情,然后尝试实施它并回过头来提出具体问题。
2b)见1b)