你经历过“点菜五分钟,等菜半小时”的餐厅吗?菜倒是精致,可你的肚子已经饿得咕咕叫。要是后厨能看一眼菜单就开火,炒好一盘端一盘,那该多好。在语音合成(TTS)的世界里,“等菜”恰恰是所有用户最抓狂的事:你对着语音助手说了一句话,它却沉默三秒才开口回应——这种体验,就像对着一堵墙说话。为了让声音“秒上桌”,技术圈里有一家传说中的“快嘴餐厅”。 这家餐厅的运作方式是这样的:顾客把一张文字订单(你想让机器说的话)递给服务员(文本前端),服务员快速念给后厨。后厨里,大厨(声学模型)把文字做成半成品菜谱(梅尔频谱),装盘师傅(声码器)再把半成品变成色香味俱全的菜肴(音频波形)端出窗口。整个过程要求在一秒甚至几百毫秒内完成。 这家餐厅最近发生了一场革命:老派装盘师傅坚持“每粒米都要精雕细琢”,结果顾客等到崩溃;新派团队则干脆开起了流水线——先让所有厨师同时研究菜谱、同时开火,装盘师傅也学会了一秒摆盘。从此,“声音”真的可以“秒上桌”了。 这篇文章,就带你走进“快嘴餐厅”的后厨,看看实时语音合成是怎么做到的。你会发现,实时合成的秘密不是“手快”,而是“巧妙的分工”。

岗位关联

懂得实时合成的核心思想,你就能在设计语音助手、直播配音、在线教育等 AI 产品时,看懂“为什么响应这么快”,并在下游工程中做出更聪明的架构决策。

目录
  1. 可视化演示
  2. 实时合成概述:为什么要“秒上桌”
  3. 流式Tacotron:老主厨的边做边上菜
  4. FastSpeech2:十灶齐开的流水线
  5. 声码器演进:装盘师傅的逆袭
  6. 性能权衡:快与好的平衡术
  7. 商用实战:把餐厅开遍全球
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示文本到语音的流式合成流水线、流式vs传统延迟对比及声码器从WaveNet到HiFi-GAN的演进,支持步骤切换。

本节配有交互动效(进入视口后自动加载,约 3KB)。

TTS合成流水线 文本经编码器生成梅尔频谱,声码器将频谱转为音频波形 text→mel→wave 三阶段串行流水线

实时合成概述:为什么要“秒上桌”

在“快嘴餐厅”里,顾客最不能忍的就是等待。心理学研究发现,人对机器的回应超过 300 毫秒就会觉得“卡顿”——就像你喊服务员三次都没人理,火气立刻上来了。实时合成,就是让“声音菜肴”从下单到上桌不超过这个时限。

从技术上讲,“上桌时间”包含好几个环节:读菜单(文本前端)、写菜谱(声学模型)、装盘(声码器)、端菜(网络传输)。任何一个环节慢了,顾客都要多等。于是工程师发明了一把“尺子”来衡量整条线的速度——RTF(Real-Time Factor,实时率)。

RTF 的定义很简单:模型处理一段文本的耗时 ÷ 生成的语音时长。假如一段 4 秒的语音,模型只花了 2 秒合成,RTF = 0.5,说明模型跑得比播放还快,具备了实时合成的潜力。如果 RTF = 3,生成 4 秒语音要花 12 秒,用户等得花儿都谢了。

所以你看,“快嘴餐厅”的考核标准很简单:RTF 小于 1 只是入场券,真正让顾客觉得“快”的,是整个流程的顺畅协作。接下来,我们走进后厨,看看各位大师傅是怎么各显神通的。

RTF=TprocessingTaudio\displaystyle \text{RTF} = \frac{T_{\text{processing}}}{T_{\text{audio}}}
RTF 是衡量“模型平均速度”的尺子:小于 1 代表合成速度跟得上播放速度,是实时合成的入场券。
  1. 处理总耗时(T_processing)模型从收到文本到输出完整语音所花的时间,单位是秒。
    TprocessingT_{\text{processing}}
  2. 音频时长(T_audio)生成的语音如果连续播放出来,需要多少秒。
    TaudioT_{\text{audio}}
  3. 实时判据(RTF < 1)处理时间小于音频时长,系统才有可能实现实时合成。
    RTF<1\text{RTF} < 1

流式Tacotron:老主厨的边做边上菜

“快嘴餐厅”里有一位德高望重的老师傅,他做菜有个习惯:严格按照菜谱顺序,一道一道、一勺一勺地炒,绝不跳步。但他聪明的地方在于——每炒好一份,就让服务员立刻端出去,客人先吃上,他再继续做后面的。这就是“流式Tacotron”的智慧。

这位老师傅的大名叫 Tacotron 2,是端到端语音合成的经典模型,输入文本、输出梅尔频谱——相当于把菜谱从文字翻译成“火候图”。它由编码器(读菜单)和解码器(按顺序炒菜)组成,中间靠注意力机制(像厨师随时回看菜谱对应位置)对齐文本和音频。

关键在它的解码方式:自回归(autoregressive)。第 t 帧梅尔频谱要等前 t-1 帧全部生成后才能算出来,就像一道菜的调味要等前一步完成才能继续。这保证了帧与帧之间连贯自然,但代价是慢。工程师的改造思路是:把“逐帧生成”变成“逐帧输出”——每生成一帧就立刻交给声码器播放。这就是流式化改造。

老师傅的流式绝活,终于让“快嘴餐厅”的客人能边看边等了。不过,他一个人一口锅,再快也有极限。直到某天,老板请来了一支“流水线团队”……

P(yt∣y<t,x)\displaystyle P(y_t \mid y_{<t}, x)
这个公式描述了自回归的“因果链条”:新的一帧,永远是在已知文本和之前所有帧的条件下“挤”出来的。
  1. 输入文本(x)顾客下的文字订单。
    xx
  2. 历史帧(y_{<t})已经生成的前 t-1 帧梅尔频谱,是当前帧的“前菜”。
    y<t=y1,y2,…,yt−1y_{<t} = y_1, y_2, \ldots, y_{t-1}
  3. 当前帧(y_t)正在预测的第 t 帧,依赖前面所有帧。
    yty_t
  4. 条件概率(P(y_t | y_{<t}, x))在已知文本和前序帧的条件下,算出当前帧最可能的取值。
    P(yt∣y<t,x)\displaystyle P(y_t \mid y_{<t}, x)

FastSpeech2:十灶齐开的流水线

新来的团队有个惊人理念:为什么不先让所有厨师共同研究出一份精确到秒的“烹饪计划书”,然后十口锅同时开火?计划书写好,每道菜要几分钟、什么火候,全部提前标注。开火之后,大家各炒各的,互不等待。这就是 FastSpeech2 的“非自回归”哲学。

FastSpeech2 不做“逐帧等前帧”,而是先由一个文本编码器读懂整句话,再用时长预测器算出每个音素该持续多少帧——相当于烹饪计划书。有了计划,就能把文字特征“拉长”到帧级别,一次性喂给解码器,并行生成整段梅尔频谱。

这一改,合成速度比自回归 Tacotron 快了近 270 倍(论文数据)。它不再需要像老主厨那样一勺一勺等,只要计划准确,所有内容一次成型。当然,代价是它依赖时长预测器的准确性,如果计划书出错,菜的节奏就会怪怪的。

流水线团队让“快嘴餐厅”的客人几乎当场就能听到第一句话。但大厨们的半成品菜谱还缺最后一道工序——把“火候图”变成真正的菜肴。这就轮到装盘师傅登场了。

M=Decoder(Expand(Encoder(x), d))\displaystyle M = \text{Decoder}\left(\text{Expand}\left(\text{Encoder}(x),\, d\right)\right)
FastSpeech2 的核心思路是:先算好“每个音素该占多少帧”,再把整句话一次性并行解码成梅尔频谱。
  1. 文本编码(Encoder(x))把输入文本 x 编码成隐含特征序列。
    Encoder(x)\text{Encoder}(x)
  2. 时长预测(d)时长预测器输出每个音素应持续的帧数。
    d=DurationPredictor(Encoder(x))\displaystyle d = \text{DurationPredictor}\left(\text{Encoder}(x)\right)
  3. 帧展开(Expand)按 d 把音素特征重复展开成帧级特征。
    Expand(⋅,d)\text{Expand}(\cdot, d)
  4. 并行解码(Decoder)解码器一次性并行输出全部梅尔频谱帧 M。
    M=Decoder(Expand(Encoder(x), d))\displaystyle M = \text{Decoder}\left(\text{Expand}\left(\text{Encoder}(x),\, d\right)\right)

声码器演进:装盘师傅的逆袭

装盘师傅,负责把“菜谱半成品”(梅尔频谱)变成“成品菜肴”(最终波形)。老派装盘师傅叫 WaveNet,功力深厚,但有个奇怪的习惯:每摆一粒米都要深思熟虑,摆完一粒才摆下一粒——这正是逐样本自回归。

WaveNet 出品的质量极高,语音自然度至今仍是标杆。但它生成 1 秒声音需要跑 16000 次自回归,每一次都要重新计算——等它端出一盘菜,客人早已饿晕过去。于是 HiFi-GAN 登场了。

HiFi-GAN 换个思路:不是“一颗颗做”,而是让生成器(G)用全并行卷积一次性画完整张“波形图”,再由判别器(D)挑毛病——看看波形是真是假。两者反复博弈,生成器最终学会以假乱真。速度上,HiFi-GAN 比 WaveNet 快几个数量级,足以在手机 CPU 上完成实时合成。

有了魔法装盘师傅,“快嘴餐厅”终于能做到“话音未落、菜已上桌”。但老板很快发现新问题:菜是上得快了,可有的客人抱怨味道“像快餐”——这就是速度与自然度之间的永恒拉锯。

min⁡Gmax⁡D  Ex[log⁡D(x)]+Ez[log⁡(1−D(G(z,c)))]\displaystyle \min_{G} \max_{D} \; \mathbb{E}_{x}\left[\log D(x)\right] + \mathbb{E}_{z}\left[\log\left(1 - D\left(G(z, c)\right)\right)\right]
生成器和判别器像“造假钞”与“验钞机”的博弈,最终生成器学会造出真假难辨的语音波形。
  1. 生成器(G)从随机噪声 z 和梅尔频谱条件 c 中合成波形。
    G(z,c)G(z, c)
  2. 判别器(D)判断输入 x 是真实录音还是合成波形。
    log⁡D(x)\log D(x)
  3. 生成器目标(min_G)让生成样本骗过判别器。
    log⁡(1−D(G(z,c)))\log\left(1 - D\left(G(z, c)\right)\right)
  4. 对抗博弈(min max)G 想骗过 D,D 想识破 G,最终两边同时变强。
    min⁡Gmax⁡D\min_{G} \max_{D}

性能权衡:快与好的平衡术

餐厅的评分榜上有两项硬指标:“出菜速度”和“菜品口碑”。炒得太快但难吃,差评;太好吃但等太久,还是差评。语音合成世界里,这两项指标叫“RTF(速度)”和“MOS(自然度评分)”。

工程师们发现,追求极致速度会牺牲自然度,追求极致自然度又拖慢速度。所以系统设计不是“越快越好”,而是“在可接受延迟内做到最好听”。

更精确地刻画用户体验的是端到端延迟,由三部分构成:首包延迟、后续合成延迟、网络延迟。流式系统之所以体验好,正是因为它把首包延迟压到了几十毫秒,让用户感觉“立即开口”,后面的音频在播放间隙里悄悄补齐。

“快嘴餐厅”终于摸索出了自己的配方:首包要快、后续要稳、整体要均衡。有了这套平衡术,它才敢把分店一家一家开下去。

Ltotal=Lfirst+Lsynth+Lnetwork\displaystyle L_{\text{total}} = L_{\text{first}} + L_{\text{synth}} + L_{\text{network}}
端到端延迟 = 第一句话等多久 + 后面的声音生成多久 + 传回用户设备要多久。流式系统把第一项压到极短,体验就“活”了。
  1. 首包延迟(L_first)从用户发出请求到第一段音频播放出来的时间。
    LfirstL_{\text{first}}
  2. 合成延迟(L_synth)完整合成剩余音频所需的时间,流式中与播放并行。
    LsynthL_{\text{synth}}
  3. 网络延迟(L_network)音频数据从服务器传到用户设备的传输时间。
    LnetworkL_{\text{network}}

商用实战:把餐厅开遍全球

当一家餐厅的流程足够成熟,它就开始标准化复制:中央厨房、统一菜谱、统一装盘标准。语音合成也一样,只有当工程架构和评估体系成熟,它才能走进手机、音箱、导航等千万级产品。

现代商用 TTS 系统是一个标准三级流水线:文本前端(服务员读菜单)→ 声学模型(大厨做菜谱)→ 声码器(装盘师傅装盘)。在云端,这三者常被拆成微服务部署在 GPU/CPU 集群上,通过流式接口即时返回音频。

商用系统如何衡量“好不好听”?最通行的是 MOS(Mean Opinion Score,平均意见分):招募一批试听员,每人按 1-5 分打分取平均。4.0 分以上通常被认为接近真人水平。此外还有延迟分位数(P50/P95)、合成成功率、RTF 等工程指标共同把关。

从一间小厨房到连锁餐厅,“快嘴餐厅”靠的不是某一招鲜,而是把“实时”的每一个环节都打磨到位。而这个故事还在继续——AI 语音的下一个传奇,也许就藏在你每天喊的那句“你好,小助手”里。

MOS=1N∑i=1Nsi\displaystyle \text{MOS} = \frac{1}{N} \sum_{i=1}^{N} s_i
MOS 就是“顾客评分表”的平均分:人越多、分越高,说明语音越自然、越像真人。
  1. 试听人数(N)参与打分的人数。
    NN
  2. 单人打分(s_i)第 i 位试听员给出的 1~5 分。
    si\displaystyle s_i
  3. 平均意见分(均值)所有人的平均分,越高越自然。
    1N∑i=1Nsi\displaystyle \frac{1}{N} \sum_{i=1}^{N} s_i

AI 应用场景

实时语音助手

阶段:模型部署与推理优化

解决的问题:传统 TTS 要等整句合成完才播放,用户问完问题后往往要愣 1-2 秒才听到回应,互动感很差。流式合成配合低 RTF 声码器,可在几十毫秒内播出一段语音,让助手“脱口而出”。

具体案例:智能音箱对话中,用户问“明天上海天气怎么样”,系统流式合成“明天上海,多云转晴……”,边说边生成,体验像真人客服在应答。

在线教育跟读评分

阶段:实时交互反馈

解决的问题:学生跟读时,系统要快速合成一句标准发音作为“参考答案”并即时对比。如果合成不实时,学习节奏会被打断,学生不知道自己对不对。

具体案例:AI 英语外教 App 中,学生读完"Good morning"后,系统立刻合成标准发音,并在同一屏上展示发音评分曲线。

直播实时字幕配音

阶段:流式推理管线搭建

解决的问题:直播或会议需要把文字实时转成语音(如 AI 配音、无障碍口述),对整条流水线的延迟极其敏感,任何环节阻塞都会让观众出戏。

具体案例:某新闻直播间的 AI 语音播报,字幕稿一生成,语音几乎零时差播出;遇到突发新闻,编辑改稿后 1 秒内就能听到新语音。

Python 演示

python56 行
import time class TTSSimulator:    """模拟实时合成中的自回归/并行,以及流式/非流式输出对比"""     def __init__(self, audio_duration=4.0, frame_rate=50):        self.audio_duration = audio_duration      # 待合成语音时长(秒)        self.total_frames = int(audio_duration * frame_rate)  # 梅尔帧总数        self.frame_cost = 0.002                   # 模拟每帧合成耗时(秒)     def autoregressive_synthesis(self):        """自回归:逐帧生成,总耗时 = 帧数 × 单帧耗时"""        start = time.perf_counter()        for _ in range(self.total_frames):            time.sleep(self.frame_cost)        return time.perf_counter() - start     def parallel_synthesis(self):        """非自回归:一次批量生成,耗时与帧数无关"""        start = time.perf_counter()        time.sleep(0.03)                          # 模拟一次并行前向        return time.perf_counter() - start     def streaming_first_packet(self):        """流式输出:只等第一块音频(5帧)合成完即可播放"""        chunk_size = 5        first_chunk_frames = min(chunk_size, self.total_frames)        start = time.perf_counter()        time.sleep(first_chunk_frames * self.frame_cost)        return time.perf_counter() - start     def non_streaming_wait(self):        """非流式:等全部合成完才播,首包延迟 = 总合成时间"""        return self.autoregressive_synthesis()     @staticmethod    def rtf(process_time, audio_duration):        return process_time / audio_duration def main():    sim = TTSSimulator(audio_duration=4.0)    audio_duration = sim.audio_duration     t_ar = sim.autoregressive_synthesis()    t_ff = sim.parallel_synthesis()    print(f"自回归(流式Tacotron风格)总耗时: {t_ar:.3f}s, RTF = {sim.rtf(t_ar, audio_duration):.3f}")    print(f"非自回归(FastSpeech2风格)总耗时: {t_ff:.3f}s, RTF = {sim.rtf(t_ff, audio_duration):.3f}")     t_first = sim.streaming_first_packet()    t_wait = sim.non_streaming_wait()    print(f"\n流式输出:首包延迟 = {t_first:.3f}s")    print(f"非流式输出:等待全部合成后播放,首包延迟 = {t_wait:.3f}s")    print("\n结论:实时合成既要模型跑得快(低RTF),也要架构上边合成边输出(低首包延迟)。") if __name__ == "__main__":    main()
目的:模拟对比自回归与非自回归的合成速度,以及流式与非流式输出的首包延迟差异,帮助理解“实时合成”的两层含义。
  1. self.frame_cost = 0.002模拟每合成一帧梅尔频谱约需 2 毫秒,这是自回归逐帧解码的速度瓶颈。
  2. for _ in range(self.total_frames): time.sleep(self.frame_cost)自回归必须逐帧循环等待,200 帧就是 200 次串行计算。
  3. time.sleep(0.03)非自回归把 200 帧的计算压缩成一次批量前向,与帧数无关。
  4. chunk_size = 5流式输出以 5 帧为一个音频块,合成完一块就立即播放。
  5. first_chunk_frames * self.frame_cost首包延迟只需等第一块音频,而不是整句话。
  6. sim.non_streaming_wait()非流式的首包延迟等于全部合成时间,差距一目了然。

常见误区

误区实时合成就是让模型跑得足够快。只要 RTF 小于 1,模型就能“实时”了。所以我只需要优化模型速度就行,架构改不改无所谓。

正解RTF < 1 只代表“平均速度够快”,但用户体验的“实时”取决于首包延迟。如果模型坚持“整句合成完再播放”,一段 4 秒的话,用户依然要干等 2 秒。就像后厨炒菜再快,非要等 10 道菜全部出锅才一起端出来,顾客照样着急。真正的实时必须配合流式架构——先端上第一道菜(首包),其余边炒边上。

为何常见:把“吞吐速度”和“交互延迟”混为一谈,只关注模型层,忽略了系统输出策略的影响。

误区FastSpeech2 比自回归 Tacotron 快这么多,Tacotron 肯定被淘汰了吧?以后只用非自回归模型就行。

正解非自回归快,但它用一个时长预测器去“猜”每个音素的长度,猜不准时语音节奏会生硬、像机器人念稿。自回归模型逐帧预测、帧间连贯,在自然度上限上仍有优势,所以很多高端合成系统依然用自回归模型。现实是两者并存、按场景选择,就像餐厅既有流水线快餐,也有精雕细琢的私房菜。

为何常见:只看到速度差异,看不到自然度上的权衡;“并行”是有代价的,代价就是提前规划时长。

误区声码器就是把频谱转成波形的小工具,随便用哪个都一样,核心技术都在前面的大模型上。

正解声码器恰恰是决定“像不像真人”的最后一道关卡。WaveNet 音质好但慢,HiFi-GAN 快但依赖训练数据质量,否则会有金属感杂音。同样的梅尔频谱,换一个声码器听感可能天差地别。它就像装盘师傅——菜谱再完美,装得乱糟糟,顾客照样不给好评。

为何常见:低估了波形级建模的难度,以为频谱到波形只是一个简单的反变换。

误区实时合成就是延迟越低越好,最好延迟为零,用户才满意。

正解延迟过低反而可能牺牲音质和稳定性——因为要强行减少语言上下文、加大分块压力。人机交互中,100~300 毫秒的响应已很难察觉,用户真正在意的是“能不能马上开始说话”,而不是每个字节都零延迟。过度追求极致延迟,往往导致工程复杂度飙升而收益甚微。

为何常见:把延迟当作唯一的体验指标,忽略了感知阈值和成本收益的平衡。

面试题

Q1. RTF(实时率)的正确定义是?

单选题 · easy

  • A.合成音频时长除以处理耗时
  • B.处理耗时除以合成音频时长← 正确答案
  • C.模型参数量除以训练数据量
  • D.首包延迟减去网络延迟

答案:B。RTF = 处理时间 ÷ 音频时长。RTF < 1 表示模型能在音频播放完成前合成完,这是判断“平均速度够不够快”的基础指标。选 A 是把分子分母弄反了。

Q2. 以下哪个说法正确描述了流式 TTS 的优势?

单选题 · easy

  • A.等待全部合成后播放
  • B.边合成边输出音频块← 正确答案
  • C.增加模型参数量
  • D.减少模型训练数据

答案:B。流式 TTS 通过分块合成、边生成边播放,显著缩短首包延迟,让用户在几十毫秒内听到声音。等全部合完再播是非流式的缺点,增加参数量和减少训练数据都不是流式的优势。

Q3. FastSpeech2 属于哪种架构?

单选题 · easy

  • A.自回归模型
  • B.非自回归模型← 正确答案
  • C.循环神经网络
  • D.图神经网络

答案:B。FastSpeech2 通过时长预测器和并行解码一次生成全部梅尔频谱,不逐帧依赖,因此是非自回归。它用 Transformer 而非 RNN,也与图神经网络无关。

Q4. WaveNet 合成速度慢的根本原因是?

单选题 · mid

  • A.模型参数量过于庞大
  • B.逐样本自回归生成导致慢← 正确答案
  • C.使用循环神经网络结构
  • D.训练时所使用的数据不足

答案:B。WaveNet 每个采样点依赖之前所有采样点,必须逐样本生成,16kHz 下每秒要生成 16000 个点,所以极慢。它的慢来自自回归生成方式,而非参数量或数据不足。

Q5. HiFi-GAN 中“全并行”指的是?

单选题 · mid

  • A.生成器并行输出完整波形← 正确答案
  • B.训练时使用多个 GPU
  • C.判别器并行执行判断
  • D.数据加载并行执行

答案:A。HiFi-GAN 的生成器用全卷积网络一次输出全部波形采样点,不需要逐样本循环,所以速度大幅提升。多 GPU 训练、多判别器并行和数据加载只是外围工程,不是“全并行”核心含义。

Q6. 首包延迟不包括以下哪一项?

单选题 · hard

  • A.文本前端处理所耗时间
  • B.第一块音频合成所耗时间
  • C.完整合成所有语音的耗时← 正确答案
  • D.网络传输导致的额外耗时

答案:C。首包延迟只计算到“第一个音频块可用”的时间,包括文本前端、第一块合成和网络传输。流式系统不需要等全部语音合成完,所以“完整合成所有语音的耗时”不属于首包延迟。

Q7. MOS 评分是用来衡量什么的?

单选题 · easy

  • A.模型训练的速度
  • B.语音自然度打分← 正确答案
  • C.网络带宽的大小
  • D.文本识别的准确率

答案:B。MOS(Mean Opinion Score)通过人工试听对语音自然度打分,1 到 5 分取平均,是 TTS 质量评估的主要指标。它与训练速度、带宽和识别准确率无关。

Q8. 哪些因素会影响实时语音合成的端到端延迟?

多选题 · mid

  • A.文本前端的处理环节← 正确答案
  • B.梅尔频谱的生成环节← 正确答案
  • C.声码器波形合成环节← 正确答案
  • D.数据中心机房温度

答案:ABC。端到端延迟 = 文本前端处理 + 梅尔频谱生成 + 声码器合成 + 网络传输。机房温度不直接影响计算延迟,只是环境因素。

Q9. 以下哪些方法可以降低实时合成的首包延迟?

多选题 · hard

  • A.采用流式分块合成方案← 正确答案
  • B.换用更快的声码器模型← 正确答案
  • C.等整段合成后再播放输出
  • D.缩短第一块的合成粒度← 正确答案

答案:ABD。流式分块让第一块尽早产出;更快的声码器(如 HiFi-GAN 替代 WaveNet)缩短波形生成时间;更小的第一块粒度让音频更快开播。等整段合完再播会推迟输出,反而增大首包延迟。

Q10. 关于 FastSpeech2 与 Tacotron 的对比,正确的说法是?

多选题 · extreme

  • A.FastSpeech2 并行生成梅尔帧← 正确答案
  • B.自回归模型帧间依赖更强← 正确答案
  • C.FastSpeech2 依赖时长预测器← 正确答案
  • D.Tacotron 完全不需要注意力

答案:ABC。FastSpeech2 非自回归并行生成梅尔帧,且必须依赖时长预测器确定每个音素帧数;Tacotron 自回归逐帧建模,帧间依赖强,但需要注意力机制对齐文本与频谱,因此 D 错误。