winform语音播报
第一步:
在Nut中引用:
第二步:
创建一个窗体,在文本框中输入文字,点击按钮将文本框的内容语音播放出来
点击按钮
private void button1_Click(object sender, EventArgs e){new Lisen().Tts(richTextBox1.Text);}
public class Lisen{private readonly Asr _asrClient;private readonly Tts _ttsClient;//App ID: 7948081 //API Key: 1G4dOtYNSCud03x5CKM77grtCPTky2z4 //Secret Key: vluE1PUsviXuoXgNaADUKgfO7kl402YG public Lisen() {_asrClient = new Asr("7948081","1G4dOtYNSCud03x5CKM77grtCPTky2z4", "vluE1PUsviXuoXgNaADUKgfO7kl402YG");_ttsClient = new Tts("1G4dOtYNSCud03x5CKM77grtCPTky2z4", "vluE1PUsviXuoXgNaADUKgfO7kl402YG");}// 识别本地文件 //public void AsrData() //{ // var data = File.ReadAllBytes("语音pcm文件地址");// var result = _asrClient.Recognize(data, "pcm", 16000); // Console.Write(result); //} // 识别URL中的语音文件 //public void AsrUrl() //{ // var result = _asrClient.Recoginze( // "http://xxx.com/待识别的pcm文件地址", // "http://xxx.com/识别结果回调地址", // "pcm", // 16000); // Console.WriteLine(result); //} ///List<string> listdata = new List<string>(); // <summary> // 语音文件的生成 // </summary> /// <param name="str">需要生成的语音字符</param> /// <returns></returns> public string Tts(string str){lock (this){string pathwave = @"D:\3.mp3";// 可选参数 var option = new Dictionary<string, object>(){{ "spd", 5}, // 语速 { "vol", 10}, // 音量 { "per", 0} // 发音人,4:情感度丫丫童声 };var result = _ttsClient.Synthesis(str, option);if (result.ErrorCode == 0) // 或 result.Success { File.WriteAllBytes(pathwave, result.Data);var mp3FileName = pathwave;var outputFileName = mp3FileName.Substring(0, mp3FileName.Length - 3) + "wav";Mp3ToWav(mp3FileName, outputFileName);//mp3转wav文件 SoundPlayer player = new SoundPlayer();//进行语音文件播放 player.SoundLocation = outputFileName;player.Load(); //同步加载声音 player.Play(); //启用新线程播放 }return "";}}/// MP3文件转WAV/// </summary>/// <param name="mp3File">MP3文件路径</param>/// <param name="outputFile">WAV文件输出目录</param>public static string Mp3ToWav(string mp3File, string outputFile){using (Mp3FileReader reader = new Mp3FileReader(mp3File)){var newFormat = new WaveFormat(8000, 8, 1); // 8kHz, 8bit using (var conversionStream = new WaveFormatConversionStream(newFormat, reader)){WaveFileWriter.CreateWaveFile(outputFile, conversionStream);}return outputFile;}}public static string Convert2Wav(string filePath){string directoryName = Path.GetDirectoryName(filePath); string fileName = Path.GetFileName(filePath); string tempDir = directoryName + "\\temp" + DateTime.Now.ToString("yyyyMMddHHmmss") + "\\"; if (!Directory.Exists(tempDir)) { Directory.CreateDirectory(tempDir); }if (filePath.EndsWith(".wav", StringComparison.CurrentCultureIgnoreCase)){using (var reader = new WaveFileReader(filePath)){var newFormat = new WaveFormat(8000, 8, 1); // 8kHz, 8bit using (var conversionStream = new WaveFormatConversionStream(newFormat, reader)){WaveFileWriter.CreateWaveFile(tempDir + fileName, conversionStream);}}}else if (filePath.EndsWith(".mp3", StringComparison.CurrentCultureIgnoreCase)){using (Mp3FileReader reader = new Mp3FileReader(filePath)){var newFormat = new WaveFormat(8000, 8, 1); // 8kHz, 8bit using (var conversionStream = new WaveFormatConversionStream(newFormat, reader)){WaveFileWriter.CreateWaveFile(tempDir + fileName, conversionStream);}}}return tempDir + fileName;}}
winform语音播报相关推荐
- python androidhelper 语音识字_Android语音播报、后台播报、语音识别
Android语音播报.后台播报.语音识别 本文介绍使用讯飞语音实现语音播报.语音识别功能. 程序效果图: 简单的XML布局 xml version="1.0" encoding= ...
- android 语音自动播报,Android 语音播报实现
文章主要讲的是以前做项目时实现的来短信或来电话时语音播报的功能实现,记录下来做个总结. 1.实现语音播报的关键 -- 语音播报工具类(TtsUtil.java) 为了方便 文章主要讲的是以前做项目时实 ...
- Xamarin Essentials教程语音播报TextToSpeech
Xamarin Essentials教程语音播报TextToSpeech 语音播报是一种将文本信息转化为音频信息的技术.使用该技术,开发者可以让用户不用盯着屏幕,就可以获取到信息.例如,支付宝为商家提 ...
- Android自带语音播报+讯飞语音播报封装(直接用)
一.Android自带的语音播报 1.查看是否支持中文,在测试的设备中打开'设置' -->找到 '语言和输入法'-->查看语音选项,是否支持中文,默认仅支持英文. 使用如下: public ...
- python语音播报库-基于python GUI开发的点名小程序(语音播报)
#实现名单轮播.点名.语音播报功能 # -*- coding:utf8 -*- # # -------------------------------------------------------- ...
- python语音播报-Python实现有道翻译+语音播报
有道翻译 调用有道翻译的接口(用谷歌浏览器打开有道翻译-开发者-开发者工具-查找接口)话不多说上代码 def main(): word = input('请输入翻译的内容:') url = 'http ...
- 实现百度地图导航Demo的语音播报功能
上文中实现了在本地导入百度地图导航Demo,那么在此基础上如何实现导航的语音播报呢? 一.为该应用申请语音播报(也叫注册) http://developer.baidu.com/map/index.p ...
- TTS语音播报程序部署与配置
本功能已经在Windows7,Windows8.1,Windows10上测试过,其他版本操作系统未进行过测试. 1. 下载程序包 [32位]下载地址:http://pan.baidu.com/s/1i ...
- js实现语音播报功能
想让页面能说话?很简单的哟~ 定义语音播报的函数 function speckText(str){ //var request= new URLRequest(); var url = "h ...
最新文章
- 匹夫细说C#:委托的简化语法,聊聊匿名方法和闭包
- python music21将音符转为mid格式音乐
- python小结价格_036 Python进阶小结
- 初学Java对某些问题的理解
- 我们处理了10亿个Java记录的错误-这是导致97%的错误的原因
- hihoCoder挑战赛16 A—— 王胖浩与三角形
- PhpStrom 配置Xdebug
- mysql给root开启远程访问权限
- ERROR 1045 (28000): Access denied for user 'backup'@'mysql' (using password: YES)
- Java异常的正确使用姿势
- 2020-12-05
- 【数据预测】基于matlab灰狼算法优化LSSVM数据预测【含Matlab源码 433期】
- pringboot+校园健身互助平台 毕业设计-附源码221540S
- java opts参数_JVM内存JAVA_OPTS参数说明
- 如何解决Word文件打不开呢?几个简单的步骤
- cadence allegro - 四层板设置 ……F
- Ubuntu18.04 安装搭建 hadoop-3.3.0 集群
- SpringCache-redis缓存学习记录
- 必备干货,程序员进阶升级全攻略!
- luogu2485 [SDOI2011]计算器 poj3243 Clever Y BSGS算法