7 篇文章带有标签 “text-to-speech”

浏览器原生语音合成(TTS)开发经验

最近先后在站点上线了两个纯前端的朗读工具:Read Aloud智能朗读阅读器。两者都基于浏览器的 Web Speech API 实现,没有后端、没有上传、没有第三方语音服务。开发过程中踩了一些坑,也积累了一些可复用的经验,记录如下。

一、Web Speech API 基础

浏览器 TTS 的入口非常简洁:

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

window.speechSynthesis 负责全局的语音队列,SpeechSynthesisUtterance 则是每一次发音的单元。在真正可用之前,建议先做兼容性判断:

if (!window.speechSynthesis) {
  alert('当前浏览器不支持 Web Speech API,无法使用朗读功能。');
  return;
}

目前 Safari、Chrome、Edge 等现代浏览器都支持该 API,但不同浏览器在语音质量、语音名、事件触发等方面差异明显,后面会详细说。

二、语音列表是异步加载的

第一次调用 speechSynthesis.getVoices() 时,返回的数组经常为空。这是因为浏览器需要异步加载系统语音包。

智能朗读阅读器是什么

智能朗读阅读器是一款基于 Web Speech API 的纯前端朗读工具。它采用左右分屏设计:左侧为阅读区,右侧为可折叠编辑区,适合朗读中文小说、英文范文、演讲稿等长文本。所有文本处理与语音合成都在浏览器本地完成,无需上传、无需后端。

核心功能

  • 左右分屏阅读:左侧阅读区、右侧可折叠编辑区,加载大文本后阅读区独立滚动,页面不再被撑高。
  • 自动分句与高亮:按中英文标点自动切分长文,朗读时当前句高亮显示,已读句子自动淡化。
  • 点击跳转朗读:在阅读区点击任意句子,即可从该句开始播放。
  • 语速 / 音调调节:语速支持 0.4x ~ 2.5x,音调支持 0.5 ~ 2.0。
  • 字号 / 行高调节:阅读区字号与行高可调,偏好自动保存到本地。
  • 语音选择:自动加载系统语音,英文文本默认优先使用 Ava 语音。
  • 上下句跳转:支持按钮或键盘 ← / → 快速切换到上一句 / 下一句。
  • 循环播放:支持单句循环与全文循环,适合重点句子跟读或反复听诵。
  • 朗读进度条:底部实时显示整体朗读进度。
  • 预设经典文本:内置《背影》、I Have a Dream、Gettysburg Address 等范文,一键体验。
  • 主题切换:支持浅色 / 深色模式,长时间阅读更护眼。
  • 文件导入:支持 .txt / .md 等文本导入,也支持拖拽文件到阅读区。
  • 快捷键:空格播放 / 暂停,Ctrl + Enter 加载文本,Esc 停止,← / → 切换句子。
  • 纯本地运行:无后端、无上传、无依赖,纯静态 HTML 页面。

Read Aloud 是什么

Read Aloud 是一款纯前端、无需上传文本的浏览器朗读工具。它基于 Web Speech API 实现,全部文本处理与语音合成都在本地完成,适合朗读英文范文、中文小说、演讲稿、技术文档等长文本。

核心功能

  • 本地朗读:文本不离开浏览器,无上传、无服务端、保护隐私。
  • 自动分句:按段落和标点自动切分长文,避免单次文本过长被浏览器截断。
  • 当前句高亮:朗读时文本区切换为阅读视图,当前句子高亮并自动滚动到视野中央。
  • 点击跳转播放:在阅读视图中单击任意句子,即可从该句开始播放。
  • 语速与音调调节:支持 0.5x ~ 2.0x 语速调节,以及 0.5 ~ 2.0 的音调调节。
  • 多语音选择:自动根据语言选择系统语音,也支持手动切换。
  • 中英文支持:自动检测中英文比例,或手动指定中文 / 英文。
  • 进度与时间显示:实时显示当前句数、总句数和已用时间。

使用方式

  1. 打开 Read Aloud
  2. 将需要朗读的文本粘贴到编辑区。
  3. 点击 ▶ 朗读 开始播放。
  4. 需要暂停时点击 ⏸ 暂停,或点击 ⏹ 停止 结束朗读并恢复编辑。

快捷键

  • 在编辑区内按 Ctrl / ⌘ + Space:播放 / 暂停。
  • 焦点在编辑区外时,按 Space:快速播放 / 暂停。
  • Esc:关闭帮助窗口。

浏览器兼容性

Read Aloud 依赖 Web Speech API,建议使用 Safari、Chrome、Edge 等

极简长文朗读器是什么

极简长文朗读器是一款基于浏览器 Web Speech API 的本地文本朗读工具。它采用左右分屏的极简设计:左侧输入文本,右侧实时生成可朗读的阅读视图,全部处理都在浏览器内完成,无需上传、无需后端。

核心功能

  • 左右分屏实时同步:左侧编辑文本,右侧阅读视图即时解析渲染,边写边读。
  • 中英文智能识别:自动判断文本为中文还是英文,也可手动选择语种。
  • 按句高亮:朗读时当前句子以黄色高亮显示,并自动滚动到视野中央。
  • 点击跳转播放:点击阅读视图中的任意句子,即可从该句开始朗读。
  • 语速调节:支持 0.5x ~ 2.0x 语速调节,拖动滑块即可实时生效。
  • 发音人选择:自动加载系统语音,支持手动切换中英文发音人。
  • 防中断保活:针对部分浏览器长段朗读容易中断的问题,内置保活机制。
  • 内置范例:一键加载中英文示例文本,快速体验朗读效果。

与 Read Aloud 的区别

特性 极简长文朗读器 Read Aloud
界面 左右分屏,实时同步 编辑/阅读视图切换
分句 按中英文标点实时切分 段落 + 句子双层切分
音调调节 支持
进度显示 句数 / 时间
设计 极简 Tailwind 风格 卡片式工具风格

可以根据个人喜好选择更适合自己的一款,两者都是纯浏览器本地运行。

SeamlessM4T — Massively Multilingual & Multimodal Machine Translation(大规模多语言和多模式机器翻译)

Seamless Communication

  • ASR: Automatic speech recognition for 96 languages.
  • S2ST: Speech-to-Speech translation from 100 source speech languages into 35 target speech languages.
  • S2TT: Speech-to-text translation from 100 source speech languages into 95 target text languages.
  • T2ST: Text-to-Speech translation from 95 source text languages into 35 target speech languages.
  • T2TT: Text-to-text translation (MT) from 95 source text languages into 95 target text languages.

SeamlessM4T 概述

安装 [Seamless Communication][seamless_communication]

克隆仓库 git clone https://github.

2023 年全国行业职业技能竞赛

该文档详细介绍了 2023年全国行业职业技能竞赛,涵盖了多个技术任务。任务一侧重于语音处理,通过Python代码展示了如何利用腾讯云API进行语音识别和语音合成,包括音频文件的Base64编码转换和请求参数配置,并输出了实际的识别结果。任务二则聚焦于语音模型,阐述了声学模型的初始化、加载预训练模型以及语音识别的整个流程,并提到了模型训练的配置。任务三涉及文本处理,通过requests库抓取网页内容,并利用re、BeautifulSoup和lxml.etree等工具进行网页内容解析和文本提取,同时展示了文本清洗、数据扩充以及使用Stanford CoreNLP进行中文分词、词性标注和命名实体识别。任务四是数据分析与可视化,展示了如何从Excel文件中读取急诊科就诊数据,并计算男女比例、每日就诊人数和各诊室就诊人数,最终通过matplotlib库生成饼状图、柱状图和折线图进行数据可视化。

2023年全国行业职业技能竞赛 第二届全国电子企业职业技能竞赛

任务一

任务1.1

任务1.2

PaddleSpeech 快速入门

PaddleSpeech

介绍

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

功能

  • 语音识别
  • 语音合成
  • 声音分类
  • 声纹提取
  • 标点恢复
  • 语音翻译

学习

安装

conda create -n paddlespeech python==3.10.9
conda activate paddlespeech

pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
pip install pytest-runner paddlespeech

pip install "numpy<1.24"

测试数据下载

wget -c https://paddlespeech.bj.bcebos.com/PaddleAudio/zh.wav
wget -c https://paddlespeech.bj.bcebos.com/PaddleAudio/en.wav

FAQ paddlespeech asr --lang zh --input zh.