first commit

This commit is contained in:
Serge Zaigraeff
2025-03-01 19:24:03 +03:00
commit 3f8b28730f
8 changed files with 1215 additions and 0 deletions
+56
View File
@@ -0,0 +1,56 @@
# Whisper Speech-to-Text API Service
## Overview
This project is a local API server compatible with OpenAI's API for transcribing audio to text using the Whisper model. It's designed to run as a system service, loading the Whisper model into memory at startup and handling transcription requests via REST API.
## Features
- **Audio Transcription**: Supports various input methods:
- Local server files
- Files accessible via URL
- Base64-encoded files
- Multipart form data
- **OpenAI API Compatibility**: Works with `/v1/audio/transcriptions` and `/v1/models` endpoints.
- **Audio Preprocessing**: Converts audio to WAV, normalizes, and adds silence.
- **Hardware Support**: Utilizes GPU (CUDA, MPS) or CPU.
- **Logging**: Tracks all operations.
- **Health Check**: Includes a health check endpoint.
## Quick Start
1. **Edit the Configuration File (`config.json`)**:
- Set the path to your Whisper model (`model_path`).
- Configure other parameters like language (`language`), chunk size (`chunk_length_s`), batch size (`batch_size`), and audio normalization settings.
```json
{
"service_port": 5042,
"model_path": "/path/to/your/whisper-model",
"language": "english",
"chunk_length_s": 30,
"batch_size": 16,
"max_new_tokens": 256,
"return_timestamps": false,
"norm_level": "-0.5",
"compand_params": "0.3,1 -90,-90,-70,-70,-60,-20,0,0 -5 0 0.2"
}
```
2. **Run the Server**:
- Simply execute the `server.sh` script:
```bash
./server.sh
```
- If you need to update the environment, use:
```bash
./server.sh --update
```
3. **Use the API**:
- Once the server is running, you can send transcription requests.
- Example request (curl):
```bash
curl -X POST -F file=@audio.wav http://localhost:5042/v1/audio/transcriptions
```
Enjoy seamless audio-to-text transcription with your local Whisper API server!