Token导航 LogoToken导航TokenDH.com
Speech MCP Server (Andretisch) logo
音视频未说明官方级别未说明来源级核验

Speech MCP Server (Andretisch)

MCP Server

一个集成了语音识别(STT)和语音合成(TTS)功能的Web服务器,支持REST API和MCP协议,适用于AI助手集成和音频处理。

工具数

4

提示词数

0

GitHub Stars

0

资源数

0
语音识别音频处理PythonClaude语音合成ClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

andretisch

提供方

andretisch

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Единый аудио-сервер (STT + TTS)

Веб-сервер, который умеет распознавать речь (аудио → текст) и синтезировать речь (текст → аудио). Работает на одном сервере, с одним набором зависимостей — не нужно поднимать и настраивать отдельные сервисы для STT и TTS.

Используется: faster-whisper (распознавание), Silero (синтез), SpeechBrain (разделение по спикерам).

Доступ: REST API (любой клиент) и MCP (подключение AI-ассистентов вроде Cursor, Claude и др.).

Точки входа

СпособКоманда / путьОписание
Ручной запуск./audio/run.shИз корня репо: поднимает venv, запускает сервер
Прямой Pythoncd audio && ./venv/bin/python server.pyПосле run.sh или install-service.sh
Служба systemdsudo ./install-service.shУстановка как audio-stt-tts.service
CLI для больших файлов./audio/transcribe_file.sh файл.wav [url]Загрузка + транскрипция через curl
MCP.cursor/mcp.jsonurlПодключение Cursor/Claude к серверу
REST + Web UIhttp://host:8000API + отладочная страница

Требования

  • Ubuntu 24.04 (или аналог)
  • Python 3.10+
  • ffmpeg
  • curl (для загрузки больших файлов — скрипт transcribe_file.sh)
  • (Опционально) NVIDIA GPU + CUDA

Установка системных пакетов

sudo apt update
sudo apt install -y python3 python3-pip python3-venv ffmpeg curl

Установка и запуск

Из корня репозитория:

chmod +x audio/run.sh audio/transcribe_file.sh
./audio/run.sh

При первом запуске создаётся audio/venv и ставятся зависимости. Сервер: http://0.0.0.0:8000. Настройки — в audio/.env.

Переменные окружения

Файл audio/.env (скопируй из audio/.env.example).

ПеременнаяПо умолчаниюОписание
AUDIO_HOST0.0.0.0Хост
AUDIO_PORT8000Порт
AUDIO_PUBLIC_URLhttp://localhost:8000URL для curl-загрузки (transcribe_large_file_workflow)
CUDA_VISIBLE_DEVICESGPU (0, 1, …). Пусто — все
WHISPER_MODELbaseМодель STT: tiny, base, small, medium, large-v2, large-v3
WHISPER_COMPUTE_TYPEfloat16 / int8 (для GPU)
WHISPER_PRELOAD01 — загрузить STT при старте
WHISPER_VAD01 — включить VAD фильтр faster-whisper
PRELOAD_ALL01 — предзагрузить STT+VAD+SPK+TTS при старте (рекомендуется для службы)
VAD_PRELOAD01 — предзагрузить Silero VAD при старте
SPK_PRELOAD01 — предзагрузить speaker-encoder (ECAPA) при старте
DIARIZATION11 — diarization по умолчанию в /transcribe, 0 — выключить
VAD_THRESHOLD0.5Порог Silero VAD (выше — меньше ложных срабатываний)
VAD_MIN_SPEECH_MS250Минимальная длина речи (мс)
VAD_MIN_SILENCE_MS120Минимальная длина тишины (мс)
VAD_MERGE_GAP_SEC0.25Склейка VAD-кусков, если пауза меньше этого (сек)
SPK_EMB_MODELspeechbrain/spkrec-ecapa-voxcelebМодель speaker-embeddings
SPK_MIN_CHUNK_SEC1.0Минимальная длина куска для эмбеддинга (сек)
SPK_CLUSTER_THRESHOLD0.7Порог кластеризации (cosine distance); меньше — больше спикеров
SPK_MERGE_GAP_SEC0.4Склейка соседних turns одного спикера (сек)
SILERO_LANGruЯзык Silero
SILERO_MODELv5_ruМодель (например: v5_3_ru, v5_2_ru, v5_ru, v4_ru)
SILERO_SPEAKERxeniaГолос: aidar, baya, kseniya, xenia, eugene
SILERO_EN_LANGenЯзык EN Silero
SILERO_EN_MODELlj_16khzАнглийская модель/спикер для torch.hub (например: v3_en, lj_16khz)
SILERO_EN_SPEAKERАнглийский голос (например en_9), если модель это поддерживает
SILERO_SAMPLE_RATE48000Частота дискретизации TTS (выход будет ресемплен под это значение)
SILERO_PRELOAD01 — загрузить TTS при старте
SILERO_MAX_CHARS5000Макс. длина текста для TTS
TTS_PREPROCESS1Включить препроцессинг текста для TTS
TTS_NUMBERS1Числа → слова (ru)
TTS_ABBR1Аббревиатуры (NASA/МВД)
TTS_SPECIAL1URL/email → слова
TTS_PAUSES1Добавлять паузы по пунктуации

API

  • POST /transcribe — multipart/form-data, поле file. Ответ: { "text": "...", "segments": [...] }
  • POST /upload — multipart, загрузка большого файла. Ответ: { "upload_id": "..." } → передай в transcribe
  • POST /transcribe/by-upload — JSON { "upload_id": "..." } — транскрипция загруженного файла
  • POST /api/tts — JSON { "text": "..." }. Ответ: audio/wav
  • GET /health — проверка, в ответе device (cuda/cpu)

Большие файлы и MCP

MCP-инструмент transcribe не может принять base64 для больших файлов. Варианты:

  1. file_path — если сервер видит твой диск: transcribe(file_path="/путь/к/audio.wav")
  2. upload_id — загрузи через POST /upload, передай id: transcribe(upload_id="abc123")
  3. Скрипт./audio/transcribe_file.sh файл.wav (загрузка + транскрипция). Требуется curl.

MCP (Cursor)

Сервер — это MCP-сервер. Endpoint: http://:8000/mcp/

Инструменты: health_check, transcribe, synthesize_speech, transcribe_large_file_workflow (инструкция для больших файлов).

.cursor/mcp.json:

{
  "mcpServers": {
    "audio": {
      "url": "http://localhost:8000/mcp/"
    }
  }
}

Интеграция с ботом

В .env бота укажите URL аудио-сервера:

AUDIO_SERVER_URL=http://localhost:8000

Установка как служба (Ubuntu)

Из корня репозитория (от root или через sudo):

chmod +x install-service.sh
./install-service.sh

Скрипт создаёт audio/venv, ставит зависимости, копирует audio/.env из audio/.env.example (если нет) и регистрирует службу audio-stt-tts.

systemctl status audio-stt-tts   # статус
journalctl -u audio-stt-tts -f   # логи
systemctl stop audio-stt-tts     # остановка

目录标签

目录标签

语音识别音频处理PythonClaude语音合成本地部署AI助手集成

支持客户端

ClaudeCursor

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP