技能备份 - 2026-04-15 (40个技能)

This commit is contained in:
root
2026-04-15 18:53:15 +08:00
parent f62f14814f
commit c65fce24e4
791 changed files with 190773 additions and 0 deletions
@@ -0,0 +1,69 @@
#!/bin/bash
# FunASR 安装脚本
# 用途:创建虚拟环境并安装 FunASR 及其依赖
set -e
# 配置
VENV_DIR="$HOME/.openclaw/workspace/funasr_env"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
echo "=========================================="
echo "FunASR 安装脚本"
echo "=========================================="
echo ""
# 检查 Python
if ! command -v python3 &> /dev/null; then
echo "❌ 错误:未找到 python3"
echo "请先安装 Python 3.7+"
exit 1
fi
PYTHON_VERSION=$(python3 -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')")
echo "✓ Python 版本: $PYTHON_VERSION"
# 创建虚拟环境
if [ -d "$VENV_DIR" ]; then
echo "⚠️ 虚拟环境已存在: $VENV_DIR"
read -p "是否重新安装?(y/N): " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo "安装已取消"
exit 0
fi
rm -rf "$VENV_DIR"
fi
echo "创建虚拟环境: $VENV_DIR"
python3 -m venv "$VENV_DIR"
source "$VENV_DIR/bin/activate"
# 升级 pip
echo ""
echo "升级 pip..."
pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
# 安装依赖
echo ""
echo "安装 FunASR 及依赖(这需要几分钟)..."
pip install funasr modelscope huggingface_hub torch torchaudio \
-i https://pypi.tuna.tsinghua.edu.cn/simple
# 验证安装
echo ""
echo "验证安装..."
python3 -c "from funasr import AutoModel; print('✓ FunASR 安装成功')" || {
echo "❌ FunASR 安装失败"
exit 1
}
# 完成
echo ""
echo "=========================================="
echo "✓ 安装完成!"
echo "=========================================="
echo ""
echo "现在可以使用转录功能:"
echo " bash $SCRIPT_DIR/transcribe.sh /path/to/audio.ogg"
echo ""
@@ -0,0 +1,85 @@
#!/usr/bin/env python3
"""FunASR 音频转录脚本"""
import sys
import os
import json
try:
from funasr import AutoModel
except ImportError:
print("❌ 错误:未找到 funasr 模块")
print("")
print("请先安装 FunASR")
print(" bash ~/.openclaw/workspace/skills/funasr-transcribe/scripts/install.sh")
sys.exit(1)
def transcribe_audio(audio_path):
"""使用 FunASR 转录音频"""
print(f"正在处理音频: {audio_path}")
print("首次运行会自动下载模型,可能需要几分钟...")
# 加载模型
model = AutoModel(
model="damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch",
vad_model="damo/speech_fsmn_vad_zh-cn-16k-common-pytorch",
punc_model="damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch",
device="cpu" # 使用 CPU,如果有 GPU 可以改为 "cuda:0"
)
# 进行语音识别
res = model.generate(
input=audio_path,
batch_size_s=300
)
return res
def main():
if len(sys.argv) < 2:
print("用法: python3 transcribe.py <audio_file>")
sys.exit(1)
audio_path = sys.argv[1]
# 检查文件是否存在
if not os.path.exists(audio_path):
print(f"❌ 错误:文件不存在: {audio_path}")
sys.exit(1)
# 转录
try:
result = transcribe_audio(audio_path)
except Exception as e:
print(f"❌ 转录失败: {e}")
sys.exit(1)
# 输出结果
text = ""
if isinstance(result, list) and len(result) > 0:
text = result[0].get("text", "")
if not text:
print("⚠️ 未识别到文本")
sys.exit(0)
print("\n" + "="*50)
print("转录结果:")
print("="*50)
print(text)
# 保存到文件
output_path = os.path.splitext(audio_path)[0] + ".txt"
try:
with open(output_path, "w", encoding="utf-8") as f:
f.write(text)
print("")
print(f"✓ 已保存到: {output_path}")
except Exception as e:
print(f"\n⚠️ 保存文件失败: {e}")
if __name__ == "__main__":
main()
@@ -0,0 +1,40 @@
#!/bin/bash
# FunASR 音频转录脚本
# 用途:将音频文件转录为文本
set -e
# 配置
VENV_DIR="$HOME/.openclaw/workspace/funasr_env"
TRANSCRIBE_PY="$HOME/.openclaw/workspace/skills/funasr-transcribe-skill/scripts/transcribe.py"
# 检查参数
if [ $# -lt 1 ]; then
echo "用法: $0 <audio_file>"
echo ""
echo "示例:"
echo " $0 /path/to/audio.ogg"
echo " $0 recording.wav"
exit 1
fi
AUDIO_FILE="$1"
# 检查文件是否存在
if [ ! -f "$AUDIO_FILE" ]; then
echo "❌ 错误:文件不存在: $AUDIO_FILE"
exit 1
fi
# 检查虚拟环境
if [ ! -d "$VENV_DIR" ]; then
echo "❌ 错误:FunASR 未安装"
echo ""
echo "请先运行安装脚本:"
echo " bash ~/.openclaw/workspace/skills/funasr-transcribe/scripts/install.sh"
exit 1
fi
# 激活虚拟环境并转录
source "$VENV_DIR/bin/activate"
python3 "$TRANSCRIBE_PY" "$AUDIO_FILE"