# 语音朗读

语音朗读（TTS）把 AI 的回复读出来，适合边听边做别的事。入口在「设置 → 朗读」，也可以在消息气泡上直接点朗读按钮。

## 两种引擎

AiVerse 支持两种朗读引擎，可在设置里切换：

- **系统 TTS（默认，离线免费）**：调用设备自带的语音引擎（Android `TextToSpeech`），不联网、不花钱，音色与语言由系统引擎和系统语言决定。设备需装有可用的语音引擎（多数系统自带，缺失时可在系统设置里安装）。
- **在线 TTS（可选）**：把文本发给在线接口，拿回音频播放。音色更自然、可指定发音人，但需要自备接口与 API Key。

开启「启用在线语音」且接口配置完整时使用在线接口，否则回退到系统 TTS。

## 工作原理

- **系统 TTS**：把回复的 Markdown 提取为纯文本（自动跳过或提示代码块、去掉格式符号、链接保留文字、图片与表格简化），按引擎长度上限（约 3500 字符）分段入队，由系统引擎逐段朗读。语速、音调可调。
- **在线 TTS**：按 OpenAI `/audio/speech` 兼容协议，把文本 POST 到接口，拿回 mp3 用播放器顺序播放。单段超过约 4000 字符会自动分段，逐段请求、播完再请求下一段。接口类型可选「自动检测 / OpenAI 兼容 / Fish Audio」，App 会据此拼接请求地址与请求体。

## 设置项

- **语速**：0.5x～2.0x 滑杆。
- **音调**：0.5～2.0 滑杆。
- **自动朗读新回复**：回复生成完成后自动朗读。
- **提示代码块**：朗读时跳过代码块，或读一句「代码块，请查看」。
- **更换系统 TTS 引擎**：跳到系统语音设置，选择设备上的语音引擎（更换后下次朗读自动生效）；设备未装语音引擎时可在这里安装。
- **在线 TTS 接口（可选）**：开关、接口类型、接口地址、API Key、模型、音色。

## 在线接口推荐平台

系统 TTS 完全免费、离线可用，日常够用。想要更自然的中文音色时，可选以下**在线**接口（均按 OpenAI `/audio/speech` 兼容或 Fish Audio 协议接入）：

- **Fish Audio**：接口地址 `https://api.fish.audio`，接口类型选「Fish Audio」，模型可填 `s2.1-pro-free`，API Key 在其官网 API Keys 页面获取。有免费额度。
- **硅基流动（SiliconFlow）**：接口地址 `https://api.siliconflow.cn/v1`，接口类型「OpenAI 兼容」，模型如 `FunAudioLLM/CosyVoice2-0.5B`，音色如 `FunAudioLLM/CosyVoice2-0.5B:alex`。新用户有免费额度，部分音色需实名。
- **OpenAI 兼容任意中转/自建**：接口地址填 `.../v1`，模型如 `tts-1` 或 `gpt-4o-mini-tts`，音色如 `alloy`。只要能兼容 `/audio/speech` 即可。

> 接口地址可填完整地址（含 `/audio/speech` 或 `/v1/tts`）或只填域名，App 会按接口类型补全路径。免费额度与是否需实名以各平台当期政策为准。

## 使用方法

- 在任意 AI 回复的气泡上点朗读按钮开始朗读，再点一次停止；正在朗读的消息会高亮，且**已读文字会随朗读进度逐字变成主题色**，读完整条后恢复原样。
- 开启「自动朗读新回复」后，每条新回复生成完会自动朗读。
- 朗读期间可随时点停止；切换消息会先停止当前朗读再开始新的。
