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

    } 

  • 相关阅读:
    kotlin入门
    android 组件化、插件化、热更新
    hadoop的心跳回忆
    [转] 支持向量机SVM的理解
    HDFS的block Id与generation stamp
    【Z】awk中使用shell的环境变量
    ceph相关
    华为手机C8812连不上豌豆荚等手机助手——解决方法
    【亲测】fatal error C1010: unexpected end of file while looking for precompiled head
    JOI Open 中一些没有题解的题的简要题解
  • 原文地址:https://www.cnblogs.com/sydeveloper/p/3107090.html
Copyright © 2011-2022 走看看