zoukankan      html  css  js  c++  java
  • 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();

    } 

  • 相关阅读:
    JOIN条件限制对结果记录的影响
    什么是linux?
    什么是操作系统?
    Internship settled!
    Python dict 调试技巧 —— 利用YAML存储dict内容
    c++ 异常处理
    C#可空类型
    C# 异常处理
    C#值类型与引用类型
    C# 类类型
  • 原文地址:https://www.cnblogs.com/sydeveloper/p/3107090.html
Copyright © 2011-2022 走看看