音频文件变成html文档,C#生成音频文件以及转换成需要的格式

花了三天才做出来这么个小东西,其中碰到了好多意向不到的问题与难题,直接看代码吧还是。其中需要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");

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值