文字转语音小软件

把文字转成语音这个功能是很常用的,如果不追求语音个性,只需要短短几行代码就可以实现。

文字转语音小软件

下载

代码,项目中引用

using System.Speech.Synthesis;

四行代码实现说话:

using (SpeechSynthesizer voice = new SpeechSynthesizer())
            {
                voice.Rate = 1;
                voice.Volume = 100;
                voice.Speak("小y设计");
            }

封装一下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Speech.Synthesis;
using System.Text;
using System.Threading.Tasks;

namespace SpeakHello
{
    public class SoundHelper
    {
        ///
        /// 默认音量[0,100]
        ///
        public static int DefaultVolume = 100;
        ///
        /// 默认音速[-10,10]
        ///
        public static int DefaultRate = 1;

        public static void Speak(string msg)
        {
            Speak(msg, DefaultRate, DefaultVolume);
        }
        ///
        /// 播报语音
        ///
        /// 内容
        /// 语速[-10,10]
        /// 音量[0,100]
        public static void Speak(string msg, int rate, int volume)
        {
            using (SpeechSynthesizer voice = new SpeechSynthesizer())
            {
                voice.Rate = rate;
                voice.Volume = volume;
                voice.Speak(msg);
            }

        }
    }
}

拓展一下:

除了默认的安娜语音外,还可以安装其他声音:Microsoft Mary,Microsoft Mike和Sample TTS Voice

speaker.SelectVoice("Microsoft Mike");

System.Speech和Microsoft.Speech是不同的,并且为了避免混淆,应该只选择其中之一。

对于System.Speech

  1. 转到设置/区域和语言/添加语言
  2. 从语言设置中,下载语音

例如 Helen 位于en_US软件包中。因此,应通过添加英语(美国)语言来下载其他语音。

对于Microsoft.Speech

  1. 从下面的链接下载语音
  2. 添加对 项目中的Microsoft.Speech DLL

可以从下面的链接下载Microsoft语音识别和文本到语音引擎数据文件;

用于Microsoft支持的语言的语音识别和文本到语音引擎 https://www.microsoft.com/en-us/download/details.aspx?id=27224

有关更多信息:
Microsoft语音编程指南
https://docs.microsoft.com/en-us/previous-versions/office/developer/speech-technologies/hh378466(v%3doffice.14)

SpeechSynthesizer.SelectVoice方法
https://docs.microsoft.com/en-us/previous-versions/office/developer/speech-technologies/dd167624(v%3Doffice.14)

System.Speech.Synthesis命名空间
https://docs.microsoft.com/en-us/dotnet/api/system.speech.synthesis?view=netframework-4.7.2

Original: https://www.cnblogs.com/tuyile006/p/15840859.html
Author: 小y
Title: 文字转语音小软件

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/547097/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 好物合集(2)

    Utools(超好用的插件软件) 是什么 uTools 是一个极简、插件化的现代桌面软件,通过自由选配丰富的插件,打造得心应手的工具集合。 通过快捷键(默认 alt + space…

    技术杂谈 2023年7月11日
    088
  • YUV / RGB 格式及快速转换算法

    1 前言 自然界的颜色千变万化,为了给颜色一个量化的衡量标准,就需要建立色彩空间模型来描述各种各样的颜色,由于人对色彩的感知是一个复杂的生理和心理联合作用的过程,所以在不同的应用领…

    技术杂谈 2023年5月31日
    090
  • Java设计模式

    面向对象思想设计原则及常见的设计模式 设计原则: 单一职责原则:高内据低耦合 开闭原则:一个对象对扩展开放,对修改关闭 里氏替换原则:在任何父类出现的地方都可以用它的子类来替换;也…

    技术杂谈 2023年6月21日
    074
  • Spring-cloud-alibaba-nacos(配置中心)快速入门(二)

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    技术杂谈 2023年7月25日
    078
  • 「免费开源」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之EXCEL数据导出(十三)

    基于Vue和Quasar的前端SPA项目实战之数据导出(十三) 回顾 通过之前一篇文章基于Vue和Quasar的前端SPA项目实战之数据导入(九)的介绍,通过配置的方式可以零代码实…

    技术杂谈 2023年7月24日
    076
  • windows下安装node.js及环境配置、部署项目【转】

    回到顶部 一、操作步骤 ①下载node.js ②安装配置环境变量 ③部署项目启动访问 回到顶部 二、详细步骤 1、选择对应系统下载:https://nodejs.org/en/do…

    技术杂谈 2023年5月31日
    089
  • sql注入

    pypolaris posted on2021-06-03 22:19 Go_Forward 阅读(25 ) 评论() 编辑 Original: https://www.cnblo…

    技术杂谈 2023年7月11日
    081
  • SpringSecurity 自定义表单登录

    SpringSecurity 自定义表单登录 本篇主要讲解 在SpringSecurity中 如何 自定义表单登录 , SpringSecurity默认提供了一个表单登录,但是实际…

    技术杂谈 2023年7月11日
    068
  • Linux 添加大于2TB磁盘扩容逻辑卷

    一、查看新添加磁盘以及分区情况 # lsblk 二、使用parted进行分区 # parted /dev/sdb // /dev/sdb 为上面查看到的新添加未分区的磁盘 (par…

    技术杂谈 2023年7月24日
    055
  • CRISPR Screening的应用

    2023年05月03日 参考: CRISPR Screen 操作解析:Nature 高分文章你也可以写 MAGeCK: 一款高效的CRISPR/Cas9 screen数据分析工具 …

    技术杂谈 2023年5月31日
    090
  • 堆栈

    目录: 9、【剑指Offer学习】【面试题09:用两个栈实现队列】 30、【剑指Offer学习】【面试题30:包含min函数的栈】 31、【剑指Offer学习】【面试题31:栈的压…

    技术杂谈 2023年6月21日
    095
  • 在 WinForms 上使用 async/await 访问 Task.Run 中的 UI 控件

    示例代码: 带放弃功能时: 初始化它并将cts传递给 Start(): 循环中,您需要监视取消令牌:因为您使用延迟来使 ConnectAsync() 超时,所以您需要 Task.D…

    技术杂谈 2023年6月1日
    092
  • 用两行代码实现重试功能,spring-retry真是简单而优雅

    最近做的一个需求,需要调用第三方接口。正常情况下,接口的响应是符合要求的,只有在网络抖动等极少数的情况下,会存在超时情况。因为是小概率事件,所以一次超时之后,进行一次重试操作应该就…

    技术杂谈 2023年7月25日
    0115
  • redis启动报无权限

    设置一下SELINUX 关闭SElinux 查看selinux状态 [root@localhost ~]# getenforce Enforcing 表示启动 临时关闭 [root…

    技术杂谈 2023年7月25日
    096
  • 2.1插入排序

    一、概述 1、适用场景:对少量元素进行排序,当元素数量较多时,插入排序的效率低 2、算法过程的描述:现有n个无序的数,依次将第1,2,3……n个数插入到有序…

    技术杂谈 2023年7月10日
    076
  • 类的动态装载java

    类的动态装载 首先,我们要明白类加载的过程,再来区分静态加载和动态加载,类加载的过程,本质上就是将类文件,从硬盘读取到内存中的过程,而静态加载是在编译时加载,动态加载是在程序运行时…

    技术杂谈 2023年7月23日
    070
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球