C# 语音技术

1、使用DotNetSpeech.dll。

/// <summary>

///  朗读
///   </summary>
///   <param name="text"> 要朗读的文本 </param>
private   void  Read( string  text)
{
    SpVoice sv =  new  SpVoice();
    sv.Rate =  0 ; // 设置朗读速度
    SpeechVoiceSpeakFlags SSF = SpeechVoiceSpeakFlags.SVSFlagsAsync;
    sv.Speak(text, SSF);
}
///   <summary>
///  生成声音文件
///   </summary>
///   <param name="text"> 要朗读的文本 </param>
///   <param name="filePath"> 生成声音文件的路径 </param>
///   <param name="fileName"> 生成声音文件的名称 </param>
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();
    SFS.Open(filePath+fileName, SSFM,  false );
    sv.AudioOutputStream = SFS;
    sv.Speak(text, SVSF);
    sv.WaitUntilDone(System.Threading.Timeout.Infinite);
    SFS.Close();
}

2、 使用System.Speech

SpeechSynthesizer ss =  new  SpeechSynthesizer();
// 播放
if  (ss !=  null )
{
    ss.Dispose();
    ss.SpeakAsync( " 朗读的文本 " );
}
// 暂停
if  (ss.State == SynthesizerState.Speaking)
{
    ss.Pause();
}
// 继续
if  (reader.State == SynthesizerState.Paused)
{
    ss.Resume();
}
// 停止
if  (ss !=  null )
{
    ss.Dispose();

} 

转载于:https://www.cnblogs.com/sydeveloper/archive/2013/05/29/3107090.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值