现在我正在尝试使用c#创建语音识别助手(基本上是JARVIS程序)。我开始在visual studio中编写代码,一旦代码工作,我就转移到表达混合以在UI上工作。
我已成功导入图像并在循环中对其进行动画处理。那时,当我运行程序时,一切正常(包括动画和语音识别)。我的下一步是尝试"替换"通过将标准窗口设置为透明,我刚刚导入的图像的标准窗口。使用窗格,然后我将所有画笔设置为"没有画笔,"我将allowstransparency设置为" true。"当我运行程序时,动画仍然有效,但程序停止运行所有语音识别代码。
通过消除过程,我将问题分离到背景画笔和allowstransparency函数。如果我将allowstransparency设置为true或者以任何方式弄乱背景画笔,那么就不再有语音识别。
我是编码的新手,所以我能想到的唯一原因(我甚至不知道这是否是原因)是语音识别目录和功能被映射到窗口。
有没有理由说明为什么会这样?是否有解决方法?
编辑:已添加代码
public MainWindow()
{
InitializeComponent();
Loaded += MainWindow_Loaded;
}
private void MainWindow_Loaded(object sender, EventArgs e)
{
_recognizer.SetInputToDefaultAudioDevice();
_recognizer.LoadGrammar(new Grammar(new GrammarBuilder(new Choices(File.ReadAllLines(@"C:\users\username\Documents\commands.txt")))));
_recognizer.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(_recognizer_SpeechRecognized);
_recognizer.RecognizeAsync(RecognizeMode.Multiple);
}
void _recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
int ranNum = rnd.Next(1, 10);
string speech = e.Result.Text;
switch (speech)
{
//INTERACTIONS
case "hello":
......等等
答案 0 :(得分:0)
您需要完成四个步骤才能使您的窗口消失&#34;
我认为您的语音识别没有理由与Window外观相关联,但您需要发布一些代码;初始化代码,以及一些示例用法可能在诊断问题的其余部分时非常有用。
如果您需要用户点击用户界面的各个部分,您可能需要将背景设置为几乎透明的&#34;颜色,而不是纯透明的刷子。原因是;当背景纯粹是&#34;透明,&#34;它不再检测点击事件 - 它将背景视为不再存在。
您可以尝试这样的事情:
Background="#01000000"
您可能还希望保留对Task
方法调用返回的RecognizeAsync
的引用; {I}}不知道什么时候可能会无意中被垃圾收集。