🚀 使用MCP进行文件查找和语音转写
本项目借助MCP(Multi-Channel Processing)多通道处理框架,实现了文件查找和语音转写两大实用功能。通过HTTP服务器提供REST API,用户可方便地搜索指定路径下的文件;同时利用fastspeech
库,能将音频精准转换为文字并提供详细转录信息。
🚀 快速开始
安装依赖
首先,安装项目所需的依赖:
npm install
pip install -r requirements.txt
编译和构建
编译TypeScript代码并生成JavaScript文件:
npm run build
启动服务
文件查找服务器(直接实现)
运行src/index.ts
:
ts-node src/index.ts
HTTP文件查找服务器
运行main.py
:
python main.py
默认情况下,服务器将在8080端口启动。
语音转写服务器(直接实现)
运行src/whisper-index.ts
:
ts-node src/whisper-index.ts
HTTP语音转写服务器
运行whisper_server.py
:
python whisper_server.py
默认情况下,服务器将在8081端口启动。
✨ 主要特性
- 多通道处理:MCP(Multi-Channel Processing)框架可同时处理多个数据流。
- 文件查找:通过HTTP服务器提供REST API,方便用户搜索指定路径下的文件。
- 语音转写:利用
fastspeech
库将音频转换为文字,并提供详细的转录信息。
📦 安装指南
安装依赖
npm install
pip install -r requirements.txt
编译和构建
npm run build
💻 使用示例
文件查找API
发送GET请求到http://localhost:8080/search?path=/target/directory
以获取指定路径下的所有文件。
请求示例:
curl http://localhost:8080/search?path=/home/user/documents
响应示例:
{
"files": [
"/home/user/documents/report.pdf",
"/home/user/documents/data.csv"
],
"directories": [
"/home/user/documents/subfolder"
]
}
语音转写API
发送POST请求到http://localhost:8081/transcribe
,并在请求体中包含音频数据。
请求示例:
curl -X POST http://localhost:8081/transcribe \
--header "Content-Type: application/json" \
--data '{"audio":"JVBERi0xLjUK...","language":"zh-CN"}'
响应示例:
{
"text": "这是一个语音转写示例。",
"segments": [
{
"start": 0.0,
"end": 2.5,
"text": "这是"
},
{
"start": 2.5,
"end": 4.0,
"text": "一个语音转写示例。"
}
],
"language": "zh-CN",
"language_probability": 0.98
}
📚 详细文档
项目结构
项目的目录结构如下:
project/
├── src/
│ ├── index.ts # 文件查找的MCP服务器实现(直接实现)
│ ├── index-http.ts # HTTP服务器文件查找的MCP代理实现
│ ├── whisper-index.ts # 语音转写的MCP服务器实现(直接实现)
│ └── whisper-index-http.ts # HTTP服务器语音转写的MCP代理实现
├── build/
│ ├── index.js # 编译后的JavaScript文件,用于文件查找的MCP服务器
│ ├── index-http.js # 编译后的JavaScript文件,用于HTTP服务器文件查找的MCP代理
│ ├── whisper-index.js # 编译后的JavaScript文件,用于语音转写的MCP服务器
│ └── whisper-index-http.js # 编译后的JavaScript文件,用于HTTP服务器语音转写的MCP代理
├── tsconfig.json # TypeScript配置文件
├── package.json # 项目依赖和描述
├── main.py # Python实现的文件查找HTTP服务器
└── whisper_server.py # Python实现的语音转写HTTP服务器
问题排查
- 如果出现“找不到连接”的错误,请确保在修改MCP设置后重新启动VS Code。
- 如果服务器无响应,检查MCP代理路径是否正确指向编译后的JavaScript文件。
- 在使用
fastspeech
时,如果需要GPU加速,请确保安装了必要的显卡驱动和计算库(如CUDA)。
附录
使用Docker部署
你可以将项目打包为Docker镜像以便在生产环境中运行。创建一个Dockerfile
如下:
FROM node:16-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm install --production
FROM python:3.8-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY --from=builder /app/ .
ENV PATH=/usr/local/bin:$PATH
EXPOSE 8080 8081
CMD ["python", "main.py", "--port", "8080"]
然后构建和运行镜像:
docker build -t mcp .
docker run -p 8080:8080 -p 8081:8081 mcp
示例项目结构
确保项目的根目录下有以下文件和子目录:
project/
├── src/
│ ├── index.ts
│ └── whisper-index.ts
├── build/
│ ├── index.js
│ └── whisper-index.js
├── package.json
├── tsconfig.json
├── main.py
└── whisper_server.py
依赖管理
确保你已经安装了Node.js和Python的开发环境,并且安装了项目所需的依赖项。
Node.js依赖:
{
"name": "mcp",
"version": "1.0.0",
"description": "Multi-Channel Processing for file search and speech transcription.",
"scripts": {
"build": "tsc -p tsconfig.json"
},
"dependencies": {
"typescript": "^4.5.2",
"fastspeech": "^0.13.0"
}
}
Python依赖:
numpy
flask
pydub
贡献指南
欢迎任何贡献!请遵循以下步骤:
- 创建功能分支:
git checkout -b feature/your-feature
- 提交变更:
git add . && git commit -m '你的提交信息'
- 推送到远程仓库:
git push origin feature/your-feature
- 提交拉取请求
📄 许可证
本项目使用MIT许可证,详情请参阅LICENSE
文件。