Weglot WordPress站点的文字转语音:哪些方案真正有效

1 分钟阅读 16 分钟收听
Weglot WordPress站点的文字转语音:哪些方案真正有效

大多数文字转语音插件都声称兼容Weglot,但实际上能正确处理的寥寥无几。区别在于插件读取内容的方式。从WordPress数据库提取文本的插件,会错过Weglot展示给访客的翻译版本。能够检测当前Weglot语言并从渲染后的页面读取文本的插件,才能生成与访客所见内容一致的音频。

本文将解释其中的技术原因,列出真正的Weglot支持所需满足的条件,并梳理各主流文字转语音插件的处理方式。

为什么Weglot会让大多数文字转语音插件失效

Weglot的工作方式与WPML和Polylang不同。后两者会为每种语言创建独立的文章记录,西班牙语翻译以独立的行存储在WordPress数据库中,拥有独立的文章ID、别名和内容。

Weglot不是这样运作的。Weglot实时翻译页面,原始英文内容保留在数据库中。当访客切换到西班牙语时,Weglot会拦截HTML响应,在页面到达浏览器之前重写可见文本,数据库本身不会发生任何变化。

这对文字转语音插件影响很大。典型的文字转语音插件会挂载在save_postthe_content等钩子上,读取$post->post_content,将文本发送给语音服务商,然后保存一个MP3文件。无论访客查看哪种语言的页面,播放的都是同一个MP3文件。

结果就是:西班牙语访客看到的是西班牙语文本,听到的却是英语音频。播放器正常加载,声音也正常播放,但语言不匹配破坏了体验,也让你安装插件本来要实现的无障碍访问效果大打折扣。

能真正支持Weglot的文字转语音插件必须额外做三件事:在请求时检测访客当前的Weglot语言,从翻译后的文本而非数据库内容生成音频,并按语言缓存音频文件,这样下一位西班牙语访客就不会再次触发付费生成。

对比图:数据库驱动的文字转语音忽略Weglot翻译,DOM驱动的文字转语音生成语言匹配的音频
数据库驱动的插件只从原始文章生成一次音频,DOM驱动的插件则从Weglot提供的翻译页面生成音频。

真正的Weglot支持需要满足哪些条件

用以下五点检查清单评估你正在考虑的任何文字转语音插件。

  1. 插件能从URL或Weglot API检测访客当前激活的Weglot语言。
  2. 插件从翻译后的内容生成音频,而非从数据库原始值生成。
  3. 插件按语言缓存音频文件,每种语言只生成一次。
  4. 插件支持为每种语言指定专属声音,法语内容配法语声音。
  5. 插件支持跨所有已启用Weglot语言批量预生成音频,访客无需等待首次合成。

大多数插件只满足其中一两条,能全部满足的极少。

主流文字转语音插件如何处理Weglot

我们查阅了以下各插件的公开文档、WordPress.org页面和插件说明。部分开发者可能存在未记录在文档中的Weglot处理逻辑,但没有文档记录就无法保证可靠性。

插件检测Weglot语言读取翻译DOM按语言缓存每种语言独立声音按语言批量生成
TTSWP支持支持支持支持支持(Pro和Agency计划)
BeyondWords无文档记录(多语言需手动配置:在插件设置中添加次要语言,每篇文章单独选择语言)不支持(从WordPress数据库将文章内容发送到BeyondWords API,不读取渲染后的页面)按文章和所选语言存储音频,但仅在每篇文章手动设置语言时生效支持(主声音及每篇文章单独选择的次要语言和声音)批量生成音频功能存在,但仅针对每篇文章已设置的语言,不支持自动按Weglot语言批量运行
Trinity Audio无文档记录播放器加载时从DOM读取文章文本,但实时翻译仅限6种语言,且为独立功能按文章及该文章设置的语言在服务端生成音频,无按Weglot语言缓存的文档记录支持,但为文章级别(需在文章层面手动选择语言)无文档记录
GSpeech无文档记录。多语言模式官方支持GTranslate、WPML、Polylang和TranslatePress,未列出Weglot支持(点击时读取DOM)Weglot场景无文档记录已列出的多语言插件支持(根据当前站点语言自动选择声音),Weglot行为无文档记录无文档记录
ResponsiveVoice支持(点击时读取DOM)支持(浏览器Web Speech API)不适用(不存储音频文件)支持(语言和声音参数可在短代码和设置中配置,映射至Web Speech API声音)不适用(不支持预生成)
Voicer无文档记录。插件说明中仅列出WPML作为多语言集成方案支持(从DOM读取选中文本,点击时发送至Google Cloud TTS)实时播放不适用。可通过CSS类(如voicer-voice-en-GB-Wavenet-A)为每个元素设置声音支持,但需通过每个元素的CSS类手动配置,不会自动映射到Weglot语言不适用(不支持预生成)

TTSWP

TTSWP在请求时检测当前激活的Weglot语言,并从翻译后的内容生成音频。每种语言都有独立的MP3缓存文件。插件提供语言声音映射设置页面,可为每种Weglot语言分配独立的声音。Pro和Agency计划的批量生成功能可预先为所有已启用的语言渲染音频。完整的集成说明请参阅Weglot集成文档

BeyondWords

BeyondWords专注于神经网络语音和面向新闻编辑室及大型出版商的音频CMS功能。公开文档中没有针对Weglot的处理说明。插件在发布时从已存储的文章内容生成音频,这意味着Weglot翻译不会被自动识别。BeyondWords是单语言出版商的有力选择,Weglot用户在正式使用前应充分测试。

Trinity Audio

Trinity Audio是一个带有WordPress连接器的SaaS平台。播放器以JavaScript形式加载,初始化时从DOM读取文章文本,再发送至Trinity服务器生成音频。公开文档未描述Weglot专属语言检测或每语言声音映射功能。免费计划每月支持最多5篇文章,可使用125种以上语言和600种以上声音。

GSpeech

GSpeech使用Google Cloud Text-to-Speech,并在文章中添加收听按钮。公开文档未提及Weglot。插件在点击时读取页面可见内容,这意味着如果访客已切换语言,可能会生成翻译后的音频。按语言映射声音的功能无文档记录。

ResponsiveVoice

ResponsiveVoice完全在浏览器中通过Web Speech API运行。由于它在访客点击播放时从渲染后的DOM读取文本,因此能自动跟随Weglot翻译。语音质量低于基于云端的服务商,商业使用需付费计划。该插件最后一次更新于2025年4月14日(版本1.7.15),已超过一年未有积极维护。

Voicer

Voicer使用Google Cloud语音并主打WPML支持。公开文档未提及Weglot。插件在发布时从数据库生成音频,因此多语言音频需要像WPML这样的数据库级翻译系统才能正常工作。

规律很明显。在发布时从数据库生成音频的插件,需要WPML这类数据库级翻译系统。在请求时从DOM生成音频的插件,才能与Weglot配合工作。TTSWP正是基于后一种模型构建的,并内置了语言声音命名映射和按语言缓存机制。

五分钟内测试Weglot与文字转语音的兼容性

对任何你正在考虑的文字转语音插件运行这个测试。你需要一个已激活Weglot且至少启用一种目标语言的测试站点。

  1. 安装并激活文字转语音插件。
  2. 用默认语言打开一篇文章,确认音频播放器正常显示和播放。
  3. 使用Weglot语言切换器切换到目标语言,不要刷新页面。
  4. 点击音频播放器的播放按钮。
  5. 听十秒钟。

以下三种结果会告诉你插件的实际行为。

音频以原始语言播放。插件从数据库读取内容,而非从翻译后的DOM读取,Weglot并未真正被支持。

音频以目标语言播放,但使用了错误的声音或机械的通用声音。插件检测到了语言,但没有声音映射功能。勉强满足无障碍需求,但无法达到品牌级的音频质量。

音频以目标语言播放,且使用了与该语言匹配的自然声音。插件正确处理了Weglot。测试后查看音频库,确认文件已缓存,而非每次播放都重新生成。

用第二种目标语言重复测试,确认缓存在多种语言下均正常工作。

哪款插件适合哪种场景

最合适的选择取决于你的需求和预算。

已在使用Weglot,希望每种语言都有专业音频。在我们测试的所有插件中,TTSWP是唯一一款记录并满足全部五项Weglot处理要求的插件,内置语言声音映射、按语言缓存和批量生成功能。从免费计划开始使用。

发布单语言内容,需要企业级音频功能。BeyondWords提供更强大的音频CMS、播客分发和声音克隆功能。如果你不使用Weglot,缺少Weglot专属处理并不影响使用。

希望零成本,接受基础的浏览器语音。ResponsiveVoice从DOM读取内容,自动兼容Weglot,但语音质量较低且有授权限制。

已在使用WPML而非Weglot。大多数插件都能正常工作,因为WPML将翻译存储在数据库中。TTSWP通过专属的WPML集成支持WPML。

同时选择翻译方案和文字转语音插件。如果音频质量和语言覆盖范围是优先考虑因素,选择TTSWP加Weglot。如果需要翻译人员对每篇翻译进行编辑管控,选择WPML和任何支持WPML的文字转语音插件。

常见问题

Weglot会自动翻译音频文件吗?

不会。Weglot翻译HTML、JSON及少数其他文本格式,不翻译MP3文件。文字转语音插件必须针对每种语言,从翻译后的文本生成新的音频文件。TTSWP在首次请求时完成这一步骤,然后缓存结果,该语言的后续访问直接使用缓存的音频文件。

可以在Weglot中使用ElevenLabs的声音吗?

可以。TTSWP默认使用ElevenLabs的声音。你可以在语言声音映射设置中为每种Weglot语言分配不同的ElevenLabs声音。ElevenLabs支持多种语言,绝大多数Weglot语言对都能配置到听起来自然的母语声音。

Weglot更新翻译后,音频会自动重新生成吗?

不会。音频按语言和文章分别缓存。如果你编辑了原始文章,TTSWP可以重新生成音频。如果Weglot在其控制台更新了翻译,现有音频仍会保持缓存状态。当你知道某个翻译已更新时,在文章列表中点击"重新生成",或使用批量生成功能强制刷新。

这适用于Weglot的子目录和子域名配置吗?

适用。TTSWP从Weglot读取当前语言,而非依赖URL结构。子目录配置(example.com/es/)和子域名配置(es.example.com)的处理方式完全相同。插件向Weglot查询当前请求的激活语言,然后生成或提供对应的音频文件。

多语言音频需要多少费用?

每种语言在首次为某篇文章生成该语言的音频时消耗积分。一篇1000字符的文章支持五种语言,首次跨所有语言播放时约消耗5000个积分。此后,缓存文件直接提供服务,不再产生额外费用。请查阅积分文档了解完整的计费细节。

下一步

在你的Weglot站点上试用TTSWP。从WordPress.org安装免费版本,在总览控制台中激活Weglot集成,然后为每种语言映射一个声音。免费计划提供的字符额度足以测试两到三篇短文章的两种语言。如果遇到任何问题,Weglot集成文档涵盖了我们在生产环境中遇到的所有边界情况。