🚀 使用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
文件。