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