79、语音合成技术全解析

语音合成技术全解析

1. 语音合成系统概述

语音合成是将文本转化为语音的技术,在TTS(文本转语音)系统中,语音合成模块负责生成波形。传统语音合成系统的输入通常是带有韵律信息的音标转录,也可以包含带标签的原始文本,这有助于生成更高质量的语音。

语音合成系统可以从不同角度进行分类:
- 按语音生成模型分类
- 发音合成 :使用包含所有发音器官的语音产生物理模型。
- 共振峰合成 :采用源 - 滤波器模型,滤波器以缓慢变化的共振峰频率为特征。
- 拼接合成 :通过拼接语音片段来生成语音。为了在拼接合成中提供更多灵活性,还涉及一些韵律修改技术。
- 按系统设计中的人工干预程度分类
- 规则合成 :使用一组手动推导的规则来驱动合成器。
- 数据驱动合成 :合成器的参数自动从真实语音数据中获取。拼接系统通常属于数据驱动合成,而共振峰合成器传统上使用规则合成,但共振峰过渡也可以从数据中训练得到。

2. 语音合成系统的属性

语音合成系统的属性对于评估其性能至关重要,以下是一些主要属性:
- 语音质量 :这是语音合成系统最重要的属性。一个系统可能在某些句子上听起来很好,但在其他句子上却很差。因此,需要考虑最佳句子的质量以及达到该质量的句子百分比。不同的语音生成方法在质量和任务独立性方面存在差异,主要有以下几种:
| 方法类型 | 特点 |
| — | — |
| 有限域波形拼接 | 对于给定的有限域,使用少量录制片段就能生成高质量语音,但不能合成任意文本,常用于交互式语音响应系统和一些概念到语音系统。 |
| 无波形修改的拼接合成 | 可以从任意文本合成语音,在大量句子上能达到较好质量,但在某些拼接不佳的句子上质量一般。 |
| 有波形修改的拼接系统 | 在选择拼接的语音片段时更灵活,因为可以修改波形以实现更好的韵律匹配,质量一般的句子数量相对较少,但用合成韵律替代自然韵律以及韵律修改过程可能会降低整体质量。 |
| 基于规则的系统 | 在不同句子上听起来较为均匀,但质量低于上述系统中的最佳质量。 |
- 延迟 :合成器开始发声所需的时间对于交互式应用很重要,应小于200毫秒。延迟由前端和语音合成模块的算法延迟以及计算开销组成。
- 内存资源 :基于规则的合成器平均需要少于200KB的内存,在内存有限时是广泛使用的选择。而拼接系统可能需要超过100MB的存储空间。
- CPU资源 :在当前CPU性能下,处理时间通常不是问题,除非多个通道需要在同一CPU上运行。一些拼接合成器在搜索最佳序列时可能需要大量计算。
- 可变速度 :某些应用可能需要语音合成模块生成可变速度的语音,特别是快速语音。盲人使用TTS系统获取信息时可以接受快速语音,因为能提高信息获取效率。不修改波形的拼接系统除非录制大量不同速度的片段,否则无法实现可变速度控制。
- 音高控制 :一些口语系统要求输出语音具有特定音高,例如生成歌曲的语音。不修改波形的拼接系统除非录制大量不同音高的片段,否则无法实现音高控制。
- 语音特征 :一些口语系统需要特定的语音,如机器人语音或单调语音。基于规则的系统由于其灵活性,能够进行许多这样的修改。

下面用mermaid流程图展示语音合成系统的分类:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A(语音合成系统):::process --> B(按语音生成模型分类):::process
    A --> C(按人工干预程度分类):::process
    B --> B1(发音合成):::process
    B --> B2(共振峰合成):::process
    B --> B3(拼接合成):::process
    C --> C1(规则合成):::process
    C --> C2(数据驱动合成):::process
3. 共振峰语音合成

共振峰语音合成是语音合成中的一种重要方法,下面详细介绍其相关内容。
- 从共振峰值生成波形 :为了通过规则合成语音,需要一个简单的滤波器模型。大多数基于规则的合成器使用共振峰合成,该模型明确表示2 - 6个共振峰。共振峰可以用二阶IIR滤波器实现:
[H_i(z)=\frac{b_i}{1 - 2e^{-\pi b_i} \cos(2\pi f_i)z^{-1}+e^{-2\pi b_i}z^{-2}}]
其中,(f_i = \frac{F_i}{F_s}),(b_i = \frac{B_i}{F_s}),(F_i)、(B_i)和(F_s)分别是共振峰的中心频率、带宽和采样频率(单位:Hz)。具有多个共振峰的滤波器可以通过级联(级联模型)或相加(并行模型)多个二阶部分来构建。共振峰合成器通常使用并行模型合成摩擦音和塞音,使用级联模型合成所有浊音。

Klatt的级联/并行共振峰合成器的参数值如下表所示:
| N | 符号 | 名称 | 最小值 | 最大值 | 典型值 |
| — | — | — | — | — | — |
| 1 | AV | 浊音幅度 (dB) | 0 | 80 | 0 |
| 2 | AF | 摩擦音幅度 (dB) | 0 | 80 | 0 |
| 3 | AH | 送气音幅度 (dB) | 0 | 80 | 0 |
| 4 | AVS | 正弦浊音幅度 (dB) | 0 | 80 | 0 |
| 5 | F0 | 基频 (Hz) | 0 | 500 | 0 |
| 6 | F1 | 第一共振峰频率 (Hz) | 150 | 900 | 500 |
| 7 | F2 | 第二共振峰频率 (Hz) | 500 | 2500 | 1500 |
| 8 | F3 | 第三共振峰频率 (Hz) | 130 | 3500 | 2500 |
| 9 | F4 | 第四共振峰频率 (Hz) | 250 | 4500 | 3500 |
| 10 | FNZ | 鼻音零点频率 (Hz) | 200 | 700 | 250 |
| 11 | AN | 鼻音共振峰幅度 (Hz) | 0 | 80 | 0 |
| 12 | A1 | 第一共振峰幅度 (Hz) | 0 | 80 | 0 |
| 13 | A2 | 第二共振峰幅度 (Hz) | 0 | 0 | 0 |
| 14 | A3 | 第三共振峰幅度 (Hz) | 0 | 80 | 0 |
| 15 | A4 | 第四共振峰幅度 (Hz) | 0 | 80 | 0 |
| 16 | A5 | 第五共振峰幅度 (Hz) | 0 | 80 | 0 |
| 17 | A6 | 第六共振峰幅度 (Hz) | 0 | 80 | 0 |
| 18 | AB | 旁路路径幅度 (Hz) | 0 | 80 | 0 |
| 19 | B1 | 第一共振峰带宽 (Hz) | 40 | 500 | 50 |
| 20 | B2 | 第二共振峰带宽 (Hz) | 40 | 500 | 70 |
| 21 | B3 | 第三共振峰带宽 (Hz) | 40 | 500 | 110 |
| 22 | SW | 级联/并行开关 | 0 | 1 | 0 |
| 23 | FGP | 声门共振器1频率 (Hz) | 0 | 600 | 0 |
| 24 | BGP | 声门共振器1带宽 (Hz) | 100 | 2000 | 100 |
| 25 | FGZ | 声门零点频率 (Hz) | 0 | 500 | 1500 |
| 26 | BGZ | 声门零点带宽 (Hz) | 100 | 9000 | 6000 |
| 27 | B4 | 第四共振峰带宽 (Hz) | 100 | 500 | 250 |
| 28 | F5 | 第五共振峰频率 (Hz) | 350 | 4900 | 3850 |
| 29 | B5 | 第五共振峰带宽 (Hz) | 150 | 700 | 200 |
| 30 | F6 | 第六共振峰频率 (Hz) | 400 | 4999 | 4900 |
| 31 | B6 | 第六共振峰带宽 (Hz) | 200 | 2000 | 100 |
| 32 | FNP | 鼻音极点频率 (Hz) | 200 | 500 | 250 |
| 33 | BNP | 鼻音极点带宽 (Hz) | 50 | 500 | 100 |
| 34 | BNZ | 鼻音零点带宽 (Hz) | 50 | 500 | 100 |
| 35 | BGS | 声门共振器2带宽 (Hz) | 100 | 1000 | 200 |
| 36 | SR | 采样率 (Hz) | 500 | 2000 | 1000 |
| 37 | NWS | 每个块的波形样本数 | 1 | 200 | 50 |
| 38 | G0 | 总体增益控制 (dB) | 0 | 80 | 48 |
| 39 | NFC | 级联共振峰数量 | 4 | 6 | 5 |

对于浊音,激励模型由一个脉冲序列驱动低通滤波器RGP,然后通过RGZ和RGS并联形成的带通滤波器。对于清音,激励由白噪声驱动低通滤波器LPF。对于浊擦音,激励是两者的组合,实际上所有浊音都使用这种混合激励来增加一些呼吸感。如果手动选择参数,该模型可以非常逼真地重现自然录音。

下面是共振峰合成的简单流程:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A(输入参数):::process --> B(选择滤波器模型):::process
    B --> C{浊音/清音}:::process
    C -->|浊音| D(脉冲序列激励):::process
    C -->|清音| E(白噪声激励):::process
    D --> F(生成波形):::process
    E --> F
  • 规则生成共振峰 :共振峰是元音的主要特征之一,由于声道的物理限制,共振峰不会随时间突然变化。基于规则的共振峰合成器通常每5 - 10毫秒生成连续的共振峰频率和带宽值。可以使用格型滤波器实现连续值,因为它允许反射系数在每个样本上变化。在实践中,只要帧小于5毫秒,值可以在帧内固定。

生成共振峰轨迹的规则基于语音产生的轨迹理论。该理论指出,音素内的共振峰频率倾向于达到一个稳定值,即目标值。男性说话者的共振峰频率和带宽目标值在非元音段和元音段有所不同,具体如下:
- 非元音段(部分示例)
| 音素 | F1 (Hz) | F2 (Hz) | F3 (Hz) | B1 (Hz) | B2 (Hz) | B3 (Hz) |
| — | — | — | — | — | — | — |
| axp | 430 | 1500 | 2500 | 120 | 60 | 120 |
| b | 200 | 900 | 2100 | 65 | 90 | 125 |
| ch | 300 | 1700 | 2400 | 200 | 110 | 270 |
- 元音段(部分示例)
| 音素 | F1 (Hz) | F2 (Hz) | F3 (Hz) | B1 (Hz) | B2 (Hz) | B3 (Hz) |
| — | — | — | — | — | — | — |
| aa | 700 | 1220 | 2600 | 130 | 70 | 160 |
| ae | 620 | 1660 | 2430 | 70 | 130 | 300 |
| ah | 620 | 1220 | 2550 | 80 | 50 | 140 |

如果音素足够长或者前一个音素的目标值接近当前音素的目标值,共振峰就会达到目标值。共振峰移动的最大斜率受发音器官速度的限制,由于每个共振峰主要由特定发音器官的位置引起,舌体引起的共振峰变化不如舌尖或嘴唇引起的共振峰变化快。因此,基于规则的系统会存储每个音素的目标值、最大允许斜率和过渡时间。

例如,元音和响音之间的过渡可以遵循特定规则,通过一些参数来指定过渡的速度和形状。其他规则可能允许在某些情况下出现不连续性,例如从清音段过渡时。为了提高自然度,所有这些参数可以依赖于直接的语音上下文。

Klatt发现,对于给定的自然话语,手动获取的共振峰轨迹可以使合成话语不仅质量好,而且听起来与原始录音非常相似。但通过规则自动获取共振峰轨迹时,输出语音的自然度和与原始录音的相似度会降低。
- 数据驱动的共振峰生成 :除了规则生成共振峰,还可以采用数据驱动的方法。一个处于生成模式的隐马尔可夫模型(HMM)每10毫秒发出三个共振峰频率及其带宽值,这些值用于类似于前面描述的级联共振峰合成器。该HMM有许多基于决策树的上下文相关三音素,每个三音素包含三个状态,每个状态使用高斯分布。

基线系统使用一个六维向量,包括前三个共振峰频率及其带宽。最初假设合成器的输入除了每个音素的持续时间外,还包括每个状态的持续时间。在这种情况下,最大似然共振峰轨迹是状态均值的序列,因此在状态边界处是不连续的。

为了获得平滑的共振峰轨迹,关键是将特征向量扩展为包含相应的增量共振峰和带宽(时间t的特征与时间t - 1的特征之差),形成一个十二维向量。此时,最大似然解需要求解一组三对角线性方程,得到的共振峰轨迹是平滑的,它平衡了接近状态均值的共振峰值和也在状态均值范围内的增量值。此外,合成语音与提供数据的说话者的语音相似。
- 发音合成 :发音合成是另一种基于规则的语音合成模型,它使用参数来模拟发音器官的机械运动以及肺部、喉部、声道和鼻腔中的体积速度和声压分布。由于人类语音产生的发音器官自由度有限,发音模型通常使用少至15个参数来驱动共振峰合成器。

发音器官和声学之间的关系是多对一的,例如口技表演者可以通过与正常语音非常不同的发音器官位置产生语音。因此,语音反演问题是不适定的。但通过假设发音器官不会随时间快速变化,可以从共振峰频率估计声道面积。一些模型使用五个发音参数:嘴唇开口面积、舌叶形成的收缩、鼻腔开口、平均声门面积以及声道的主动扩张或收缩率。

4. 拼接合成

拼接合成是通过拼接语音片段来生成语音的方法,在语音合成领域有着广泛的应用。
- 无波形修改的拼接合成 :这种方法能够从任意文本合成语音。它的优势在于可以处理多样化的文本输入,在大量句子上能达到较好的质量。然而,其局限性也较为明显,在某些拼接不佳的句子上,语音质量会变得一般。这是因为在拼接过程中,可能无法找到完全匹配的语音片段,从而导致拼接处的语音过渡不够自然。
- 有波形修改的拼接合成 :为了克服无波形修改拼接合成的不足,有波形修改的拼接系统应运而生。该系统在选择拼接的语音片段时更具灵活性,因为它可以对波形进行修改,以实现更好的韵律匹配。这样一来,质量一般的句子数量相对减少。不过,这种方法也存在一些问题。一方面,用合成韵律替代自然韵律可能会影响整体语音质量;另一方面,韵律修改过程本身也会在一定程度上降低语音质量。

下面用mermaid流程图展示拼接合成的基本流程:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A(输入文本):::process --> B(文本分析):::process
    B --> C(选择语音片段):::process
    C --> D{是否修改波形}:::process
    D -->|是| E(波形修改):::process
    D -->|否| F(直接拼接):::process
    E --> G(拼接语音片段):::process
    F --> G
    G --> H(生成语音):::process
5. 语音合成系统的评估

评估语音合成系统对于了解其性能和改进方向至关重要。主要从以下几个方面进行评估:
- 语音质量评估 :语音质量是评估的核心内容。由于一个系统在不同句子上的表现差异较大,所以需要综合考虑最佳句子的质量以及达到该质量的句子百分比。可以通过主观评价和客观评价相结合的方式进行评估。主观评价通常邀请听众对合成语音进行打分,评价其自然度、清晰度等方面;客观评价则可以使用一些指标,如均方误差、信噪比等。
- 延迟评估 :合成器开始发声所需的时间对于交互式应用尤为重要。理想情况下,延迟应小于200毫秒。评估延迟时,需要考虑前端和语音合成模块的算法延迟以及计算开销。可以通过多次测试,记录从输入文本到输出语音的时间,取平均值来评估延迟情况。
- 资源评估 :包括内存资源和CPU资源。基于规则的合成器平均需要少于200KB的内存,在内存有限的情况下具有优势;而拼接系统可能需要超过100MB的存储空间。对于CPU资源,在当前CPU性能下,处理时间通常不是问题,但一些拼接合成器在搜索最佳序列时可能需要大量计算。可以通过监测系统在运行语音合成任务时的内存使用情况和CPU占用率来评估资源使用情况。
- 功能评估 :如可变速度、音高控制和语音特征等方面。可变速度功能可以通过测试合成语音在不同速度下的清晰度和自然度来评估;音高控制功能可以检查合成语音是否能够准确实现特定音高;语音特征方面,评估系统是否能够生成如机器人语音、单调语音等特定语音。

以下是一个简单的语音合成系统评估表格:
| 评估指标 | 评估方法 | 理想值 |
| — | — | — |
| 语音质量 | 主观评价和客观评价结合 | 高自然度、高清晰度 |
| 延迟 | 多次测试取平均值 | 小于200毫秒 |
| 内存资源 | 监测内存使用情况 | 基于规则合成器小于200KB,拼接系统合理范围内 |
| CPU资源 | 监测CPU占用率 | 不影响系统正常运行 |
| 可变速度 | 测试不同速度下语音效果 | 清晰、自然 |
| 音高控制 | 检查特定音高实现情况 | 准确 |
| 语音特征 | 评估特定语音生成能力 | 符合要求 |

6. 语音合成技术的发展趋势

随着技术的不断进步,语音合成技术呈现出以下发展趋势:
- 更高质量的语音合成 :追求更加自然、逼真的语音效果是语音合成技术的永恒目标。未来将通过不断改进合成模型和算法,提高语音的自然度和相似度。例如,进一步优化共振峰合成和拼接合成技术,结合深度学习算法,更好地模拟人类语音的产生过程。
- 个性化语音合成 :满足不同用户对于特定语音的需求,如个性化的语音风格、声音特征等。可以通过收集用户的语音数据,训练出具有用户特色的语音模型。例如,为用户定制具有自己音色和风格的语音助手。
- 多模态融合 :将语音合成与其他模态的技术相结合,如视觉、触觉等,实现更加丰富的交互体验。例如,在虚拟现实和增强现实场景中,语音合成与视觉效果相结合,为用户提供更加沉浸式的体验。
- 实时性和低资源消耗 :在保证语音质量的前提下,提高合成速度,降低资源消耗。这对于移动设备和物联网设备尤为重要。可以通过优化算法结构、采用高效的硬件加速技术来实现。

总之,语音合成技术在不断发展和完善,未来将在更多领域得到广泛应用,为人们的生活和工作带来更多便利。

内容概要:本文介绍了一个基于Simulink的混合储能驱动永磁同步电机系统仿真模型,涵盖了系统整体架构与关键控制策略,重点实现了电流环的二阶滑模控制(STSMC)、有限集模型预测控制(FCS-MPC)和PI控制等多种先进控制方法。该模型集成了混合储能系统与永磁同步电机驱动系统,能够模拟复杂工况下的动态响应、能量管理过程及多变量耦合特性,适用于高性能电机控制系统的设计、分析与验证,尤其在新能源汽车、电动驱动系统和工业自动化等领域具有重要应用价值。; 适合人群:具备Simulink仿真基础、电力电子与电机控制背景的高校研究生、科研人员及自动化、电气工程领域的研发工程师。; 使用场景及目标:①用于研究和对比不同电流控制策略(如STSMC、FCS-MPC、PI)在永磁同步电机系统中的动态性能、鲁棒性与抗干扰能力;②支撑混合储能系统在电动驱动、新能源汽车、智能电网等领域的系统级仿真与优化设计;③为先进控制算法的开发与工程化落地提供高保真、模块化的仿真平台。; 阅读建议:建议结合Simulink模型与相关控制理论进行对照学习,重点关注各功能模块之间的信号交互、控制逻辑设计及参数整定方法,可通过修改负载条件、切换控制模式等方式开展对比实验,深入理解系统动态行为与控制效果差异。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值