微信小程序中的TTS是如何实现流式播放的?

目前在做微信小程序的demo,发现微信小程序关于语音的api只能通过音频地址播放,这样的话就需要合成好以后才能播放,对于大量的文本,会大大增加等待时间…
关注者
7
被浏览
23,304
登录后你可以
不限量看优质回答 私信答主深度交流 精彩内容一键收藏

(以下内容搬运自 PaddleSpeech )

PP-TTS


1. 简介

PP-TTS 是 PaddleSpeech 自研的流式语音合成系统。在实现 前沿算法 的基础上,使用了更快的推理引擎,实现了流式语音合成技术,使其满足商业语音交互场景的需求。

PP-TTS

语音合成基本流程如下图所示:

PP-TTS 默认提供基于 FastSpeech2 声学模型和 HiFiGAN 声码器的中文流式语音合成系统:

  • 文本前端:采用基于规则的中文文本前端系统,对文本正则、多音字、变调等中文文本场景进行了优化。
  • 声学模型:对 FastSpeech2 模型的 Decoder 进行改进,使其可以流式合成
  • 声码器:支持对 GAN Vocoder 的流式合成
  • 推理引擎:使用 ONNXRuntime 推理引擎优化模型推理性能,使得语音合成系统在低压 CPU 上也能达到 RTF<1,满足流式合成的要求


2. 特性

  • 开源领先的中文语音合成系统
  • 使用 ONNXRuntime 推理引擎优化模型推理性能
  • 唯一开源的流式语音合成系统
  • 易拆卸性:可以很方便地更换不同语种上的不同声学模型和声码器、使用不同的推理引擎(Paddle 动态图、PaddleInference 和 ONNXRuntime 等)、使用不同的网络服务(HTTP、Websocket)


3. Benchmark

PaddleSpeech TTS 模型之间的性能对比,请查看 TTS-Benchmark


4. 效果展示

请参考: Streaming TTS Demo Video


5. 使用教程


5.1 模型训练与推理优化

Default FastSpeech2: tts3/run.sh

流式 FastSpeech2: tts3/run_cnndecoder.sh

HiFiGAN: voc5/run.sh


5.2 语音合成特色应用

一键式实现语音合成: text_to_speech

个性化语音合成 - 基于 FastSpeech2 模型的个性化语音合成: style_fs2

会说话的故事书 - 基于 OCR 和语音合成的会说话的故事书: story_talker

元宇宙 - 基于语音合成的 2D 增强现实: metaverse


5.3 语音合成服务搭建

一键式搭建非流式语音合成服务: speech_server

一键式搭建流式语音合成服务: streaming_tts_server

更多教程,包括模型设计、模型训练、推理部署等,请参考 AIStudio 教程: PP-TTS:流式语音合成原理及服务部署


P.S. 欢迎关注我们的 github repo PaddleSpeech , 是基于飞桨 PaddlePaddle 的语音方向的开源模型库,用于语音和音频中的各种关键任务的开发,包含大量基于深度学习前沿和有影响力的模型。

发布于 2022-10-25 17:12 ・IP 属地北京