anbeime/qwen3-asr-assistant
智能语音转文字助手,基于 Qwen3-ASR 模型,支持实时语音识别和智能文本改写。可以将录音转换为文字,并一键改写成邮件、笔记、社交媒体文案,支持复制、分享和录音拼接。适用于会议纪要、语音备忘、内容创作等多种场景。
npx skills add https://github.com/anbeime/skill --skill qwen3-asr-assistant
requests>=2.28.0
numpy>=1.21.0
from scripts.asr_transcriber import Qwen3ASRTranscriber
transcriber = Qwen3ASRTranscriber()
result = transcriber.transcribe(
audio_file="recording.wav",
language="zh-CN"
)
text = result["text"]
# 智能体处理拼接
full_text = original_text + "\n\n" + new_text
场景:录制会议语音,转换为结构化的会议笔记
执行流程:
from scripts.asr_transcriber import Qwen3ASRTranscriber
transcriber = Qwen3ASRTranscriber()
result = transcriber.transcribe(
audio_file="meeting.wav",
language="zh-CN"
)
meeting_text = result["text"]
# 会议笔记
## 时间地点
- 时间:2024年1月23日
- 地点:公司会议室
## 参会人员
- 张经理、李主管、王工程师
## 主要议题
1. Q1业绩回顾
- 销售额增长20%
- 新用户增加5000人
2. Q2工作计划
- 推出新产品线
- 加强市场推广
- 优化客户服务
3. 决议事项
- 批准新产品线预算
- 成立市场推广小组
场景:录制语音备忘,转换为正式邮件
执行流程:
主题:明天项目会议准备材料
小王:
你好!
关于明天上午10点在3号会议室召开的项目会议,请提前准备好以下材料:
1. 项目进度报告
2. 预算表
3. 团队人员名单
如有疑问,请及时联系我。
祝好!
张经理
场景:录制语音灵感,转换为社交媒体发布文案
执行流程:
☕️ 今日份咖啡推荐!
今天发现了一家宝藏咖啡店 ☕✨
咖啡口感浓郁,环境舒适超治愈,简直是工作充电的好地方~
#咖啡探店 #工作日常 #周末好去处
📍 地址:[咖啡店名称]
⭐ 推荐:招牌拿铁、手冲咖啡
场景:录制长篇语音,分多段录音,最后拼接完整文本
执行流程:
result1 = transcriber.transcribe("part1.wav")
text1 = result1["text"]
result2 = transcriber.transcribe("part2.wav")
text2 = result2["text"]
result3 = transcriber.transcribe("part3.wav")
text3 = result3["text"]
完整文本:
[第一段内容]
...(智能体添加连接词)...
[第二段内容]
...(智能体添加连接词)...
[第三段内容]
场景:语音转文字后,一键复制或分享到微信
执行流程:
文本已复制到剪贴板!
✅ 文本已生成,可以分享到微信
分享格式:
[改写后的文本]
#会议纪要 #工作效率
初始化:
Qwen3ASRTranscriber(api_key=None, base_url=None)
主要方法:
# 语音转文字
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
}
Take anbeime/qwen3-asr-assistant from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.