mcpField
L
Live Audio Intelligence

Live Audio Intelligence

本地服务
github.com金融数据128 周前更新

关于 Live Audio Intelligence

Live Audio Intelligence 是用于实时金融网络直播转录与语音压力启发式分析的 MCP 服务,面向关注财报电话会等内容的分析人员。它同时提供滚动转录文本和基于音高抖动、停顿等特征的压力分数;该分数未经市场结果验证。

主要功能

  1. 01实时转录网络直播音频
  2. 02分析音高抖动与停顿
  3. 03生成启发式语音压力分数
  4. 04按时间窗口读取滚动转录
  5. 05管理并停止音频流

适用场景

  1. 01实时查看财报电话会发言
  2. 02检查有关指引的最新表述
  3. 03观察说话者语音压力变化

MCP 相关

作为 MCP 服务,它通过 stdio 暴露四个工具,让客户端启动直播监控、读取转录、分析语音特征并停止音频流。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ykshah1309-live-audio-intelligence": {
"command": "uvx",
"args": [
"live-audio-intelligence-mcp"
]
}
}
}
启动命令uvx live-audio-intelligence-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypilive-audio-intelligence-mcp0.1.3

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

live-audio-intelligence-mcp

用于实时金融网络直播转录和启发式语音压力分析的 MCP 服务。

将任意实时网络直播 URL(财报电话会议、CNBC、投资者日)转化为实时 处理流水线,同时向大模型提供两项内容:

  1. 通过 faster-whisper(CPU、int8)生成的滚动转录文本。
  2. 启发式语音压力评分(0–100),根据 F0 音高抖动、 犹豫比例和有声帧占比计算得出。这些韵律特征在语音分析 文献中被广泛认为与说话者的唤醒程度相关;但下文评分中对这些特征的 组合方式属于启发式,且尚未通过实证验证其与市场结果的关联。请将其视为 粗略信号,而非绝对依据。

基于 Model Context Protocol 构建。通过 stdio 暴露 4 个工具;可将其接入 Claude Desktop、Claude Code 或任意 MCP 客户端。


为什么要开发它

卖方分析师和对冲基金投资组合经理不只是想事后阅读财报 电话会议转录文本——他们还想实时了解被问及第 4 季度业绩指引时, CFO 听起来有多自信。此服务将 Whisper 处理流水线和基于 pYIN 的韵律分析器直接接入大模型的工具调用循环, 因此模型可以在同一段对话中询问 “CEO 刚才对中国市场说了什么?” 和 “他们说这句话时 听起来有多紧张?”。


安装

1. 系统先决条件 — FFmpeg

FFmpeg 是系统二进制程序,不是 Python 包。这里不依赖 ffmpeg-python 封装库——我们通过 subprocess 直接调用二进制程序。你必须自行安装。

macOS(Homebrew):

brew install ffmpeg

Linux(Debian / Ubuntu):

sudo apt-get update && sudo apt-get install -y ffmpeg

Linux(Fedora / RHEL):

sudo dnf install -y ffmpeg

Windows — 选择一种方式:

# Option A — winget (Windows 10/11)
winget install --id=Gyan.FFmpeg -e

# Option B — Chocolatey
choco install ffmpeg

# Option C — Scoop
scoop install ffmpeg

确认它已添加到 PATH:

ffmpeg -version

如果命令报错并显示“未找到”,请重新打开终端(PATH 更改 不会传递到已打开的 shell),或手动将 ffmpeg 的 bin/ 目录 添加到 PATH。

2. Python 包

需要 Python ≥ 3.10。

pip install live-audio-intelligence-mcp

或者使用 uv 直接运行,无需安装:

uvx live-audio-intelligence-mcp

首次运行时会从 Hugging Face 下载 faster-whisper base.en 模型(约 140 MB),并 将其缓存到 ~/.cache/huggingface/。


运行

stdio MCP 服务:

live-audio-intelligence-mcp

或使用等效命令:

python -m live_audio_intelligence_mcp
Claude Desktop

添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "live-audio-intelligence": {
      "command": "live-audio-intelligence-mcp"
    }
  }
}
Claude Code
claude mcp add live-audio-intelligence -- live-audio-intelligence-mcp

工具

工具用途
monitor_live_stream(url, disable_vad=False)解析音频 URL,启动 ffmpeg,并开始分块和转录。返回 stream_id。
get_rolling_transcript(stream_id, minutes_back=10)获取最近 N 分钟拼接而成的转录文本。
analyze_speaker_stress(stream_id, time_window_seconds=60)对最近 N 秒的音频运行韵律分析。返回压力评分、音高抖动、犹豫比例、停顿统计数据,以及易于理解的解读。
stop_monitor(stream_id)终止 ffmpeg、清理临时文件并丢弃转录缓冲区。
压力评分
分数说明
0–20表达自信、流畅
20–45正常波动
45–75压力较高——值得关注
75–100压力很高——可能是影响市场的信号

综合指标包括:

  • 音高抖动(F0 的变异系数)——权重 50%,在抖动值达到 0.12 时趋于饱和
  • 犹豫比例(超过 400 ms 的停顿所占音频比例)——权重 35%,在 0.30 时趋于饱和
  • 无声比例(说话人逐渐停止发声)——权重 15%

这三个特征都是有文献支持的说话人唤醒度相关指标(参见用于跟踪 F0 的 pYIN,以及广泛研究的“言语不流畅与认知负荷相关”这一方向)。权重和饱和点是手动选定的默认值,旨在让冷静说话者在干净的录音棚音频中得分处于 0–20 区间,让明显带有压力的语音得分达到 ≥ 45——这些参数并非基于任何带标签的数据集拟合而成。关注绝对数值的使用者应根据自己的录音重新校准阈值。

合成音频校准工具位于 scripts/validate_stress_score.py。它会 生成可控音频(平滑正弦波、音高抖动、带静音填充的语音),并断言评分会 按预期方向变化。这是校准证据,而非对市场结果的验证。

低信噪比模式

对于免提电话音频(大多数财报电话问答),请向 monitor_live_stream 传入 disable_vad=true。Silero VAD 往往会将模糊的 电话会议语音过度判定为静音;禁用它可以保留更多语音,但代价是会转录稍多 的环境噪声。

并发限制

默认情况下,服务会将并发流数量限制为 4(每个流会占用一个 ffmpeg 子进程、一个 yt-dlp 子进程、一个线程和一个临时目录)。 高吞吐量部署可通过环境变量覆盖此限制:

LAI_MAX_CONCURRENT_STREAMS=16 live-audio-intelligence-mcp

超过限制时会引发 StreamLimitExceededError,而不会静默排队。


架构

                 ┌──────────────────┐
    URL  ─────▶  │  yt-dlp resolve  │
                 └────────┬─────────┘
                          │ audio URL
                          ▼
                 ┌──────────────────┐      ┌────────────────┐
                 │  ffmpeg (bg)     │ ───▶ │  15s WAV chunk │
                 │  16kHz mono PCM  │      │  queue         │
                 └──────────────────┘      └───────┬────────┘
                                                   │
                                ┌──────────────────┴────────────────┐
                                ▼                                   ▼
                       ┌──────────────────┐              ┌──────────────────┐
                       │ faster-whisper   │              │  librosa.pyin    │
                       │ (int8 / CPU)     │              │  + pause detect  │
                       └────────┬─────────┘              └────────┬─────────┘
                                │ rolling transcript              │ stress score
                                ▼                                 ▼
                            ┌────────────── MCP stdio ───────────────┐
                            │    LLM (Claude) — calls tools freely   │
                            └────────────────────────────────────────┘

所有阻塞任务(Whisper 推理、ffmpeg I/O、librosa DSP)都会通过 asyncio.to_thread 分派到线程中执行,以保持 MCP 事件循环响应灵敏。


开发

git clone https://github.com/ykshah1309/live-audio-intelligence-mcp
cd live-audio-intelligence-mcp
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install -e ".[dev]"
pytest
live-audio-intelligence-mcp
运行测试

tests/ 中的 pytest 测试套件涵盖了不需要网络或 ffmpeg 的纯 Python 逻辑:

  • URL 语法验证(协议白名单、主机存在性)
  • StreamManager 中的并发限制执行
  • 自定义异常层次结构(与 ValueError / RuntimeError 向后兼容)
  • 对合成音频进行韵律分析(正弦音、静音、音高抖动)
pytest -q
校准基准测试
python scripts/validate_stress_score.py

它会生成具有已知声学属性的合成音频,并验证压力评分是否按预期方向变化。 这是对加权启发式方法的合理性检查——不能替代基于真实财报电话会议结果的 实证验证。


故障排除

ffmpeg: command not found——PATH 中找不到 ffmpeg。请参阅上面的安装 部分。在 Windows 上,安装后请重新打开终端。

yt-dlp could not resolve URL——yt-dlp 不支持该网站,或 URL 格式错误。 请在命令行中使用 yt-dlp -F <url> 测试;如果该命令失败,服务也会失败。

首次运行时 Whisper 下载卡住——约 140 MB 的模型会下载到 ~/.cache/huggingface/。请检查网络和 Hugging Face 访问情况。

压力输出中出现 "Insufficient voiced frames"——音频窗口大部分是静音或噪声。 通常意味着流仍在缓冲;请等待 30 秒后重试。对于免提电话问答,请使用 disable_vad=true 启动监控。


贡献

请参阅 CONTRIBUTING.md。

更新日志

请参阅 CHANGELOG.md。

许可证

MIT——请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。