You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IOS Chrome中SpeechSynthesis eloquence语音额外朗读内容问题咨询

iOS Chrome中SpeechSynthesis语音朗读内容差异的原因

问题背景

核心朗读代码如下:

const synth = window.speechSynthesis;
const utterance = new SpeechSynthesisUtterance(text);
utterance.voice = selectedVoice;
synth.speak(utterance);

该代码在Mac Chrome上运行正常,但在iOS Chrome中,不同语音的表现出现明显差异:

  • 含compact的语音(如com.apple.voice.compact.en-GB.Daniel):仅朗读传入的text内容,符合预期。
  • 含eloquence的语音(如com.apple.eloquence.en-GB.Grandma):会额外播报调试类信息,顺序为:'speak. Voice name equals "com apple eloquence en-GB Grandma"' → 目标text内容 → 'Voice. speak.'。

iOS Chrome下en-GB语言的可用语音列表:

SpeechSynthesisVoice {voiceURI: "com.apple.eloquence.en-GB.Rocko", name: "Rocko", lang: "en-GB", localService: true, default: true}
SpeechSynthesisVoice {voiceURI: "com.apple.eloquence.en-GB.Shelley", name: "Shelley", lang: "en-GB", localService: true, default: true}
SpeechSynthesisVoice {voiceURI: "com.apple.voice.compact.en-GB.Daniel", name: "Daniel", lang: "en-GB", localService: true, default: true}
SpeechSynthesisVoice {voiceURI: "com.apple.eloquence.en-GB.Grandma", name: "Grandma", lang: "en-GB", localService: true, default: true}
SpeechSynthesisVoice {voiceURI: "com.apple.eloquence.en-GB.Grandpa", name: "Grandpa", lang: "en-GB", localService: true, default: true}
SpeechSynthesisVoice {voiceURI: "com.apple.eloquence.en-GB.Flo", name: "Flo", lang: "en-GB", localService: true, default: true}
SpeechSynthesisVoice {voiceURI: "com.apple.eloquence.en-GB.Eddy", name: "Eddy", lang: "en-GB", localService: true, default: true}
SpeechSynthesisVoice {voiceURI: "com.apple.eloquence.en-GB.Reed", name: "Reed", lang: "en-GB", localService: true, default: true}
SpeechSynthesisVoice {voiceURI: "com.apple.eloquence.en-GB.Sandy", name: "Sandy", lang: "en-GB", localService: true, default: true}
SpeechSynthesisVoice {voiceURI: "com.apple.voice.super-compact.en-GB.Daniel", name: "Daniel", lang: "en-GB", localService: true, default: true}

差异根源

  1. 语音引擎的设计定位不同:eloquence系列是苹果早期的语音合成引擎,带有调试播报特性——最初为了便于开发人员确认语音服务是否正常启动,会在朗读前后额外输出语音标识信息。而compact系列是苹果后续推出的轻量化生产级引擎,移除了这类调试逻辑,仅专注于目标文本的朗读。
  2. 浏览器与系统语音的桥接逻辑:iOS Chrome没有自研语音合成服务,完全依赖iOS系统原生的SpeechSynthesis接口。对于eloquence这类遗留引擎的额外播报内容,Chrome的桥接代码未做过滤,导致调试信息直接被输出;而compact引擎本身无此类输出,因此表现正常。
  3. 平台兼容性优先级:eloquence语音主要是为了兼容旧版iOS应用保留的,苹果并未针对现代浏览器场景做适配优化;而compact语音是面向现代应用设计的,在跨浏览器调用时行为更统一。

内容的提问来源于stack exchange,提问作者Travis Chan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 05:59:59