应用Neospeech_Lily文字转语音的开发

最近在摸索C#文字转语音播报的应用开发,给后来者留点记录,也加强自己的记忆。

转载自:Neospeech_Lily语音应用开发_princelintb的专栏-CSDN博客
转载自:C# 导入speech lib,阅读文本信息,support text to speech - 婧秋-fool - 博客园

提前放上vm lily语音库的下载链接,哥就不要你们的分了。

链接: https://pan.baidu.com/s/11hOYTjDhGoXN6SGlujgaIA 提取码: kpjg

文本转语音开发操作说明

一、采用目前最标准的中文语音库Neospeech_Lily,结合Window的语音引擎,使用Interop.SpeechLib进行文本转语音处理,

      实现语音的播放功能.

二、安装Neospeech_Lily语音库,默认安装,目录不允许有中文字符,安装完毕后可以获得语音的测试例子:

三、 在Window系统中,默认语音引擎设置为VM Lily。控制面板---语音识别---文本到语言转换---语音选择,

      选择VM Lily,并设定好语速:

四、 代码中进行Window语音引擎的调用,程序中调用Interop.SpeechLib.dll,代码中进行函数调用。(这一段prince_lintb他讲的不是很清楚,我摸到了一些坑,一直下载不到SpeechLib.dll,直到看到婧秋-fool也就是第二链接才豁然开朗,特么的原来该引用的名称是从com那里查找speech,然后引用“microsoft speech object library”这个才对。这样在引用命名空间using SpeechLib;就不会出问题了。

以下是代码实现了,有什么进展我接着更新。

using SpeechLib;

try

  {

          SpeechVoiceSpeakFlags SpFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync;

          SpVoice speech = new SpVoice();

          speech.Speak(“播放的文本”, SpFlags);

   }

 catch

   {

          MessageBox.Show("Speak error");

   }
 

 2021年11月17日更新

由于之前VM lily的语音效果并不是很满意,后续我还参考

C# 分别使用Microsoft Speech 和 科大讯飞离线合成语音_yh1393369的博客-CSDN博客

这篇博客里实现的方法,分别实现了科大讯飞和使用他介绍的windows自带的语音版本慧慧,huihui效果确实比lily好一些,能实现一些呼叫姓名的重音字。科大讯飞的语音质量很好,毕竟的专业的,但是讯飞离线语音库因需要转换成MP3文件后再播放,所以会有5s的延迟,这是不符合我想实现即时响应的效果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于PHP实现微软TTS(TextToSpeech)的需求,可以借助微软提供的Speech SDK来实现。首先,需要安装Speech SDK并获取API密钥,然后可以使用以下代码示例来实现TTS功能: ```php <?php require 'vendor/autoload.php'; // 引入Speech SDK的PHP库 use Microsoft\CognitiveServices\Speech\SpeechConfig; use Microsoft\CognitiveServices\Speech\SpeechSynthesizer; use Microsoft\CognitiveServices\Speech\Audio\AudioConfig; // 设置Speech服务的订阅密钥和区域(根据实际情况修改) $speechKey = 'YOUR_SPEECH_KEY'; $serviceRegion = 'YOUR_SERVICE_REGION'; // 创建Speech配置 $speechConfig = SpeechConfig::fromSubscription($speechKey, $serviceRegion); // 创建音频配置 $audioConfig = AudioConfig::fromDefaultSpeakerOutput(); // 创建Speech合成器 $speechSynthesizer = new SpeechSynthesizer($speechConfig, $audioConfig); // 文本合成为语音 $textToSynthesize = '需要合成的文本内容'; $result = $speechSynthesizer->speakTextAsync($textToSynthesize)->waitFor(); // 检查合成结果 if ($result->reason === ResultReason::SynthesizingAudioCompleted) { // 获取合成的音频数据 $audioData = $result->audioData; // 处理音频数据,例如保存为文件或播放等 } else { // 合成失败,处理错误信息 $errorDetails = $result->errorDetails; // 处理错误信息 } ?> ``` 以上代码使用Speech SDK提供的PHP库来实现TTS功能。首先,需要设置Speech服务的订阅密钥和区域。然后,创建Speech配置和音频配置,并使用它们创建Speech合成器。最后,通过调用`speakTextAsync`方法并传入需要合成的文本内容来进行文本合成为语音。合成的音频数据可以通过`$result->audioData`获取,可以根据需要进行处理,例如保存为文件或进行播放等。如果合成失败,可以通过`$result->errorDetails`获取错误信息进行处理。 请注意替换代码中的`YOUR_SPEECH_KEY`和`YOUR_SERVICE_REGION`为您的实际订阅密钥和区域。 希望以上信息对您有帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [微软TTS,Neospeech TTS 简单使用](https://blog.csdn.net/weixin_39541693/article/details/119695949)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [文字语音 - 搭建微软tts整合web服务提供api接口(免费)](https://blog.csdn.net/wkh___/article/details/130274523)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值