Crystal 文本转语音(TTS)引擎项目介绍
Crystal 文本转语音(TTS)引擎是一个用 C++ 实现的多语言 TTS 合成框架。这个项目旨在提供一个统一的框架,使开发者能够为不同语言和方言创建 TTS 系统。该框架的独特之处在于,它定义了不同语言或方言的常见 TTS 模块,这些模块之间的接口符合语音合成标记语言(SSML)规范,从而实现标准化、互操作性、多语言能力和可扩展性。
架构设计
Crystal TTS 引擎的架构如图所示(未附图)。这个架构为不同语言的 TTS 合成提供了一个统一的基础。通过 SSML 作为接口来连接各模块,确保了系统的灵活性和互操作性。
SSML 的原生支持
该框架使用 SSML 规范作为模块之间的接口,因此它能够原生支持 SSML 标签。同时,通过 cst::xml::CSSMLTraversal 来将 SSML 文档转换为内部数据结构,开发者无需处理复杂的 SSML 文档解析过程。开发者只需通过覆盖内部数据结构中的函数来实现自己的算法。
动态模块加载与跨平台支持
Crystal 框架支持在不同平台上的动态模块加载。开发者可以为每个模块实现不同的算法,并编译成新的动态库(如 Windows 平台上的 .dll 或 Linux 平台上的 .so)。框架的核心组件是 cst::tts::base::CTextParser 和 cst::tts::base::CSynthesizer,这些组件会自动加载由基于 XML 的配置文件指定的模块。这种设计为在不同的 TTS 引擎或算法之间切换提供了灵活性。
例如,框架可以通过指定不同的配置文件来运行不同的 TTS 引擎,如使用 "cmn.xml" 来运行连续音拼接的普通话 TTS 引擎,或使用 "zh.xml" 来运行基于隐马尔可夫模型(HMM)的中文 TTS 引擎。
多语言 TTS 引擎支持
开发者可以通过重载 cst::tts::base:: 模块来为不同语言实现不同的 TTS 引擎。架构提供了对多语言支持的能力,赋予开发者更多自由来定制他们的语言合成需求。
项目相关信息
此项目由清华-中大媒体科学、技术与系统联合研究中心版权所有。中心拥有创造、修改、复制、编译、删除、重命名、解释和分发源代码的权利。
更多信息可以在研究中心的网站找到:清华-中大联合研究中心。