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

    } 

  • 相关阅读:
    ES查询直方图聚合区间结果min越界问题
    yarn命令操作
    Hve on Spark left join的hashTable问题
    基于HUE可视化的大数据权限管理
    Android 制作圆角阴影的卡片
    Android 解决问题“Failed to resolve: com.android.support:design:26.1.0”
    Android 修改虚拟键栏背景颜色
    ArrayList的传值问题
    swift 网络请求中含有特殊字符的解决方案
    Android适配器
  • 原文地址:https://www.cnblogs.com/sydeveloper/p/3107090.html
Copyright © 2011-2022 走看看