最近要实现一个功能:根据配置文件输入字发出对应的提示音
实现的代码只有一行
private string l_strSoundWord;
l_strSoundWord = ReadIni("配置","音字");
WordToSound.WordToSoundFun(l_strSoundWord);
WordToSound代码如下:
using System;
using SpeechLib;
public class WordToSound
{
public static void WordToSoundFun(string strWord)
{
try
{
SpVoice spVoice = new SpVoiceClass();
spVoice.Rate = 1;
spVoice.Volume = 100;
spVoice.Voice = spVoice.GetVoices().Item(0);
spVoice.Speak(strWord);
}
catch (Exception)
{
}
}
}
SpeechLib是从网上下载的 Interop.SpeechLib.dll
除了SpVoice,这个动态链接库有很多的方法。这里仅了解一下SpVoice
下面转载链接 https://www.cnblogs.com/Theladyflower/p/4212550.html 的部分内容:
SpVoice类是支持语音合成(TTS)的核心类。通过SpVoice对象调用TTS引擎,从而实现朗读功能。
SpVoice类有以下主要属性:
Voice:表示发音类型,相当于进行朗读的人,包括Microsoft Mary,Microsoft Mike,Microsoft Sam和Microsoft Simplified Chinese四种。其中前三种只能读英文,最后一种可以读中文,也可以读英文,但对于英文单词只能将其包括的各个字母逐一朗读出来。下面的程序中我们将会想办法解决这个问题。
Rate:语音朗读速度,取值范围为-10到+10。数值越大,速度越快。
Volume:音量,取值范围为0到100。数值越大,音量越大。
SpVoice有以下主要方法:
Speak:完成将文本信息转换为语音并按照指定的参数进行朗读,该方法有Text和Flags两个参数,分别指定要朗读的文本和朗读方式(同步或异步等)。
Pause:暂停使用该对象的所有朗读进程。该方法没有参数。
Resume:恢复该对象所对应的被暂停的朗读进程。该方法没有参数。
网上查到spVoice.GetVoices()返回一个集合,0是汉字,1234都是英文
关于这个SDK中文编程文档[链接] :https://wenku.baidu.com/view/ef15ec77cb50ad02de80d4d8d15abe23482f03a3.html(https://wenku.baidu.com/view/ef15ec77cb50ad02de80d4d8d15abe23482f03a3.html)