c# 语音

原文连接:http://blog.sina.com.cn/s/blog_6cf3e9940100pqq5.html

项目添加引用:Microsoft Speech Object Libray
下面这个例子可以播放指定音频文件,而且还可以读字符串:

/// <summary>

        /// 播放声音文件

        /// </summary>

        /// <param name="FileName">文件全名</param>

        public void PlaySound(string FileName)

        {//要加载COM组件:Microsoft speech object Library

            if (!System.IO.File.Exists(FileName))

            {

                return;

            }

            SpeechLib.SpVoiceClass pp = new SpeechLib.SpVoiceClass();

 

            SpeechLib.SpFileStreamClass spFs = new SpeechLib.SpFileStreamClass();

 

            spFs.Open(FileName, SpeechLib.SpeechStreamFileMode.SSFMOpenForRead, true);

            SpeechLib.ISpeechBaseStream Istream = spFs as SpeechLib.ISpeechBaseStream;

            pp.SpeakStream(Istream, SpeechLib.SpeechVoiceSpeakFlags.SVSFIsFilename);

            spFs.Close();

        }

以上文章来源:百度空间#记住的忘记的#http://hi.baidu.com/jackeyrain/blog/item/12251e3fa8acb9c47d1e7188.html

 

下面来细分下SpVoice类,属性,方法,事件

属性:

    'AlertBoundary' 分隔类型,当属性没有同,发生的事情便没有同

    'AllowAudioOutputFormatChangesOnNextSet 容许用户能否能调整音频格局

    'AudioOutputStream 通功当属性取得由对于象SpFileStream翻开的白件数据淌,然后通功speak方式朗诵进去

    'EventInterests 取AlertBoundary相似,用来产惹事件的类型

    'Priority 优先权

    'Rate 朗读快度

    'Voice 声响类型

    'Volume 声响大小

方法:

    GetVoices 到得声响类型

    'Speak 开端朗诵

    'Pause 暂停

    'Resume 自暂停处开端朗读

    'Skip 跳功若做双词或者句子

    'SpeakStream 朗读白件数据淌

    'WaitUntilDone 延迟必定时光,双位为毫秒

事件:

    'Word 每读完一个双词即发生一次当事情

    'VoiceChange 声音转变便产生

    'Phoneme 每个音位产生

    'EndStream 朗诵完毕后发生

speech.Rate = 5;

speech.Volume = 100;

speech.Voice = speech.GetVoices(string.Empty, string.Empty).Item(3);  //取得系统声音类型

private void SpeechSpeak(string SpeakString)

{

speech.Speak(SpeakString, SpeechVoiceSpeakFlags.SVSFlagsAsync);

 }

 

SpVoiceClass详解

属性

描述

AlertBoundary

取得或设置停顿分界线。

AllowAudioOutputFormatChangesOnNextSet

设置是否允许声音自动调整到合适状态以适应其音频输出。

AudioOutput

.取得或设置当前声音使用的的音频输出对象

AudioOutputStream

取得或设置当前声音使用的的音频输出流对象。

EventInterests

取得或设置当前声音返回的事件类型。

Priority

取得或设置声音的优先级。

Rate

取得或设置阅读的速度。

Status

返回一个ISpeechVoiceStatus 对象用于显示当前阅读和事件的状态

SynchronousSpeakTimeout

取得或设置一个时间间隔,用于标识多久未获得一个输出设备后,一个同步的Speak SpeakStream将终止,以毫秒计算。

Voice

取得或设置发音对象。

Volume

取得或设置声音的大小 

 

方法

描述

DisplayUI

是否在控制面板中展示详细设置。

GetAudioOutputs

返回一个可用的音频输出标记。

GetVoices

返回一个可用的发音对象。

IsUISupported

决定是否能通过控制棉板的音频设置来控制。

Pause

暂停朗读。.

Resume

恢复暂停,继续播放。

Skip

在当前输入的文本流中向前或向后跳一定距离再播放。

Speak

阅读一个字符串。

SpeakCompleteEvent

得到一个朗读完毕的时间句柄

SpeakStream

朗读一个文本流或一个声音文件。

WaitUntilDone

阻塞进程,直到声音播放完毕或者超时。

原文地址:https://www.cnblogs.com/chengjunwei/p/3406755.html