恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

unilm GSLM 语音离散单元质量评估:基于 ABX 度量的特征转储与评分完整流程

  • 首页
  • 资讯中心
  • /
  • unilm GSLM 语音离散单元质量评估:基于 ABX 度量的特征转储与评分完整流程

相关资讯

2小时跑通一台ESP32智能小车:接线、测距、自主避障的完整走查 2026/9/13 18:37:23
fairseq 优化器体系完全指南:从 FairseqOptimizer 基类到 Adam、Adafactor 与 FP16 混合精度实战 2026/9/13 18:37:23
Keil MDK 主题美化与代码格式化:从 global.prop 到 AStyle 实战指南 2026/9/13 18:37:23

最新资讯

Roo Code 如何配置 Auto-Approve 权限与命令允许/拒绝列表以自动执行命令
FOC电机驱动为何难做小体积高扭矩?通用MCU+硅MOS的物理账
MySQL大批量数据导入加速实战:绕过SQL解析直连InnoDB
使用 cilium multicast add 将全部节点加入组播组:Cilium 多播组管理实战指南
嵌入式转Linux服务端:C++系统编程能力迁移指南
cua-auto 跨平台 GUI 自动化库实战指南:pyautogui 风格的鼠标、键盘、屏幕、窗口、剪贴板与 Shell/PTY 操作

今日推荐

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化
Flutter应用改名全指南:从Android到iOS的配置与工具实践

本周热门

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化
Flutter应用改名全指南:从Android到iOS的配置与工具实践

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

unilm GSLM 语音离散单元质量评估:基于 ABX 度量的特征转储与评分完整流程

发布时间:2026/9/13 18:37:23
unilm GSLM 语音离散单元质量评估:基于 ABX 度量的特征转储与评分完整流程 unilm GSLM 语音离散单元质量评估基于 ABX 度量的特征转储与评分完整流程【免费下载链接】unilmLarge-scale Self-supervised Pre-training Across Tasks, Languages, and Modalities项目地址: https://gitcode.com/GitHub_Trending/un/unilm本文围绕 GSLMGenerative Spoken Language Modeling示例代码中的 ABX 评估方案展开讲解如何对 Speech-to-Unit 量化后的离散语音单元进行音位区分度、词区分度与类词性ABX三项指标的度量。读完本文你将掌握从测试集声学特征提取、K-means 量化特征转储dump到调用 Libri-light 的eval_ABX.py脚本计算最终 ABX 分数的完整可复现流程并理解各命令行参数与底层源码调用链的对应关系。1. ABX 度量在 GSLM 评估体系中的位置GSLM 系统由三个组件构成speech2unit语音到离散单元的量化、ulm单元语言模型、unit2speech单元到语音的合成定义见 GSLM 总览文档。为了评估离散单元到底好不好GSLM Metrics 文档 给出了三类互补的度量ASR 指标用 ASR 模型把合成语音转写成文本再用基于文本的指标如 BLEU、WER评估适合端到端地看系统最终效果ABX 指标直接在量化表示上评估音位类别分离得有多好即本节的主题sWUGGY / sBLIMP零样本语义类判别度量。ABX 由三项子指标组成Aphoneme discriminability同一语音类别内样本应该彼此更接近Bword discriminability不同词之间应该彼此更远离Xword-likeness词内平均距离应小于词间平均距离。这三项合起来刻画了离散单元在类内紧致、类间分离、类间一致性三个维度上的质量。ABX 评估的完整生命周期life cycle包含四个步骤训练声学模型或复用现成声学模型通过 K-means 聚类模型学习语音的量化使用训练好的聚类计算 ABX 所需的离散特征利用 Libri-light 的 ABX 评估脚本在离散特征上计算 ABX 分数。本节聚焦后两步即假设前两步已经完成已有声学模型 checkpoint 和 K-means 量化模型只做特征提取与 ABX 评分计算。2. 前置准备Libri-light 环境与数据ABX 评分依赖 Libri-light 仓库提供的eval_ABX.py脚本及其配套的 ABX 评估数据.item文件。需要按 Libri-light 官方说明安装运行环境按其 ABX 评估章节的指引下载所需的ABX_data数据项每个测试子集一个.item文件如eval/ABX_data/dev-clean.item。这些文件位于 Libri-light 仓库中本文不重复其安装细节只关注 unilm 仓库侧的对接方式。此外特征转储步骤需要一个 manifest 文件。从源码 clustering/utils.py 的get_audio_files实现可以确认manifest 的格式为path_of_root_directory_containing_audio_files relative_path_of_audio_file_1\tnumber_of_frames_1 relative_path_of_audio_file_2\tnumber_of_frames_2 ...即第一行为存放音频的根目录其后每行为相对音频路径 \t 帧数两列制表符分隔的内容。该格式与 speech2unit 文档 中训练 K-means 时使用的 manifest 完全一致。源码中的assert len(items) 2也表明每行必须严格为两列否则解析会直接报错。3. 转储量化特征Dumping quantized featuresABX 计算的第一步是转储测试集每段音频对应的量化后表示而非原始连续声学特征。仓库提供的脚本是 dump_abx_feats.py调用方式如下TYPEhubert LAYER6 CKPT_PATHPATH_TO_HUBERT_MODEL_CHECKPOINT_FILE KM_MODEL_PATHPATH_TO_PRETRAINED_KM_MODEL_FILE SUBSETdev-clean MANIFESTPATH_TO_MANIFEST_FOR_LS_DEV-CLEAN DATA_DIRPATH_TO_DIR_TO_STORE_FEATURES/$SUBSET PYTHONPATH. python examples/textless_nlp/gslm/metrics/abx_metrics/dump_abx_feats.py \ --feature_type $TYPE \ --kmeans_model_path $KM_MODEL_PATH \ --checkpoint_path $CKPT_PATH \ --layer $LAYER \ --manifest_path $MANIFEST \ --out_dir_path $DATA_DIR \ --extension .flac3.1 参数逐项说明结合 dump_abx_feats.py 的get_parser函数各参数的约束如下参数必填取值 / 默认说明--feature_type是logmel/hubert/w2v2/cpc四选一声学特征类型决定使用哪个特征读取器--kmeans_model_path是K-means 模型文件路径用joblib加载的量化模型km.bin--manifest_path否manifest 文件路径根目录 音频相对路径与帧数格式见上文--checkpoint_path否声学模型 checkpoint预训练声学模型权重如 HuBERT-Base 的.pt文件--layer否整数默认-1从声学模型的第几层抽取特征-1为最后一层--out_dir_path是输出目录每段音频生成一个.npy文件存放于此--extension否默认.flacmanifest 中音频文件扩展名用于拼接输出文件名其中--feature_type的四种选择与 speech2unit/README.md 中支持的声学模型一一对应该文档还给出了 Modified CPC、HuBERT-Base、Wav2Vec 2.0 三种预训练声学模型以及 KM50KM500 各档 K-means 量化模型的下载清单KM_MODEL_PATH可直接从中选取。3.2 源码层面的处理流程dump_abx_feats.py的main函数流程非常清晰可分为四段声学特征提取。调用 pretrained/utils.py 的get_features(feature_type, checkpoint_path, layer, manifest_path, sample_pct1.0, flattenFalse)。get_features内部通过get_feature_reader按feature_type分发到HubertFeatureReader、Wav2VecFeatureReader、LogMelFeatureReader或CpcFeatureReader逐文件解析 manifest第一行为 root其余行取第一列拼接为完整路径、依次读取音频并抽取特征最终以未展平的列表形式返回flattenFalse保证一段音频对应一个特征矩阵。以 hubert_feature_reader.py 为例HubertFeatureReader通过fairseq.checkpoint_utils.load_model_ensemble_and_task加载模型对超长音频按max_chunk1600000分块调用model.extract_features(..., output_layerself.layer)后再拼接从而得到指定--layer层的隐藏表示序列。加载 K-means 模型。用joblib.load读取--kmeans_model_path指向的聚类模型并关闭verbose。该模型由 cluster_kmeans.py 训练得到——脚本使用sklearn.cluster.MiniBatchKMeans--num_clusters默认 50--init默认k-means与 speech2unit 文档中训练 K-means和用 K-means 量化两步产出的是同一类文件。逐段预测 one-hot 编码。对每段音频特征矩阵执行kmeans_model.predict(feats)得到帧级聚类下标序列pred再经one_hot(pred, kmeans_model.n_clusters)展开为形状(T, n_clusters)的 0/1 矩阵。也就是说转储到磁盘的特征是离散单元的 one-hot 编码这正是 ABX 评估要求输入类别表示的原因——ABX 的相似度计算词内/词间距离必须在离散类别空间上进行而不在连续声学空间上。写盘。输出文件名为音频文件名去掉扩展名 .npybase_fname os.path.basename(fnames[i]).rstrip(args.extension)随后np.save保存 one-hot 矩阵。这些.npy文件名与 Libri-light.item文件中登记的条目名相互对应是下一步评分时的匹配键。4. 使用 Libri-light 计算 ABX 分数在 Libri-light 环境就绪的前提下用其eval_ABX.py脚本对上一步的.npy特征目录打分LIBRILIGHT_ROOTPATH_TO_LIBRILIGHT SUBSETdev-clean DATA_DIRPATH_TO_DIR_TO_STORE_FEATURES/$SUBSET ITEM_FILE_PATH$LIBRILIGHT_ROOT/eval/ABX_data/$SUBSET.item OUT_DIRPATH_TO_DIR_TO_STORE_ABX_SCORES/$SUBSET FILE_EXTENSION.npy FEATURE_SIZE0.02 # depends on the model used PYTHONPATH$LIBRILIGHT_ROOT \ python $LIBRILIGHT_ROOT/eval/eval_ABX.py \ $DATA_DIR \ $ITEM_FILE_PATH \ --file_extension $FILE_EXTENSION \ --feature_size $FEATURE_SIZE \ --out $OUT_DIR \ --mode all关键参数说明位置参数第一个是上一步输出的特征目录DATA_DIR第二个是该子集的.item文件dev-clean子集对应dev-clean.item它登记了参与评分的词条与对应音频条目--file_extension特征文件扩展名因dump_abx_feats.py固定输出.npy此处为.npy--feature_size单帧特征的时长秒必须与特征帧率匹配HuBERT 与 Wav2Vec 2.0FEATURE_SIZE0.02对应 50 Hz 帧率CPC 与 Log MelFEATURE_SIZE0.01对应 100 Hz 帧率。帧率不一致会导致词内/词间距离的时间对齐出现偏差进而影响 A/B/X 各项数值的可信度--outABX 分数输出目录按子集组织如ABX_SCORES/dev-clean--mode all一次性计算 A、B、X 全部三项指标GPU 加速若可用 GPU加上--cuda标志可显著加快计算。5. 流程小结与相关文件索引整体数据流可以概括为音频 manifest ──(声学模型 --layer)── 连续特征 (T, D) ──(K-means predict one_hot)── 离散 one-hot (T, n_clusters) ── 逐段 .npy ──(Libri-light eval_ABX.py .item)── A / B / X 分数需要牢记的两个易错点其一dump_abx_feats.py输出的文件名必须能被.item文件中的条目匹配到因此 manifest 中的文件名与 Libri-light ABX 数据的命名需保持一致如dev-clean子集其二FEATURE_SIZE必须随--feature_type切换0.02 vs 0.01这是原文档中特别强调的依赖项。相关代码与文档索引便于继续深入评估流程说明本文主体来源abx_metrics/README.md特征转储脚本dump_abx_feats.py三类度量的总说明ASR / ABX / sWUGGYmetrics/README.md声学模型与 K-means 模型下载清单speech2unit/README.mdK-means 训练脚本clustering/cluster_kmeans.py特征提取公共工具manifest 解析、按模型类型分发pretrained/utils.py、clustering/utils.py【免费下载链接】unilmLarge-scale Self-supervised Pre-training Across Tasks, Languages, and Modalities项目地址: https://gitcode.com/GitHub_Trending/un/unilm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号