首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拼音到语音

拼音到语音
EN

Stack Overflow用户
提问于 2011-05-25 18:13:35
回答 6查看 3K关注 0票数 14

我的目的是能够让我的应用程序使用不太流行的语言(例如,福建话、马来语等)。我目前的方法是使用录制的mp3。

我想知道是否有.net或任何平台的‘语音字符到语音’的引擎?

这里的拼音字符就像纸质词典中的拼音词条。有什么想法吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-05-31 04:38:44

下面是VB.NET代码:

代码语言:javascript
复制
'create the object. This object will store your phonetic 'characters'
Dim PBuilder As New System.Speech.Synthesis.PromptBuilder

'add your phonetic 'characters' here. Just ignore the first parameter.
'The second parameter is your phonetic 'characters'
PBuilder.AppendTextWithPronunciation("test", "riːdɪŋ")

'now create a speaker to speak your phonetic 'characters'
Dim SpeechSynthesizer2 As New System.Speech.Synthesis.SpeechSynthesizer

'now actually speaking. It will speak 'reading'
SpeechSynthesizer2.Speak(PBuilder)

下面是转换后的C#代码:

代码语言:javascript
复制
//create the object. This object will store your phonetic 'characters'
System.Speech.Synthesis.PromptBuilder PBuilder = new System.Speech.Synthesis.PromptBuilder();

//add your phonetic 'characters' here. Just ignore the first parameter.
//The second parameter is your phonetic 'characters'
PBuilder.AppendTextWithPronunciation("test", "riːdɪŋ");

//now create a speaker to speak your phonetic 'characters'
System.Speech.Synthesis.SpeechSynthesizer SpeechSynthesizer2 = new System.Speech.Synthesis.SpeechSynthesizer();

//now actually speaking. It will speak 'reading'
SpeechSynthesizer2.Speak(PBuilder);
票数 8
EN

Stack Overflow用户

发布于 2011-05-25 18:19:54

你需要的是一个大词汇量的TTS引擎。微软有一个speech SDK,可以让你在输入的时候说出其他东西,还有Windows SAPI (Speech API --不确定SDK和API是不是一回事)。我知道他们的英语有男声和女声,但可能没有其他语言,如马来语(那里可能还没有太大的市场)。你可能想看看Festival Project at CMU。他们通常有很多不同语言的声音,但一些不太知名的声音可能没有英语的声音那么好。

进一步更新:

查看MBROLA site。这是一个开源项目,用于开发多语言的大型单词TTS引擎,它们也有一个马来语扩展。不过,我不知道它有多好。我尝试了一下印地语版本,觉得还有很多工作要做。

另外,请查看BabelFish site。他们有很多免费的TTS引擎的链接,这些引擎应该对马来语有一些支持。

更新3:我不知道这是否适合您的目的,但如果应用程序必须说出的文本很低,那么您也可以尝试在limited vocabulary上使用concatenative speech synthesis。用马来语(或任何其他语言)记录句子片段,并将程序的输出传递到您自己的有限单词tts引擎,您可以在其中创建输出。一个例子可能是(用英语):“是最有价值的球员。”在这里,"was the most valuable“变成了一个片段,而"Player X”可以随意更改。这个,如果它能满足你的目的,应该能很好地工作。

票数 10
EN

Stack Overflow用户

发布于 2011-05-25 18:19:04

您看过System.Speech名称空间吗?

尤其是System.Speech.SynthesisSystem.Speech.Synthesis.TtsEngine名称空间。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6122797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档