语音情感识别结果保存在哪?outputs目录时间戳命名规则
1. 引言
在使用 Emotion2Vec+ Large 语音情感识别系统进行音频分析时,用户最常关心的问题之一是:识别结果究竟保存在哪里?如何快速定位和管理这些输出文件?
本文将基于“Emotion2Vec+ Large语音情感识别系统 二次开发构建by科哥”这一镜像环境,深入解析其结果存储机制,重点讲解outputs目录的结构设计与时间戳命名规则。通过本指南,您不仅能准确找到每次识别的输出内容,还能理解其组织逻辑,便于后续的数据处理、批量分析或二次开发。
文章适用于所有使用该WebUI系统的用户,无论您是初次上手还是希望优化工作流,都能从中获得实用的操作建议。
2. 输出目录结构总览
2.1 默认输出路径
系统默认将所有识别结果保存在以下路径中:
outputs/这是一个根级输出目录,位于应用运行容器的/root路径下。每次执行语音情感识别任务后,系统会自动在此目录下创建一个独立的子目录来存放本次任务的所有相关文件。
2.2 子目录命名规则:时间戳格式
每个子目录采用统一的时间戳命名方式:
outputs_YYYYMMDD_HHMMSS/其中: -YYYY:四位年份(如 2024) -MM:两位月份(01–12) -DD:两位日期(01–31) -HH:两位小时(00–23,24小时制) -MM:两位分钟(00–59) -SS:两位秒数(00–59)
示例说明
假设某次识别发生在2024年1月4日 晚上10点30分整,则生成的目录名为:
outputs/outputs_20240104_223000/这种命名方式具有以下优势: - ✅唯一性:确保不同任务不会覆盖彼此的结果 - ✅可排序性:按字母顺序即为时间先后顺序,便于查找最新或历史记录 - ✅无需额外元数据:从目录名即可推断处理时间,方便审计与追踪
3. 单次任务输出内容详解
进入任一以时间戳命名的子目录后,您会看到如下标准文件结构:
outputs_YYYYMMDD_HHMMSS/ ├── processed_audio.wav # 预处理后的音频 ├── result.json # 情感识别结果 └── embedding.npy # 特征向量(可选)下面我们逐一解析各文件的作用与格式。
3.1 processed_audio.wav:预处理音频文件
这是原始上传音频经过系统标准化处理后的版本。
| 属性 | 值 |
|---|---|
| 格式 | WAV(未压缩 PCM) |
| 采样率 | 16 kHz |
| 位深 | 16-bit |
| 声道 | 单声道(Mono) |
为什么需要这个文件?
系统内部模型要求输入为 16kHz 单声道 WAV 格式。无论您上传的是 MP3、M4A 还是其他格式,系统都会自动完成格式转换与重采样,并将结果保存为此文件,供调试或复用。提示:若需验证原始音频是否被正确解析,可下载此文件进行听觉检查。
3.2 result.json:核心识别结果文件
该 JSON 文件包含完整的语音情感分析结果,是后续自动化处理的主要数据源。
文件示例内容
{ "emotion": "happy", "confidence": 0.853, "scores": { "angry": 0.012, "disgusted": 0.008, "fearful": 0.015, "happy": 0.853, "neutral": 0.045, "other": 0.023, "sad": 0.018, "surprised": 0.021, "unknown": 0.005 }, "granularity": "utterance", "timestamp": "2024-01-04 22:30:00" }字段说明
| 字段 | 含义 |
|---|---|
emotion | 主要识别出的情感标签(英文小写) |
confidence | 置信度(0~1之间的浮点数) |
scores | 所有9类情感的得分分布,总和为1.0 |
granularity | 分析粒度:utterance(整句)或frame(帧级) |
timestamp | 任务执行时间(ISO格式字符串) |
应用场景建议: - 自动化脚本可通过读取
emotion和confidence实现分类归档 - 科研分析可利用scores字段研究情感连续性或混合情感现象 - 时间序列分析可结合timestamp与其他日志对齐
3.3 embedding.npy:音频特征向量(可选)
此文件仅在 WebUI 中勾选了“提取 Embedding 特征”选项时生成。
数据格式
- 文件类型:NumPy
.npy二进制数组 - 维度:取决于模型配置(通常为
[T, D]形式,T为时间步,D为特征维度) - 内容:音频的深层语义特征表示(Embedding),可用于:
- 相似度计算(如语音比对)
- 聚类分析
- 下游机器学习任务(如异常检测、说话人识别等)
Python 读取示例
import numpy as np # 加载 embedding embedding = np.load('embedding.npy') # 查看形状 print("Embedding shape:", embedding.shape) # 如 (128, 1024) # 提取均值向量(常用于整句表示) mean_embedding = np.mean(embedding, axis=0) print("Mean vector shape:", mean_embedding.shape) # 如 (1024,)注意:该文件不包含任何文本信息,仅为数值向量。请妥善保管对应
result.json文件以便语义解释。
4. 批量处理与结果管理实践
当您需要处理多个音频文件时,系统会为每一次点击“开始识别”操作创建一个新的时间戳目录。以下是高效管理多任务输出的实用技巧。
4.1 批量处理行为说明
- 每次上传并识别一个音频 → 创建一个新目录
- 多个音频需逐个上传 → 产生多个独立的时间戳目录
- 不支持一次性上传多个文件(当前WebUI限制)
因此,若您处理了10个音频,outputs/目录下将出现10个以不同时间戳命名的子目录。
4.2 快速定位最新结果
Linux/macOS 用户可通过命令行快速查看最新生成的目录:
ls -lt outputs/ | head -5输出示例:
drwxr-xr-x 2 root root 4096 Jan 4 22:30 outputs_20240104_223000 drwxr-xr-x 2 root root 4096 Jan 4 22:28 outputs_20240104_222815 drwxr-xr-x 2 root root 4096 Jan 4 22:25 outputs_20240104_222503按修改时间降序排列,顶部即为最近任务。
4.3 结果聚合脚本建议(Python)
以下是一个简单的 Python 脚本框架,用于遍历所有输出目录,合并result.json成 CSV 表格:
import os import json import pandas as pd output_dir = 'outputs' results = [] for d in os.listdir(output_dir): dir_path = os.path.join(output_dir, d) if os.path.isdir(dir_path) and d.startswith('outputs_'): json_path = os.path.join(dir_path, 'result.json') if os.path.exists(json_path): with open(json_path, 'r', encoding='utf-8') as f: data = json.load(f) data['task_id'] = d results.append(data) df = pd.DataFrame(results) df.to_csv('all_emotion_results.csv', index=False) print(f"已合并 {len(results)} 条记录到 all_emotion_results.csv")此类脚本非常适合科研实验、产品测试或客户反馈分析场景。
5. 常见问题解答(FAQ)
Q1:我找不到 outputs 目录怎么办?
请确认: - 应用已成功运行(访问 http://localhost:7860 可见界面) - 已完成至少一次识别任务 - 使用的是官方镜像且未修改默认路径
可通过终端执行以下命令检查:
ls /root/outputs/Q2:能否自定义输出目录名称或路径?
目前 WebUI 版本不支持自定义路径或命名规则。所有输出均由系统自动生成至/root/outputs/下。
如需定制化输出(如按项目分类、添加前缀等),建议在外部编写封装脚本,或在容器启动时挂载宿主机目录。
Q3:时间戳是基于什么时区?
时间戳基于容器所在系统的本地时间,通常为 UTC 或服务器所在时区。建议在关键业务中同步系统时间或记录日志时附带时区信息。
Q4:result.json 中的 emotion 字段可以转成中文吗?
不可以直接更改文件内容,但可在程序中做映射处理:
emotion_map = { "angry": "愤怒", "disgusted": "厌恶", "fearful": "恐惧", "happy": "快乐", "neutral": "中性", "other": "其他", "sad": "悲伤", "surprised": "惊讶", "unknown": "未知" } chinese_emotion = emotion_map.get(data['emotion'], '未知')6. 总结
本文详细解析了 Emotion2Vec+ Large 语音情感识别系统的结果存储机制,重点介绍了outputs目录下的时间戳命名规则及其内部文件结构。
我们明确了以下关键点:
- 输出路径固定:所有结果保存在
/root/outputs/目录下; - 子目录按时间戳命名:格式为
outputs_YYYYMMDD_HHMMSS,保证唯一性和可追溯性; - 三大核心文件:
processed_audio.wav:标准化后的音频result.json:结构化情感识别结果embedding.npy:可选的深度特征向量- 适合自动化处理:JSON + NumPy 的组合便于集成至数据分析流程;
- 批量处理友好:每个任务独立隔离,支持后期聚合分析。
掌握这套输出体系,不仅有助于日常使用,也为后续的模型评估、数据集构建和二次开发打下坚实基础。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。