一个面向实验语音学、声音分析与 Web 音频技术的个人开源项目。
起点:一个实时语谱图工具的重新思考

最初的项目灵感来自开源项目 Spectro。原项目主要解决的是在浏览器中实时生成音频语谱图的问题:通过麦克风或本地音频输入,利用 Web Audio API、FFT 与 GPU 渲染实现低延迟可视化。
然而,对于实验语音学研究而言,仅仅显示一张动态语谱图仍然是不够的。
语音研究者真正关心的是:
- 基频(F0)如何变化?
- 共振峰(Formants)如何反映元音质量?
- 音强曲线如何描述发声强弱?
- 宽带语谱与窄带语谱分别能观察什么?
- 数字音频信号如何对应真实的发声过程?
因此,Spectro Pro 逐渐从一个“语谱图播放器”发展为一个面向语音分析的 Web 实验平台。
从 Spectro 到 Spectro Pro

原始 Spectro 项目专注于实时性能:
- 音频分帧
- Window 函数处理
- FFT 频谱计算
- Web Worker 并行计算
- WebGL 高性能渲染
Spectro Pro 保留了 Web 实时音频处理的核心,同时增加了实验语音学方向的功能设计。
核心功能
1. 宽带与窄带语谱切换
语谱图并不是只有一种观察方式。
宽带语谱(Broadband Spectrogram)
适合观察:
- 元音共振峰结构
- 辅音过渡
- 发音动作时间关系
较短窗口带来更好的时间分辨率。
窄带语谱(Narrowband Spectrogram)
适合观察:
- 基频周期
- 谐波结构
- 声带振动模式
较长窗口提供更好的频率分辨率。
这一设计参考了 Praat 等专业语音分析软件的工作流程。
2. F0、共振峰和音强可视化
未来版本将加入更多分析层:
- F0 曲线
- 半音(Semitone)显示
- Formant F1/F2/F3 轨迹
- Intensity 曲线
目标不是替代专业工具,而是在浏览器环境中提供一个快速、直观的探索工具。
3. 数字音频与声学世界之间的桥梁
开发过程中最大的挑战并不是 FFT 或 Canvas,而是如何连接两个不同的世界:
数字信号处理中,声音是一组采样点;
实验语音学中,声音又代表:
- 声带振动
- 舌位变化
- 口腔共鸣空间
- 发音动作时间结构
例如,dBFS 是数字系统中的电平单位,而 SPL 是物理声压单位,两者并不能简单等同。一个好的可视化工具需要帮助使用者理解这种转换关系。
技术路线
目前项目主要基于 Web 技术:
- TypeScript / JavaScript
- Web Audio API
- FFT 频谱分析
- WebGL 可视化
- 浏览器端实时计算
未来可能探索:
- WebAssembly 加速专业声学算法
- 浏览器端 Praat 类分析能力
- 云端项目管理与 AI 辅助分析
为什么选择 Web?
传统实验语音工具非常强大,例如 Praat 已经成为实验语音学领域的重要基础设施。
但桌面软件也存在一些限制:
- 安装成本
- 平台差异
- 数据共享困难
- 在线教学和展示不方便
Web 平台的优势在于:
打开浏览器,即可开始声音实验。
未来的目标是探索一种更开放的“Phonetics on Web”。
项目思考
Spectro Pro 并不是简单复制一个桌面语音分析软件,而是在探索:
实验语音学工具是否可以像现代 Web 应用一样,更开放、更实时、更易分享?
从实时语谱图,到声学参数分析,再到 AI 辅助整理,声音研究工具可能不再局限于实验室电脑,而成为一个随时可访问的平台。
参考资料
- Spectro 原项目:https://github.com/calebj0seph/spectro
- 作者:蕊添
- 链接:https://www.timhut.qzz.io/article/3af33f23-e781-8050-91fc-d69a2fbf6e7c
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。