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();

} 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM