.net实现简单语音朗读(TTS)功能

这篇具有很好参考价值的文章主要介绍了.net实现简单语音朗读(TTS)功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先,添加DotNetSpeech.dll引用,可以在这里直接下载,也可以参照这篇文章说的,在安装Speech SDK以后,在Common Files\Microsoft Shared\Speech\目录下面找到SAPI.dll,用Tlbimp.exe工具将该dll转换成.net平台下的Assembly---DotNetSpeech.dll。

然后,using DotNetSpeech;

朗读功能:

using DotNetSpeech;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Speech.Synthesis;
using System.Speech;

namespace MyProject
{
    public class ValuesController : ApiController
    {
        public SpeechSynthesizer synth; //语音合成对象

         GET api/<controller>
        //public IEnumerable<string> Get()
        //{
        //    return new string[] { "value1", "value2" };
        //}

         GET api/<controller>/5
        //public string Get(string cont)
        //{
        //    return cont;
        //}

         POST api/<controller>
        //public void Post([FromBody] string value)
        //{
        //}

         PUT api/<controller>/5
        //public void Put(int id, [FromBody] string value)
        //{
        //}

         DELETE api/<controller>/5
        //public void Delete(int id)
        //{
        //}

        //[HttpPost]
        [HttpGet]
        public string ToCall(string cont)
        {
            //调用示例:http://192.168.6.195:8081/api/values/ToCall?cont=请,刘笑笑,李秀秀,导医台领结果吧
            //https://localhost:44399/api/values/ToCall?cont=请,刘笑笑,李秀秀,导医台领结果吧


            //SpeechVoiceSpeakFlags flags = SpeechVoiceSpeakFlags.SVSFlagsAsync;
            //SpVoice sp = new SpVoice();
            sp.Voice = sp.GetVoices(" name=Microsoft Simplified Chinese ", "").Item(0);
            //sp.Voice = sp.GetVoices(string.Empty, string.Empty).Item(0); //0选择默认的语音,
            //sp.Rate = 0;//语速
            //sp.Volume = 100;//音量
            //sp.Speak(cont, flags);

            synth = new SpeechSynthesizer();
            //使用 synth 设置朗读音量 [范围 0 ~ 100]
            synth.Volume = 100;
            //使用 synth 设置朗读频率 [范围 -10 ~ 10]
            synth.Rate = 0;


            synth.SelectVoice(synth.GetInstalledVoices()[0].VoiceInfo.Name);
            //synth.SelectVoice("Microsoft Lili");
            //Voice.Speak(ggg, SpFlags);
            synth.SpeakAsync(cont);




            return "12345";

        }


        [HttpGet]
        public string GetAll()
        {
            return "Success";
        }



    }
}

注:SpeechVoiceSpeakFlags是语音朗读的风格; Voice中是语音类型(语言、男(女)声),有 Microsoft Simplified Chinese,Microsoft Mary(Sam,Mike)等,

也可以这样:voice.Voice = voice.GetVoices(string.Empty, string.Empty).Item(0); //0选择默认的语音,
1选择第二个语音;Rate指的是语速。

当然,你也可以在此不写,打开控制面板中的语音设置类型和语速

生成语音文件:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Speech.Synthesis;
using System.Collections.ObjectModel;
using System.Web.Configuration;
using DotNetSpeech;
using Microsoft.Win32;
using System.Windows.Forms;
using System.Threading;


            SpeechVoiceSpeakFlags flags = SpeechVoiceSpeakFlags.SVSFlagsAsync;
            SpVoice sp = new SpVoice();
            //sp.Voice = sp.GetVoices(" name=Microsoft Simplified Chinese ", "").Item(0);
            sp.Voice = sp.GetVoices(string.Empty, string.Empty).Item(0); //0选择默认的语音,
            sp.Rate = 0;//语速
            sp.Speak(strCont, flags);

            System.Windows.Forms.SaveFileDialog dialog = new System.Windows.Forms.SaveFileDialog();
            dialog.Filter = " All files (*.*)|*.*|wav files (*.wav)|*.wav ";
            dialog.Title = " Save to a wave file ";
            dialog.FilterIndex = 2;
            dialog.RestoreDirectory = true;
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                SpeechStreamFileMode spFileMode = SpeechStreamFileMode.SSFMCreateForWrite;
                SpFileStream spFileStream = new SpFileStream();
                spFileStream.Open(dialog.FileName, spFileMode, false);
                sp.AudioOutputStream = spFileStream;
                sp.Speak("文字转语音的内容", flags);
                sp.WaitUntilDone(Timeout.Infinite);
                spFileStream.Close();
            }

(在WinForm和Web中都适用)

参考:http://www.microsoft.com/china/community/program/originalarticles/TechDoc/Cnspeech.mspx

        使用语音即时校对输入内容 - 斯克迪亚 - 博客园

转载于:https://www.cnblogs.com/pfs1314/archive/2011/01/11/1932870.html文章来源地址https://www.toymoban.com/news/detail-466871.html

到了这里,关于.net实现简单语音朗读(TTS)功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • springboot整合vosk实现简单的语音识别功能

    Vosk是开源的语音识别工具包。Vosk支持的事情包括: 支持十九种语言 - 中文,英语,印度英语,德语,法语,西班牙语,葡萄牙语,俄语,土耳其语,越南语,意大利语,荷兰人,加泰罗尼亚语,阿拉伯, 希腊语, 波斯语, 菲律宾语,乌克兰语, 哈萨克语。 移动设备上脱机工作

    2024年02月09日
    浏览(42)
  • uni-app/vue 文字转语音朗读(附小程序语音识别和朗读)uniapp小程序使用文字转语音播报类似支付宝收款播报小程序语音识别和朗读)

    uni-app/vue 文字转语音朗读(小程序语音识别和朗读) 一、第一种方式:直接加语音包 固定的文本 先利用工具生成了 文本语音mp3文件,放入项目中,直接用就好了 这里用到的工具:知意配音 链接地址:https://peiyin.wozhiyi.com/newproduction.html 接下来,代码部分。 在min.js文件里加

    2024年02月07日
    浏览(63)
  • uni-app/vue 文字转语音朗读(附小程序语音识别和朗读)

        语音播报的实现的方法有很多种,我这里介绍集中不引用百度、阿里或者迅飞的API的实现方式。 一、采用new SpeechSynthesisUtterance的方式 废话不多说直接上代码 方法的结束事件 二、采用speak-tts插件的方式 1、安装speak-tts 2.使用 三、微信小程序可以采用微信提供的插件 1、添

    2024年02月16日
    浏览(100)
  • 微软(TTS)文本转语音服务API实现

    此博客实现与java实现微软文本转语音(TTS)经验总结_java tts_${简简单单}的博客-CSDN博客之上,首先感谢博客源码的提供,本人在上面添加了一些详细的注释,方便大家跟好的理解和使用,毕竟我已经用原文调试了一下午才调通,一些细节的问题给大家标注出来,免得浪费大家

    2024年02月07日
    浏览(53)
  • 【离线文本转语音文件】java spring boot jacob实现文字转语音文件,离线文本转化语音,中英文生成语音,文字朗读,中文生成声音,文字生成声音文件,文字转语音文件,文字变声音。

    输入文字(支持中英文),点击转换生成***.wav文件,点击下载到本地就可。  生成后的音频文件播放,时长1分8秒          这次采用jacob实现,相比百度AI需要联网,本项目定位内网环境实现。所以最终采jacob。 1.环境配置: 本次采用版本jacob-1.19,我们需要下载jacob.jar和dll

    2024年02月16日
    浏览(85)
  • Unity C# 之 Azure 微软SSML语音合成TTS流式获取音频数据以及表情嘴型 Animation 的简单整理

    目录 Unity C# 之 Azure 微软SSML语音合成TTS流式获取音频数据以及表情嘴型 Animation 的简单整理 一、简单介绍 二、实现原理 三、注意事项 四、实现步骤 五、关键代码 Unity 工具类,自己整理的一些游戏开发可能用到的模块,单独独立使用,方便游戏开发。 本节介绍,这里在使用

    2024年02月12日
    浏览(57)
  • 4个步骤实现Java版的TTS(文字转语音)

    TTS是Text To Speech的缩写,即“从文本到语音”,让机器能够说话。 微软自带TTS(Text To Speech) 语音引擎,可以将文本转换成语音播报。 现在通过Java程序(jacob包),利用Windows自带的TTS实现语言的播报。 详细步骤如下: 下载jacob jar包和dll文件 将dll放置到相应的文件目录中 将

    2024年02月07日
    浏览(65)
  • vue使用WEB自带TTS实现语音文字互转

    时隔多日,自己已经好久没更新文章了;今年一直跟随公司的政策[BEI YA ZHA]中,做了一个又一个的需求,反而没有多少自己的时间,更别说突破自己 ˚‧º·(˚ ˃̣̣̥᷄⌓˂̣̣̥᷅ )‧º·˚ (雾) 然后最近,我朋友突然和我说有没有做过TTS,我第一反应是??? ʕ •ᴥ•ʔ…… 一

    2024年02月04日
    浏览(49)
  • Python调用edge-tts实现在线文字转语音

    edge-tts是一个 Python 模块,允许通过Python代码或命令的方式使用 Microsoft Edge 的在线文本转语音服务。 GitHub - rany2/edge-tts: Use Microsoft Edge\\\'s online text-to-speech service from Python WITHOUT needing Microsoft Edge or Windows or an API key Use Microsoft Edge\\\'s online text-to-speech service from Python WITHOUT needing Micro

    2024年03月27日
    浏览(58)
  • 谷歌Bard更新:支持中文提问和语音朗读

    ChatGPT不断更新功能,从GPT-3到3.5,再到GPT-4,甚至最新的plus版已经支持图像处理和图表生成,而谷歌Bard却自从推出后就一直很安静,没有什么大动作。眼见被ChatGPT、Claude甚至是文心一言抢去了风头,自然心有不甘。 7月13日,谷歌Bard终于放出了大招,推实验版Bard Experiment, 并

    2024年02月16日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包