Files
111 998211c483 feat: 初始化考培练系统项目
- 从服务器拉取完整代码
- 按框架规范整理项目结构
- 配置 Drone CI 测试环境部署
- 包含后端(FastAPI)、前端(Vue3)、管理端

技术栈: Vue3 + TypeScript + FastAPI + MySQL
2026-01-24 19:33:28 +08:00

269 lines
6.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 言迹真实数据获取报告
## 📅 日期2025-10-15
## ✅ 成功获取的数据
### 1. 员工信息数据27人
**接口**`GET /api/wangke/v1/device/list`
**数据样本**
```json
{
"estateId": 516799468310364162,
"tenantId": 516799409476866048,
"deviceId": "XX:XX:XX:XX:XX:XX",
"phone": "13708515779",
"userName": "熊媱媱",
"openId": "1900506936382013442",
"createTime": "2024-12-11 16:25:34"
}
```
**关键字段**
- `phone`:员工手机号(可用于匹配系统用户)
- `userName`:员工姓名
- `openId`:员工唯一标识
**员工列表**(部分):
1. 陈谊 - 15329451271
2. 熊媱媱 - 13708515779录音最多
3. 黄雪 - 19192552551
4. 夏雨沫 - 13698554507
5. 张永梅 - 13608562128
... 共27人
---
### 2. 录音文件数据
**接口**`POST /api/beauty/v1/audio/infos`
**请求参数**
```json
{
"estateId": 516799468310364162,
"consultantPhone": "13708515779"
}
```
**数据样本**
```json
{
"records": [
{
"id": 1977936576392384514,
"consultantPhone": "13708515779",
"consultantName": "熊媱媱",
"startTime": "2025-10-14 11:16:19",
"endTime": "2025-10-14 11:16:24",
"duration": 5000,
"fileSize": 20529,
"fileUrl": "https://oss.wangxiaobao.com/zadig-prod-1308228548/516799409476866048/2025/10/14/fcf3bd06-2c2c-46e9-a60e-e2755c8dd3ca.mp3?X-Amz-..."
}
]
}
```
**关键发现**
-`fileUrl`录音文件下载地址7天有效期
-`duration`:录音时长(毫秒)
-`fileSize`:文件大小(字节)
-`startTime/endTime`:录音时间范围
---
### 3. 真实录音文件
**已下载样本**
1. **样本1**`样本录音-熊媱媱-5秒.mp3`
- 时长5秒
- 大小20KB
- 格式MP3, 40kbps, 16kHz, 单声道
- 录音时间2025-10-14 11:16:19
2. **样本2**`样本录音-熊媱媱-15秒.mp3`
- 时长15秒
- 大小54KB
- 格式MP3, 40kbps, 16kHz, 单声道
- 录音时间2025-06-17 13:23:58
**文件位置**
```
考培练系统规划/全链路联调/言迹智能工牌/
├── 样本录音-熊媱媱-5秒.mp3
└── 样本录音-熊媱媱-15秒.mp3
```
**音频规格**
- 编码MPEG ADTS, layer III, v2
- 比特率40 kbps
- 采样率16 kHz
- 声道单声道Monaural
- 元数据ID3 v2.4.0
---
## ❌ 无法获取的数据
### ASR分析结果对话文本
**接口**`GET /api/beauty/v1/audio/asr-analysed`
**测试结果**:所有录音返回 `data: null`
**原因分析**
1. 录音时长较短4-15秒可能未达到ASR分析阈值
2. 租户可能未开启ASR分析功能
3. ASR分析需要手动触发或满足特定条件
**测试范围**
- 测试了27个员工的录音
- 包括最新录音和最早录音2025-04-24
- 总计测试超过19条录音
- **结果**:全部返回 `data: null`
---
## 🎯 解决方案
### 方案1使用本地ASR转写推荐⭐⭐⭐
**工具选择**
- **OpenAI Whisper**(免费,准确率高,支持中文)
- 阿里云语音识别
- 腾讯云语音识别
**实施步骤**
1. 从言迹API获取录音文件URL
2. 下载录音文件到临时目录
3. 调用Whisper API转写
4. 格式化为对话文本
5. 发送到Dify工作流分析
**Whisper集成示例**
```python
import whisper
import httpx
async def transcribe_yanji_audio(audio_url: str) -> str:
"""使用Whisper转写言迹录音"""
# 1. 下载录音
async with httpx.AsyncClient() as client:
response = await client.get(audio_url)
audio_file = "/tmp/temp_audio.mp3"
with open(audio_file, "wb") as f:
f.write(response.content)
# 2. Whisper转写
model = whisper.load_model("base")
result = model.transcribe(audio_file, language="zh")
return result["text"]
```
**优势**
- ✅ 完全独立不依赖言迹ASR
- ✅ 可控制转写质量
- ✅ 支持更多语言和场景
---
### 方案2联系言迹开启ASR服务
**行动计划**
1. 联系言迹技术支持
2. 询问ASR服务开通条件
3. 请求手动触发历史录音的ASR分析
4. 了解ASR分析的触发条件
**联系方式**
- 查看飞书文档中的技术支持联系方式
- 通过开放平台工单系统
---
### 方案3混合方案最佳⭐⭐⭐⭐⭐
**策略**
1. 优先使用言迹ASR结果如果有
2. 如果ASR为null自动调用本地Whisper转写
3. 缓存转写结果,避免重复转写
**流程图**
```
获取录音列表
尝试获取ASR结果
ASR有数据 ──是→ 使用言迹ASR
↓否
下载录音文件
Whisper转写
格式化对话文本
发送到Dify分析
```
---
## 📊 数据统计
| 数据类型 | 获取状态 | 数量 | 可用性 |
|---------|---------|------|--------|
| 员工信息 | ✅ 成功 | 27人 | 100% |
| 录音列表 | ✅ 成功 | 19+条 | 100% |
| 录音文件 | ✅ 成功 | 可下载 | 100% |
| ASR文本 | ❌ 无数据 | 0条 | 0% |
---
## 🚀 下一步行动
### 立即可做(推荐):
1. ✅ 已获取真实录音文件
2. 🔄 集成Whisper进行本地转写
3. 🔄 实现完整的数据获取链路
4. 🔄 测试Dify工作流分析
### 并行进行:
1. 联系言迹询问ASR服务
2. 探索是否有其他接口可获取对话文本
3. 了解咨询总结接口的使用场景
---
## 💡 关键发现
1. **录音获取完全可行**
- 可按员工手机号获取录音列表
- 录音文件URL 7天有效可直接下载
- 音频质量良好16kHz单声道
2. **ASR分析未启用**
- 所有录音都没有ASR分析结果
- 可能是租户配置问题
- 不影响核心功能实现
3. **本地转写完全可行**
- Whisper模型成熟稳定
- 16kHz采样率适合语音识别
- 可实现端到端闭环
---
## ✅ 结论
**言迹智能工牌集成完全可行!**
虽然ASR分析结果为空但我们成功获取了
- ✅ 完整的员工信息(支持手机号匹配)
- ✅ 真实的录音文件(可下载,音质良好)
- ✅ 完整的录音元数据(时间、时长、员工信息)
**建议采用混合方案**优先使用言迹ASR降级到本地Whisper确保系统稳定可用。