C#生成音频文件以及转换成需要的格式
来源:互联网 发布:python cuda 安装 编辑:程序博客网 时间:2024/06/13 12:16
花了三天才做出来这么个小东西,其中碰到了好多意向不到的问题与难题,直接看代码吧还是。其中需要DotNetSpeech.dll(生成因文件)和lame_enc.dll(用于音频格式的转换)两个类库,还需要一个lame.exe运行程序,这个也是为了音频格式的转换。刚开始写,写的可能有点乱,但是这些代码都是完全可以运行的,如有不合适的地方,谢谢各位大神的指导!我把用到的几个类库都打包了,有需要的可以下载,谢谢!
/// 生成声音文件
/// 要朗读的文本
/// 生成声音文件的路径
/// 生成声音文件的名称
private void CreateFile(string text, string filePath, string fileName)
{
if (!Directory.Exists(filePath))
Directory.CreateDirectory(filePath);
SpVoice sv = new SpVoice();
SpeechVoiceSpeakFlags SVSF = SpeechVoiceSpeakFlags.SVSFlagsAsync;
SpeechStreamFileMode SSFM = SpeechStreamFileMode.SSFMCreateForWrite;
SpFileStream SFS = new SpFileStream();
sv.Rate = -5;
//删除已经存在的音频文件
if (File.Exists(filePath + fileName))
{
File.Delete(filePath + fileName);
}
//生成音频文件,用于唱标
SFS.Open(filePath + fileName, SSFM, false);
sv.AudioOutputStream = SFS;
sv.Speak(text, SVSF);
sv.WaitUntilDone(System.Threading.Timeout.Infinite);
SFS.Close();
//将wav格式的音频文件转换为mp3格式
string outfile = "-b 32 --resample 22.05 -m m \"" + filePath + fileName + "\" \"" + filePath + fileName.Replace(".wav", ".mp3") + "\"";
System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
psi.FileName = Server.MapPath("./SingOpenBidInfo/") + "lame.exe";
psi.Arguments = outfile;
psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Minimized;
System.Diagnostics.Process p = System.Diagnostics.Process.Start(psi);
//p.Exited = new EventHandler()
p.WaitForExit();
p.EnableRaisingEvents = true;
//删除已经存在的音频文件
if (File.Exists(filePath + fileName))
{
File.Delete(filePath + fileName);
}
}
调用的方法如下;
{
//生成音频文件
//绝对路劲
CreateFile(context, "C:/SingOpenBidInfo/", "lrh.wav");
//相对路径
CreateFile(context, Server.MapPath("./SingOpenBidInfo/"), bidPackageID + ".wav");
}
- C#生成音频文件以及转换成需要的格式
- MP3音频文件转换成caf格式
- 音频文件格式转换
- C#中GUID的生成以及格式
- SpriteBuilder中音频文件格式的需要注意的地方
- wave格式音频文件采样率转换
- caffe均值文件的生成以及npy格式的转换
- 用C#来播放.wav格式的音频文件
- 用C#来播放.wav格式的音频文件
- Android开发 使用Lame把音频文件转换成mp3格式
- Android开发 使用Lame把音频文件转换成mp3格式
- wav格式音频文件转换为Mp3格式
- C#中英文语音朗读及文字转换成音频文件
- 常见音频文件格式的特点。
- 字符串之转换成需要的日期格式
- mahout处理路透社语料步骤,转换成需要的格式
- C#中日期型数据和长整型数据之间的转换,以及格式字串转换
- 音频文件的优化以及处理
- Android开发之简单的聊天室(客户端与服务器进行通信)
- eclipse调试java程序的九个技巧
- 使用ab对nginx进行压力测试
- Java____序列化private static final long serialVersionUID的作用
- 微信企业号开发:微信考勤2如何计算距离
- C#生成音频文件以及转换成需要的格式
- ruby1.8.7/rails2.3.11--启动报错"undefined method `source_index' for Gem:Module (NoMethodError)"
- Intent应用示例
- SVD奇异值分解
- Cent Os 7 下 nginx安装与配置
- ionic 项目分享【转】
- iOS应用程序生命周期(前后台切换,应用的各种状态)详解
- Linux: 学习如何制作RPM包, SPEC文件如何编写
- C语言课程设计之招生管理系统