【发布时间】:2018-09-06 05:58:11
【问题描述】:
我先说我是 C# 编程的新手。我正在开发一个使用 C# 结合 SAPI v5.4 (speechlib) 以编程方式修改 Windows 语音词典的应用程序。到目前为止一切都运行良好,但我需要更深入地了解字符串在合成(发声)时是如何解释的。
我的理解是,在 SAPI 5.4 中,单词被分解为 phoneme representations,并且我在使用音素正确“训练”单词发音方面取得了一些成功。我还知道我可以手动将单词添加到 Windows 语音识别词典中,提供录音,然后提取单词的发音(音素)……但这很麻烦。探索默认情况下如何合成单词也很有用,即在没有我输入的情况下(例如合成器如何解释“海豚”?)。
从编码的角度来看,这是我目前所得到的:
using System;
using System.Speech.Synthesis;
namespace SpeechTest
{
class Program
{
static void Main(string[] args)
{
// Set up the speech synthesizer
SpeechSynthesizer synthesizer = new SpeechSynthesizer();
synthesizer.Volume = 100;
synthesizer.Rate = -2;
// Configure the audio output
synthesizer.SetOutputToDefaultAudioDevice();
// Initialize string to store word of interest (not in the speech dictionary)
string myWord = "dolphins";
// Speak the word of interest
synthesizer.Speak(myWord);
// Retrieve pronunciation of myWord
string myPronunciation = // *some code here*
Console.WriteLine("Press any key to exit...");
Console.ReadLine();
}
}
}
【问题讨论】:
标签: c# text-to-speech microsoft-speech-api