2013-10-01 129 views
0

我最近在Google search via speech in c#上发现了一段很棒的代码,它帮助我了解如何关闭用户输入并使其成为程序可以读取的文本,并将其转化为网络搜索。我开始工作了。但是现在我想看看我能进一步做多,但在过去的几周里,我完全失去了。关于我对原文进行的一些调整,我有几个问题,这些问题都不起作用。Speech to text 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:为了输入直下式在活动窗口:

一)我缺乏的C#知识是阻碍我对这个想法向前迈进的能力。我的第一个想法就是把它当作在我的命令提示符下输入语音到文本,我可以这样做。但是,我不希望命令提示符转到活动窗口中的活动闪烁文本光标,该窗口可能是Word或任何搜索引擎。我也认为这可能与上面链接中的原始URL版本具有类似的过程。 b)使用System.Diagnostics.Process.Start显然不会工作,据我所知。我不知道用什么系统来处理这种情况。是与问题1b相同的问题。我不知道这两个过程是否是相同的过程。

我希望我能很好地回答这些问题,并感谢您的帮助!

+0

你的第一个问题,至少,在这里回答http://stackoverflow.com/questions/4987873/how-to-find-if-a-string-contains-any-项目-的-AN-列表的串。至于其他人,你应该创建一个问题的范围只针对你有问题的每个领域的实际问题(http://meta.stackexchange.com/questions/39223/one-post-with-multiple-questions-或者,多职位)。在这种情况下,我建议在进行下一个操作之前获取一个* single *个案,这里有一些基本问题,任何回答都可能不完整。 –

回答

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)

+0

注意!第一部分的答案也有帮助!谢谢! – Holden