C#文字转语音,实时播放以及mp3,wav文件保存
源码下载地址:https://download.csdn.net/download/horseroll/10500847
无积分付费下载地址:https://download.csdn.net/download/HorseRoll/21113297
调用方法:
new SpeechDemo().Tts("要播放的内容");
调用后直接播放参数内容,mp3文件和wav默认保存在D盘,在方法中可以进行路径更改
封装的SpeechDemo类
using System;
using System.Collections.Generic;
using System.IO;
using Baidu.Aip.Speech;
using System.Web;
using NAudio.Wave;
using System.Media;namespace 读取语音
{public class SpeechDemo{private readonly Asr _asrClient;private readonly Tts _ttsClient;//App ID: 7948081//API Key: 1G4dOtYNSCud03x5CKM77grtCPTky2z4//Secret Key: vluE1PUsviXuoXgNaADUKgfO7kl402YGpublic SpeechDemo(){_asrClient = new Asr("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{// System.Web.HttpApplication.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 "";}}/// <summary>/// MP3文件转WAV/// </summary>/// <param name="mp3File">MP3文件路径</param>/// <param name="outputFile">WAV文件输出目录</param>/// <returns></returns>public static string Mp3ToWav(string mp3File, string outputFile){using (Mp3FileReader reader = new Mp3FileReader(mp3File)){var newFormat = new WaveFormat(8000, 8, 1); // 8kHz, 8bitusing (var conversionStream = new WaveFormatConversionStream(newFormat, reader)){WaveFileWriter.CreateWaveFile(outputFile, conversionStream);}return outputFile;}}/// <summary>/// 将.mp3或者其他.wav文件转为16kHz,16bit的.wav(by NAudio)/// </summary>/// <param name="filePath">转换前音频文件的路径</param>/// <returns>转换后音频文件的路径</returns>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, 8bitusing (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, 8bitusing (var conversionStream = new WaveFormatConversionStream(newFormat, reader)){WaveFileWriter.CreateWaveFile(tempDir + fileName, conversionStream);}}}return tempDir + fileName;}}
}
C#文字转语音,实时播放以及mp3,wav文件保存相关推荐
- 文字转语音+html5,JS实现文字转语音并播放
html: div> audio> div> js: function doTTS() { var ttsDiv = document.getElementById('bdtts_d ...
- 微信小程序文字转语音并播放
深知像我这种小白对不懂得绝望,希望可以帮助到别人,本文步骤较为详细 在微信小程序中,识别语音转文字或者文字转语音,可以使用官方自带的插件:微信同声传译插件 使用方法: 第一步:首先登录微信公众平台,找 ...
- 爬取清风网vvvdj.com播放的mp3到文件
爬取清风网播放mp3到文件 #coding=utf-8 import contextlib import os import tempfile import requests from urllib ...
- 使用C#播放MP3/WAV文件的四种方式
第一种:使用C#自带的SoundPlayer view plaincopy to clipboardprint? using System.Media; SoundPlayer sound = new ...
- 在XNA 3.0 项目添加声音——通过Xact播放简单的.wav文件
问题 你想在游戏中播放声音. 注意:Zune不支持Xact,所以参见教程7-1和7-2学习如何在Zune上播放声音. 解决方案 通过使用Xact,一个XNA Game Studio 3.0自带的免费工 ...
- mui使用百度语音合成来制作文字转语音来播放
百度语音合成中有对应的webapi可以使用,这个相对比较简单,废话不多说直接上代码吧.代码比较简单,老规矩不懂的在下方评论留言,觉得好就点个赞,转发请注明出处:https://blog.csdn.ne ...
- Linux Ubuntu 使用play命令播放音乐 mp3 wav 等文件
1.打开一个终端(Ctrl+Alt+T),然后输入如下命令:sudo apt-get install sox 2,通过下面的命令来让 SOX 可以播放它所支持的音频格式文件:sudo apt-get ...
- Ubuntu播放音乐 mp3 wav
1.打开一个终端(Ctrl+Alt+T),然后输入如下命令: sudo apt-get install sox 2.通过下面的命令来让 SOX 可以播放它所支持的音频格式文件: sudo apt-ge ...
- 微信小程序 - 音乐列表点击播放 / 暂停音频,流畅切换音频(支持暂停音乐后,保留音乐 “进度“ 继续播放)最好用最详细的源码示例教程,适用于wechat列表点击后播放 mp3 wav 文件的需求
前言 网上的教程代码太臃肿且有 BUG,一行注释都没有很难读懂和改造示例. 本文提供一个干净整洁的代码示例,实现了 点击列表时,播放.暂停.切换音频,暂停时保留 "进度" 继续播放 ...
最新文章
- 计算机网络和机器视觉,一文读懂计算机视觉和机器人视觉
- LeNet试验(一) 搭建pytorch版模型及运行
- html(3)标签(2)
- 推荐系统中的Embedding
- Python教你迅速成为蚂蚁森林排行榜第一名
- 用vuejs如何实现ajax,vue.js如何实现ajax
- centos 7 开放指定端口
- 计算机考试题目czt,8级计算机组成原理本科期末试题a带答案(史岚).docx
- 团队作业7——第二次项目冲刺(Beta版本)
- 黑客帝国屏幕保护设置
- JSEclipse安装后无法打开js文件_火狐浏览器打开邮箱添加不了附件
- 河南财经政法大学计算机基础,河南财经政法大学就“忘开必修课”情况说明
- 使用Windows Server Backup备份与还原Hyper-V虚拟机
- kafka中的核心概念
- Echarts设置y轴值间隔
- HI3516D之Caffe移植
- 三大特性看明白中国电影市场
- 表示所有字符的正则表达式html,JavaScript正则表达式介绍
- hdfs回收站的开启
- IPv6 地址获取方式及工具