C#SelectVoice不会在Windows应用程序中更改,但会在控制台中更改

科尔顿·瓦格纳

因此,我试图为System.Speech.Synthesis库更改C#中的声音。当我在控制台模式下尝试代码时,它将为我工作。但是,当我在Windows应用程序上工作时,它不会改变声音,同时不会出错。这是Windows应用程序的代码,该代码可用于语音更改之外。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using System.Speech.Synthesis;
using System.Speech.Recognition;

namespace JarvisRev1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.button1.Click += new EventHandler(button1_Click);
            this.button2.Click += new EventHandler(button2_Click);
            this.button3.Click += new EventHandler(button3_Click);

            foreach (InstalledVoice voice in sSynth.GetInstalledVoices())
            {
                cbVoice.Items.Add(voice.VoiceInfo.Name);
            }
        }

        SpeechSynthesizer sSynth = new SpeechSynthesizer();
        PromptBuilder pBuilder = new PromptBuilder();
        SpeechRecognitionEngine sRecognize = new SpeechRecognitionEngine();


        private void button1_Click(object sender, EventArgs e)
        {
            pBuilder.ClearContent();
            pBuilder.AppendText(textBox1.Text);
            sSynth.SelectVoice("IVONA 2 Brian");
            sSynth.SpeakAsync(pBuilder);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            button2.Enabled = false;
            button3.Enabled = true;
            Choices sList = new Choices();
            sList.Add(new string[] { "hello", "test", "it works", "how", "are", "you", "today", "i", "am", "fine", "exit", "close", "quit", "so", "hello how are you" });
            Grammar gr = new Grammar(new GrammarBuilder(sList));
            try
            {
                sRecognize.RequestRecognizerUpdate();
                sRecognize.LoadGrammar(gr);
                sRecognize.SpeechRecognized += sRecognize_SpeechRecognized;
                sRecognize.SetInputToDefaultAudioDevice();
                sRecognize.RecognizeAsync(RecognizeMode.Multiple);
                sRecognize.Recognize();
            }

            catch
            {
                return;
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            sRecognize.RecognizeAsyncStop();
            button2.Enabled = true;
            button3.Enabled = false;
        }

        private void sRecognize_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
        {


            if (e.Result.Text == "exit")
            {
                Application.Exit();
            }
            else
            {
                textBox1.Text = textBox1.Text + " " + e.Result.Text.ToString();
            }

        }

    }
}

这是在控制台模式下对我有用的代码。

using System;
using System.Speech.Synthesis;  // Add reference to System.Speech

class Program
{
    static void Main(string[] args)
    {
        var synth = new SpeechSynthesizer();
        synth.SelectVoice("IVONA 2 Brian");
        synth.SpeakAsync("For you Sir, Always.");
        foreach (var voice in synth.GetInstalledVoices())
        {
            Console.WriteLine(voice.VoiceInfo.Name);
        }
        Console.ReadLine();
    }
}
达克斯博士

当系统中有Microsoft Irina Desktop语音可用时,也会出现相同的问题。在提示中明确设置语音的解决方法,例如:

using System.Speech.Synthesis;

var synth=new SpeechSynthesizer();
var builder=new PromptBuilder();
builder.StartVoice("Microsoft David Desktop");
builder.AppendText("Hello, World!");
builder.EndVoice();
synth.SpeakAsync(new Prompt(builder));

当您已经使用PromptBuilder时,请尝试在文本周围添加StartVoiceEndVoice调用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails:系统进程不会在Rails服务器中启动,但会在Rails控制台中启动

来自分类Dev

在 Heroku 中更改 ENV 变量不会在 Phoenix 应用程序中更改它们

来自分类Dev

Javascript/Jquery 不会在 Safari 中更改 URL 参数,但会在 Chrome 中更改

来自分类Dev

ListView 项不会在 onCreate 中更改其背景颜色,但会在 onItemClick 中更改

来自分类Dev

启动firefox时,它不会在应用程序中显示,但会在进程中显示

来自分类Dev

Windows 7和8设计的应用程序不会在新的Windows 10上运行,但会在Windows 10上从8升级

来自分类Dev

尽管重建,Angular 应用程序不会在更改时刷新内容

来自分类Dev

Rails:一个属性只会在控制台中更新,而不会在浏览器中更新

来自分类Dev

Symfony2“ php应用程序/控制台学说:schema:update --force”不会在表中添加列

来自分类Dev

点击应用程序图标不会在应用程序中显示通知

来自分类Dev

点击应用程序图标不会在应用程序中显示通知

来自分类Dev

window.location或window.location.href不会在所有浏览器MVC应用程序中更改值

来自分类Dev

Dart-运行项目不会加载dart文件,也不会在控制台中打印

来自分类Dev

Symfony不会在控制器上缓存更改

来自分类Dev

IOS7 Xcode 5通用应用程序不会在iphone上旋转,但会在ipad上旋转

来自分类Dev

临时更改cmd中的JAVA_HOME不会在Windows中临时更改PATH

来自分类Dev

应用程序不会在recyclerview火力显示数据

来自分类Dev

应用程序不会在调试模式下启动

来自分类Dev

仅在“发行版”模式下,onDeviceReady不会在Cordova Windows 10应用程序中触发

来自分类Dev

C#Windows应用程序访问数据库数据不会在关闭时持续存在

来自分类Dev

C#Windows应用程序访问数据库数据不会在关闭时持续存在

来自分类Dev

带有pry-byebug的断点不会在控制台中触发

来自分类Dev

在Rails控制台中写入文件不会在退出时保存

来自分类Dev

FireBug可以工作,但不会在控制台中产生结果

来自分类Dev

Function.prototype不会在控制台中显示所有内置属性和方法

来自分类Dev

.NET Winforms应用程序不会在Windows 8.1上名列前茅

来自分类Dev

C#应用程序不会在XML文档中显示最后一个属性值

来自分类Dev

后台工作人员不会在 c# WinForm 应用程序中收到 CancellationPending

来自分类Dev

rCharts不会在闪亮的应用程序中渲染图

Related 相关文章

  1. 1

    Rails:系统进程不会在Rails服务器中启动,但会在Rails控制台中启动

  2. 2

    在 Heroku 中更改 ENV 变量不会在 Phoenix 应用程序中更改它们

  3. 3

    Javascript/Jquery 不会在 Safari 中更改 URL 参数,但会在 Chrome 中更改

  4. 4

    ListView 项不会在 onCreate 中更改其背景颜色,但会在 onItemClick 中更改

  5. 5

    启动firefox时,它不会在应用程序中显示,但会在进程中显示

  6. 6

    Windows 7和8设计的应用程序不会在新的Windows 10上运行,但会在Windows 10上从8升级

  7. 7

    尽管重建,Angular 应用程序不会在更改时刷新内容

  8. 8

    Rails:一个属性只会在控制台中更新,而不会在浏览器中更新

  9. 9

    Symfony2“ php应用程序/控制台学说:schema:update --force”不会在表中添加列

  10. 10

    点击应用程序图标不会在应用程序中显示通知

  11. 11

    点击应用程序图标不会在应用程序中显示通知

  12. 12

    window.location或window.location.href不会在所有浏览器MVC应用程序中更改值

  13. 13

    Dart-运行项目不会加载dart文件,也不会在控制台中打印

  14. 14

    Symfony不会在控制器上缓存更改

  15. 15

    IOS7 Xcode 5通用应用程序不会在iphone上旋转,但会在ipad上旋转

  16. 16

    临时更改cmd中的JAVA_HOME不会在Windows中临时更改PATH

  17. 17

    应用程序不会在recyclerview火力显示数据

  18. 18

    应用程序不会在调试模式下启动

  19. 19

    仅在“发行版”模式下,onDeviceReady不会在Cordova Windows 10应用程序中触发

  20. 20

    C#Windows应用程序访问数据库数据不会在关闭时持续存在

  21. 21

    C#Windows应用程序访问数据库数据不会在关闭时持续存在

  22. 22

    带有pry-byebug的断点不会在控制台中触发

  23. 23

    在Rails控制台中写入文件不会在退出时保存

  24. 24

    FireBug可以工作,但不会在控制台中产生结果

  25. 25

    Function.prototype不会在控制台中显示所有内置属性和方法

  26. 26

    .NET Winforms应用程序不会在Windows 8.1上名列前茅

  27. 27

    C#应用程序不会在XML文档中显示最后一个属性值

  28. 28

    后台工作人员不会在 c# WinForm 应用程序中收到 CancellationPending

  29. 29

    rCharts不会在闪亮的应用程序中渲染图

热门标签

归档