TTS-零基础入门之语音模板化

上篇介绍了TTS的一个简单例子http://blog.csdn.net/u010176014/article/details/47326413

本篇咱们进一步聊聊 语音如何读模板。比如

公交车上的模板:**到了,开门请当心,下车请走好。

新生入学系统的模板:丹桂飘香共祝美好明天,金秋送爽喜迎八方学子。**同学你好,欢迎来到**大学。

本文介绍的很适用于这种情况,模板比较固定,只有个别处不一样。而且还可根据需要更换配置,轻松换模板。


我做了一个天气预报的Demo。

第一步  添加一个resx文件


属于资源文件由 XML 组成,可以加入任何资源,包括二进制。像字典一样 有Key 和Value。

然后填充内容。名称就是Key值 ,值写的包含参数。例如“观众朋友晚上好,现在是北京时间晚上[{0}],下面我们一起来关注城市天气预报。” 这里面的时间可以根据具体情况赋值。把变的东西拿出来。



 第二步 写一个类能够取出资源里的这些文字。

新建一个Resource类 。里面的代码如下。

using System.Text;
using System.Reflection;
using System.Resources;
namespace TTSSpeakDemo
{
        public sealed class Resource
        {
            #region Static part
            private const string ResourceFileName = ".SpeakTemplt";

            static Resource InternalResource = new Resource();
            /// <summary>
            /// 获取文件资源管理
            /// </summary>
            public static Resource Manager
            {
                get { return InternalResource; }
            }
            #endregion

            #region Instance part
            
            ResourceManager rm = null;

            /// <summary>
            /// Constructor
            /// 取得资源文件
            /// </summary>
            public Resource()
            {
                rm = new ResourceManager(this.GetType().Namespace + ResourceFileName, Assembly.GetExecutingAssembly());
            }

            /// <summary>
            /// 从程序集资源文件中获取指定键的消息 
            /// </summary>
            public string this[string key]
            {
                get
                {
                    return rm.GetString(key, System.Globalization.CultureInfo.CurrentUICulture);
                }
            }
            #endregion

        }
    }
 

第三步 画个界面

我做的比较简单。欢饮大家继续丰富。。

                     


 第四步  添加事件

<span style="font-family:KaiTi_GB2312;font-size:18px;">using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Media;
using SpeechLib;


namespace TTSSpeakDemo
{
    #region 语音读文本Demo-2015-8-9-MDM
   
    /// <summary>
    /// 语音读文本Demo-2015-8-7-MDM
    /// </summary>
    public partial class SpeakDemo : Form
    {
        public SpeakDemo()
        {
            InitializeComponent();//自动生成,不动
        }
        /// <summary>
        /// 发音对象
        /// </summary>
        public SpVoice voice = new SpVoice();//该类是支持语音合成(TTS)的核心类。通过SpVoice对象调用TTS引擎,从而实现朗读功能。

        public SpeechVoiceSpeakFlags spFlags = SpeechVoiceSpeakFlags.SVSFDefault;// 

        /// <summary>
        /// 通过关键字获取语音文字资源内容
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        private static string GetTextResourceByKey(string key)
        {
            return Resource.Manager[key].ToString().Trim();
        }
       
        private void btnSpeak_Click(object sender, EventArgs e)
        {
            string beginWord = GetTextResourceByKey("Begin");//根据key值获取到相应的文本
            string baoDing=GetTextResourceByKey("BaoDing");//同上

            string nowTime = DateTime.Now.ToString("r");//获取时间
            string speakWord = string.Format(beginWord, nowTime); //问候语和时间
            string weather=txtWeather.Text;
            string air=txtAir.Text;
            string speakWeather = string.Format(baoDing,weather, air);//将参数放入模板中
            voice.Speak(speakWord, spFlags);
            voice.Speak(speakWeather, spFlags);

        }

       
    } 
    #endregion
}
</span>

这样我们就能听到啦~虽然简单 但是很实用哦~

将Demo传至网盘,供大家直接看看效果。http://yunpan.cn/cdBHfJzuqZHaC  访问密码 96c9

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
模块是一个提供串口的 MP3 芯片,完美的集成了 MP3、WMV 的硬解码。同时软 件支持 TF 卡驱动,支持电脑直接更新 spi flash 的内容,支持 FAT16、FAT32 文件系统。 通过简单的串口指令即可完成播放指定的音乐,以及如何播放音乐等功能,无需繁琐的底层 操作,使用方便,稳定可靠是此款产品的最大特点。另外该芯片也是深度定制的产品,专为 固定语音播放领域开发的低成本解决方案。 1.2 功能 1、支持采样率(KHz):8/11.025/12/16/22.05/24/32/44.1/48; 2、24 位 DAC 输出,动态范围支持 90dB,信噪比支持 85dB; 3、完全支持 FAT16、FAT32 文件系统,最大支持 32G 的 TF 卡,支持 32G 的 U 盘、64M 字节 的 NORFLASH; 4、多种控制模式,并口控制模式、串口模式、AD 按键控制模式; 5、广播语插播功能,可以暂停正在播放的背景音乐; 6、音频数据按文件夹排序,最多支持 100 个文件夹,每隔文件夹可以分配 1000 首歌曲; 7、30 级音量可调,10 级 EQ 可调; 8、可以外挂 spiflash,连接电脑可以显示 spiflash 的盘符进行更新内容; 9、可以通过单片机串口进行控制播放指定的音乐; 10、在按键模式下,可以进行播放模式选择:可打断,不可打断,单曲循环,大循环; 可打断:就是在播放的过程中,按了按键会打断当前的状态去执行新的; 不可打断:就是在播放的过程中,按任何按键都无效,直到播放完当前曲目才有效;
很高兴能为您解答关于KAN-TTS搭建SAMBERT个性语音合成开发环境的问题。以下是一些建议的步骤: 1. 安装依赖:安装Python 3.7版本,并确保您已安装所需的依赖包,如PyTorch、NumPy等。您可以使用pip或conda进行安装。 2. 下载代码:从KAN-TTS的GitHub存储库中下载SAMBERT的源代码。您可以使用git命令克隆该存储库或直接下载zip文件。 3. 数据准备:准备训练数据集和语音特征提取器。您需要一个包含音频和相应文本的数据集,并使用一个语音特征提取器(如Tacotron或Transformer)来生成语音特征。 4. 配置模型:根据您的需求,编辑模型配置文件。在KAN-TTS的源代码中,您可以找到一个名为`hparams.py`的文件,其中包含模型的各种超参数设置。 5. 训练模型:使用准备好的训练数据集对模型进行训练。您可以使用提供的训练脚本来启动训练过程。 6. 评估模型:在训练过程中,您可以使用验证集对模型进行评估,以了解其性能和效果。 7. 合成语音:在完成模型训练后,您可以使用训练得到的模型来合成个性语音。通过输入文本,模型会生成相应的音频。 请注意,以上步骤只是一个大致的指南,具体的操作细节可能因您的环境和数据集而有所不同。建议您查阅KAN-TTS项目的文档或相关资源,以获得更详细的说明和指导。祝您搭建成功并取得好的结果!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值