---
name: qwen3-asr-assistant
description: 智能语音转文字助手，基于 Qwen3-ASR 模型，支持实时语音识别和智能文本改写。可以将录音转换为文字，并一键改写成邮件、笔记、社交媒体文案，支持复制、分享和录音拼接。适用于会议纪要、语音备忘、内容创作等多种场景。
dependency:
  python:
    - requests>=2.28.0
    - numpy>=1.21.0
  system: []
---

# Qwen3-ASR 智能语音转文字助手

## 任务目标
- 本 Skill 用于：将语音转换为文字，并提供智能文本改写功能
- 能力包含：
  - 实时语音识别（语音转文字）
  - 智能文本改写（邮件、笔记、社交媒体文案）
  - 文字拼接（多段录音合并）
  - 一键复制和分享
- 触发条件：用户提出"语音转文字"、"录音转文字"、"语音备忘"等需求

## 前置准备
- 依赖说明：Qwen3-ASR 调用所需的 Python 库
  ```
  requests>=2.28.0
  numpy>=1.21.0
  ```
- 无需额外文件或文件夹准备

## 操作步骤

### 标准流程（语音转文字 + 智能改写）

1. **录音/上传音频**（调用方提供）
   - 点击录音按钮开始录音
   - 点击停止结束录音
   - 或上传已有的音频文件

2. **语音转文字**（智能体调用脚本）
   ```python
   from scripts.asr_transcriber import Qwen3ASRTranscriber
   
   transcriber = Qwen3ASRTranscriber()
   result = transcriber.transcribe(
       audio_file="recording.wav",
       language="zh-CN"
   )
   text = result["text"]
   ```

3. **文字改写**（智能体处理）
   - 根据用户需求选择改写类型：
     - **改写成邮件**：正式、结构化，包含主题、正文、落款
     - **改写成笔记**：要点清晰、层次分明，使用列表和标记
     - **改写成社交媒体文案**：简洁、有吸引力，使用表情符号和话题标签
   - 智能体分析原文内容，识别关键信息
   - 根据改写类型调整语气、结构和风格

4. **复制/分享**（智能体处理）
   - 一键复制：智能体将改写后的文本复制到剪贴板
   - 一键分享：智能体生成分享格式，适配微信等平台

5. **录音拼接**（智能体处理）
   - 继续录音，生成新的文字
   - 智能体将新文字拼接到原文
   - 保持文本连贯性，添加适当的连接词

### 多段录音拼接流程

1. **第一段录音**：按照标准流程进行语音转文字
2. **继续录音**：用户点击继续录音
3. **转文字**：调用脚本识别新录音
4. **智能拼接**：智能体将新文字拼接到原文
   ```python
   # 智能体处理拼接
   full_text = original_text + "\n\n" + new_text
   ```

## 资源索引
- 必要脚本：
  - [scripts/asr_transcriber.py](scripts/asr_transcriber.py)（用途：语音转文字，支持多种音频格式和实时识别）
- 领域参考：
  - [references/asr-api-config.md](references/asr-api-config.md)（何时读取：需要了解 ASR API 配置和参数时）
  - [references/text-rewrite-guide.md](references/text-rewrite-guide.md)（何时读取：需要了解文本改写规则和模板时）
- 输出资产：无预置模板，改写后的文本根据需求动态生成

## 注意事项
- **录音质量**：确保录音清晰，无过多背景噪音，提高识别准确率
- **文本改写**：充分利用智能体的语言理解和创作能力，避免为改写编写脚本
- **拼接连贯性**：多段录音拼接时，智能体应添加适当的连接词，保持文本连贯
- **改写准确性**：改写时应保留原文的核心信息和意图，不随意增删内容
- **适配场景**：根据使用场景选择合适的改写类型（邮件/笔记/社交媒体）

## 使用示例

### 示例 1：会议纪要转笔记

**场景**：录制会议语音，转换为结构化的会议笔记

**执行流程**：
1. 录制会议语音（60分钟）
2. 调用脚本转文字：
   ```python
   from scripts.asr_transcriber import Qwen3ASRTranscriber
   
   transcriber = Qwen3ASRTranscriber()
   result = transcriber.transcribe(
       audio_file="meeting.wav",
       language="zh-CN"
   )
   meeting_text = result["text"]
   ```

3. 智能体改写成笔记：
   ```
   # 会议笔记
   
   ## 时间地点
   - 时间：2024年1月23日
   - 地点：公司会议室
   
   ## 参会人员
   - 张经理、李主管、王工程师
   
   ## 主要议题
   1. Q1业绩回顾
      - 销售额增长20%
      - 新用户增加5000人
   
   2. Q2工作计划
      - 推出新产品线
      - 加强市场推广
      - 优化客户服务
   
   3. 决议事项
      - 批准新产品线预算
      - 成立市场推广小组
   ```

### 示例 2：语音转邮件

**场景**：录制语音备忘，转换为正式邮件

**执行流程**：
1. 录制语音备忘："小王，关于明天的项目会议，请准备好以下材料：项目进度报告、预算表、团队人员名单。会议时间是上午10点，地点在3号会议室。"
2. 调用脚本转文字
3. 智能体改写成邮件：
   ```
   主题：明天项目会议准备材料
   
   小王：
   
   你好！
   
   关于明天上午10点在3号会议室召开的项目会议，请提前准备好以下材料：
   
   1. 项目进度报告
   2. 预算表
   3. 团队人员名单
   
   如有疑问，请及时联系我。
   
   祝好！
   张经理
   ```

### 示例 3：语音转社交媒体文案

**场景**：录制语音灵感，转换为社交媒体发布文案

**执行流程**：
1. 录制语音灵感："今天尝试了一家超棒的咖啡店，咖啡味道很浓郁，环境也很舒服，很适合工作。推荐给大家！"
2. 调用脚本转文字
3. 智能体改写成社交媒体文案：
   ```
   ☕️ 今日份咖啡推荐！
   
   今天发现了一家宝藏咖啡店 ☕✨
   
   咖啡口感浓郁，环境舒适超治愈，简直是工作充电的好地方～
   
   #咖啡探店 #工作日常 #周末好去处
   
   📍 地址：[咖啡店名称]
   ⭐ 推荐：招牌拿铁、手冲咖啡
   ```

### 示例 4：多段录音拼接

**场景**：录制长篇语音，分多段录音，最后拼接完整文本

**执行流程**：
1. **第一段录音**（0-10分钟）：
   ```python
   result1 = transcriber.transcribe("part1.wav")
   text1 = result1["text"]
   ```

2. **第二段录音**（10-20分钟）：
   ```python
   result2 = transcriber.transcribe("part2.wav")
   text2 = result2["text"]
   ```

3. **第三段录音**（20-30分钟）：
   ```python
   result3 = transcriber.transcribe("part3.wav")
   text3 = result3["text"]
   ```

4. **智能体拼接**：
   ```
   完整文本：
   
   [第一段内容]
   
   ...（智能体添加连接词）...
   
   [第二段内容]
   
   ...（智能体添加连接词）...
   
   [第三段内容]
   ```

### 示例 5：一键复制和分享

**场景**：语音转文字后，一键复制或分享到微信

**执行流程**：
1. 语音转文字
2. 智能体改写成目标格式
3. **一键复制**：
   ```
   文本已复制到剪贴板！
   ```
4. **一键分享到微信**：
   ```
   ✅ 文本已生成，可以分享到微信
   
   分享格式：
   [改写后的文本]
   
   #会议纪要 #工作效率
   ```

## API 参考

### Qwen3ASRTranscriber 类

**初始化**：
```python
Qwen3ASRTranscriber(api_key=None, base_url=None)
```

**主要方法**：
```python
# 语音转文字
transcribe(
    audio_file: str,
    language: str = "zh-CN",
    format: str = "wav",
    sample_rate: int = 16000,
    return_timestamps: bool = False
) -> dict

# 返回格式
{
    "success": True,
    "text": "识别的文字",
    "language": "zh-CN",
    "duration": 120.5,
    "segments": [...]  # 如果 return_timestamps=True
}
```
