OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  callmac: 从移动设备通过指令远程控制 Mac 语音系统

callmac: 从移动设备通过指令远程控制 Mac 语音系统

 
  kernel ·  2026-02-03 05:25:16 · 3 次点击  · 0 条评论  

名称: callmac
描述: 通过 Telegram/WhatsApp 等消息应用,使用 /callmac 或 /voice 命令从移动设备远程控制 Mac 的语音功能。支持广播公告、播放闹钟、讲故事、叫醒服务等场景。采用 edge-tts 技术,支持中英文混合语音合成、本地播放、循环播放和音量控制。


Callmac 技能

从移动设备远程控制您的 Mac 进行语音播报。支持广播公告、播放闹钟、讲故事、叫孩子起床等多种场景,全部通过 Telegram 或 WhatsApp 等消息应用触发。采用 edge-tts 技术,支持中英文混合语音合成。

快速开始

快速上手生成并播放中英文混合的 TTS 音频。

基本用法

# 生成并播放一条简单的公告
python3 scripts/generate_tts.py --text "Hello world" --play

# 生成中英文混合内容
python3 scripts/generate_tts.py --text "Hello 你好" --play

# 保存到文件
python3 scripts/generate_tts.py --text "您的消息" --output announcement.mp3

语音选择

Edge TTS 提供高质量的神经语音:
- 英语(美式): en-US-JennyNeural(友好),en-US-AriaNeural(自信)
- 中文(普通话): zh-CN-XiaoxiaoNeural(温暖),zh-CN-XiaoyiNeural(活泼)
- 其他语言: 完整列表请参阅 VOICES.md

功能特性

1. 混合语言支持

自动检测语言片段并使用合适的语音:
- 英文片段 → 英文神经语音
- 中文片段 → 中文神经语音
- 其他语言 → 默认或指定语音

2. 播放控制

  • 在 Mac 上使用 afplay 进行本地播放
  • 支持循环播放(1 至无限次)
  • 音量控制(0-100%)
  • 支持后台/前台播放选项

3. 文件管理

  • 保存为 MP3 文件
  • 合并多个音频片段
  • 支持批处理

4. 高级功能

  • 为每个片段自定义语音选择
  • 语速调整
  • 音高修改
  • 支持 SSML 以进行高级控制

工作流程

工作流程 1:简单公告播放

  1. 用户提供要播报的文本
  2. 系统检测语言
  3. 生成相应的 TTS 音频
  4. 在 Mac 上本地播放

工作流程 2:混合语言音频创建

  1. 用户提供中英文混合文本
  2. 系统按语言片段分割
  3. 为每种语言生成单独的音频
  4. 合并为单个 MP3 文件
  5. 可选择播放或保存

工作流程 3:定时/重复公告

  1. 用户提供文本和播放计划
  2. 系统创建 cron 任务或循环
  3. 在指定间隔播放
  4. 可按需停止

脚本说明

scripts/generate_tts.py

用于 TTS 生成和播放的主脚本。

用法:

# 基本生成与播放
python3 generate_tts.py --text "消息" --play

# 保存到文件
python3 generate_tts.py --text "消息" --output file.mp3

# 混合语言并自定义语音
python3 generate_tts.py --text "Hello 你好" --voice-en "en-US-AriaNeural" --voice-zh "zh-CN-XiaoyiNeural"

# 循环播放
python3 generate_tts.py --text "消息" --play --loops 5

# 音量控制
python3 generate_tts.py --text "消息" --play --volume 80

# SSML 支持
python3 generate_tts.py --ssml "<speak>Hello <break time='500ms'/> world</speak>"

参数:
- --text:要转换为语音的文本
- --ssml:用于高级控制的 SSML 标记
- --output:保存为 MP3 文件
- --play:生成后立即播放
- --voice:默认语音(覆盖自动检测)
- --voice-en:覆盖英文语音
- --voice-zh:覆盖中文语音
- --loops:播放次数(默认:1)
- --volume:播放音量 0-100(默认:系统音量)
- --rate:语速调整(+/- %)
- --pitch:音高调整(+/- Hz)

scripts/play_audio.py

音频播放控制工具。

用法:

# 播放现有音频文件
python3 play_audio.py --file audio.mp3

# 循环播放
python3 play_audio.py --file audio.mp3 --loops 3

# 音量控制
python3 play_audio.py --file audio.mp3 --volume 75

# 停止所有播放
python3 play_audio.py --stop

scripts/merge_audio.py

合并多个音频文件。

用法:

# 合并两个文件
python3 merge_audio.py --files part1.mp3 part2.mp3 --output combined.mp3

# 创建播放列表并合并
python3 merge_audio.py --playlist playlist.txt --output combined.mp3

参考文档

VOICES.md

包含语言、性别和风格信息的 Edge TTS 可用语音完整列表。

INSTALLATION.md

edge-tts 和 ffmpeg 依赖项的安装说明。

EXAMPLES.md

使用模式示例和常见场景。

依赖项

  1. edge-ttspip3 install edge-tts
  2. ffmpegbrew install ffmpeg(用于音频合并)
  3. macOS 工具afplay(内置),osascript(音量控制)

常用模式

模式 1:欢迎消息

python3 scripts/generate_tts.py --text "Welcome to the system. 系统欢迎您。" --play --voice-en "en-US-JennyNeural" --voice-zh "zh-CN-XiaoxiaoNeural"

模式 2:定时提醒

# 创建音频文件
python3 scripts/generate_tts.py --text "Time for your meeting. 会议时间到了。" --output reminder.mp3

# 安排播放(使用 cron)
echo "*/30 * * * * afplay /path/to/reminder.mp3" | crontab -

模式 3:多语言公告

python3 scripts/generate_tts.py --text "Alert: System update in progress. 警报:系统更新进行中。" --play --loops 3 --volume 90

故障排除

无音频输出

  1. 检查系统音量:osascript -e "output volume of (get volume settings)"
  2. 检查静音状态:osascript -e "output muted of (get volume settings)"
  3. 用简单音频测试:afplay /System/Library/Sounds/Ping.aiff

edge-tts 无法工作

  1. 验证安装:python3 -m edge_tts --list-voices
  2. 检查网络连接(edge-tts 需要在线访问)
  3. 更新包:pip3 install --upgrade edge-tts

音频质量问题

  1. 使用神经语音以获得最佳质量
  2. 如果语速过快/过慢,请调整语速
  3. 考虑使用 SSML 进行精确控制

注意事项

  • Edge TTS 需要网络连接以进行语音合成
  • 本地播放使用 macOS 内置的 afplay 命令
  • 音量控制使用 osascript 来调整系统音量
  • 如需离线使用,请考虑其他 TTS 解决方案
  • 长文本可能会自动分割成多个片段
3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor