统一声学自监督表示 + 大模型声学场景理解与描述的轻量工具包。
SonoScribe 面向科研与升学项目实践,把「声学特征前端 → 自监督表示 → 大模型场景描述」串成一条清晰的流水线:
- 纯 Python / NumPy 内核:特征提取、自监督编码器、场景描述全部离线可跑, 不依赖 PyTorch 或联网。
- 离线优先:默认使用确定性的模板描述器,无需任何外部 API 即可产出中文 / 英文的声学场景描述。
- 可选后端:需要时再启用 PyTorch 编码器或 OpenAI 兼容的大模型接口。
import numpy as np
from sonoscribe.config import FeatureConfig
from sonoscribe.features import log_mel_spectrogram
sr = 16000
t = np.arange(sr) / sr
wave = 0.5 * np.sin(2 * np.pi * 440 * t).astype("float32")
cfg = FeatureConfig(sample_rate=sr, n_mels=64)
logmel = log_mel_spectrogram(wave, cfg)
print(logmel.shape) # (n_frames, 64)pip install -e . # 仅需 NumPy
pip install -e ".[torch]" # 可选:启用 PyTorch 编码器| 阶段 | 能力 | 入口 |
|---|---|---|
| 特征 | STFT / 梅尔谱 / MFCC / 描述子 | sonoscribe.features |
| 表示 | 纯 NumPy 自监督编码器(可选 PyTorch) | PredictiveEncoder |
| 描述 | 场景理解 + 大模型 / 模板描述 | describe_audio |
sonoscribe info clip.wav # 声学场景报告 (JSON)
sonoscribe embed clip.wav --encoder predictive
sonoscribe describe clip.wav --lang zh # 自然语言场景描述MIT,详见 LICENSE。