{"id":35771719,"url":"https://github.com/b7s/fluentvox","last_synced_at":"2026-01-30T18:36:52.351Z","repository":{"id":332412931,"uuid":"1129202922","full_name":"b7s/fluentvox","owner":"b7s","description":"Unleash state‑of‑the‑art text‑to‑speech and voice cloning in your PHP applications with style","archived":false,"fork":false,"pushed_at":"2026-01-08T13:02:27.000Z","size":249,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-01-13T19:58:23.839Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/b7s.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-06T18:51:06.000Z","updated_at":"2026-01-08T13:02:30.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/b7s/fluentvox","commit_stats":null,"previous_names":["b7s/fluentvox"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/b7s/fluentvox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b7s%2Ffluentvox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b7s%2Ffluentvox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b7s%2Ffluentvox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b7s%2Ffluentvox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/b7s","download_url":"https://codeload.github.com/b7s/fluentvox/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b7s%2Ffluentvox/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28917044,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T16:37:38.804Z","status":"ssl_error","status_checked_at":"2026-01-30T16:37:37.878Z","response_time":66,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-07T04:29:56.617Z","updated_at":"2026-01-30T18:36:52.342Z","avatar_url":"https://github.com/b7s.png","language":"PHP","funding_links":[],"categories":["LLMs \u0026 AI APIs"],"sub_categories":["Speech \u0026 Text-to-Speech"],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"docs/logo.webp\" alt=\"Logo\" width=\"200\"/\u003e\n  \n  # FluentVox\n  \n  ### 🎙️ Unleash state‑of‑the‑art text‑to‑speech and voice cloning in your PHP applications with style\n  \n  [![PHP Version](https://img.shields.io/badge/PHP-8.3%2B-777BB4?logo=php\u0026logoColor=white)](https://www.php.net/)\n  [![PHPStan Level 6](https://img.shields.io/badge/PHPStan-Level%206-brightgreen)](https://phpstan.org/)\n  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\u003c/div\u003e\n\nThis standalone, developer‑friendly library brings the full power of Resemble AI’s Chatterbox TTS into a beautifully fluent PHP API. Effortless to use, lightning‑fast, and built for real‑world production environments, it handles everything—from seamless model management to cross‑platform compatibility on Linux, macOS, and Windows.\n\nWhether you're crafting immersive voice experiences, automating audio generation, or building AI‑powered products, this wrapper gives you a clean, modern, and expressive toolkit that makes advanced TTS feel natural.\n\n## ✨ Features\n\n- 🎯 **Fluent API** - Laravel-inspired chainable interface\n- 🌍 **Cross-Platform** - Linux, macOS (including Apple Silicon), and Windows support\n- 📦 **Automatic Management** - Downloads and manages models automatically\n- 🎭 **Voice Cloning** - Clone any voice from a reference audio file\n- 🌐 **Multilingual** - Support for 23+ languages\n- ⚡ **GPU Acceleration** - CUDA (NVIDIA), MPS (Apple Silicon), or CPU\n- 🔒 **Type-Safe** - Full PHP 8.3+ type hints / PHPStan level 6\n- 🛠️ **Complete CLI** - Command-line tools for installation and generation\n- 🧪 **Tests** - Complete test suite with Pest PHP 4\n\n## Easy to use\n\n```php\n$result = FluentVox::make()\n    -\u003etext('Hello, world! This is FluentVox speaking.')\n    -\u003egenerate();\n``` \n\n## 📦 Installation\n\n```bash\ncomposer require b7s/fluentvox\n```\n\n### Install Dependencies\n\nAfter installing the package, install Python dependencies:\n\n```bash\nvendor/bin/fluentvox install\n```\n\nThis will:\n\n- Verify Python 3.10+ is installed\n- Install Chatterbox TTS package\n- Detect GPU acceleration (CUDA/MPS)\n\n### Using Python Virtual Environments (venv)\n\nFluentVox **automatically detects** Python virtual environments. It will prioritize:\n\n1. **Active venv** (via `VIRTUAL_ENV` environment variable)\n2. **Local venv directories** (`.venv`, `venv`, `venv311`, etc.) in current directory and parent directories\n3. **System Python** (fallback)\n\n**Recommended workflow:**\n\n```bash\n# Create a virtual environment (if you don't have one)\npython3 -m venv venv\n\n# Activate it (optional, but recommended)\nsource venv/bin/activate  # Linux/macOS\n# or\nvenv\\Scripts\\activate     # Windows\n\n# Install FluentVox dependencies in the venv\nvendor/bin/fluentvox install\n```\n\n**Manual configuration:**\n\nIf FluentVox doesn't detect your venv automatically, specify the Python path in `fluentvox-config.php`:\n\n```php\nreturn [\n    'python_path' =\u003e '/path/to/venv/bin/python',  // Linux/macOS\n    // or\n    'python_path' =\u003e 'C:\\\\path\\\\to\\\\venv\\\\Scripts\\\\python.exe',  // Windows\n    // ...\n];\n```\n\n### Check Installation\n\n```bash\nvendor/bin/fluentvox doctor\n```\n\n#### If you want to generate audio very quickly, choose:\n\n- Minimum recommended: RTX 3060 12 GB (~6x CPU)\n- Ideal: RTX 4060 / 4060 Ti\n- Top: RTX 4070+\n\n\n## 🚀 Quick Start\n\n### Basic Usage\n\n```php\nuse B7s\\FluentVox\\FluentVox;\n\n$result = FluentVox::make()\n    -\u003etext('Hello, world! This is FluentVox speaking.')\n    -\u003egenerate();\n\necho \"Audio saved to: \" . $result-\u003eoutputPath;\necho \"Duration: \" . $result-\u003egetFormattedDuration();\n```\n\n### Voice Cloning\n\n```php\n$result = FluentVox::make()\n    -\u003etext('Hello, I sound just like the reference!')\n    -\u003evoiceFrom('/path/to/reference.wav')\n    -\u003egenerate();\n```\n\n### Multilingual\n\n```php\nuse B7s\\FluentVox\\Enums\\Language;\n\n$result = FluentVox::make()\n    -\u003emultilingual()\n    -\u003etext('Bonjour le monde!')\n    -\u003elanguage(Language::French)\n    -\u003egenerate();\n```\n\n### Expressive Speech\n\n```php\n$result = FluentVox::make()\n    -\u003etext('Wow, this is absolutely amazing!')\n    -\u003eexpressive()\n    -\u003eslow()\n    -\u003egenerate();\n```\n\n### Custom Sample Rate\n\n```php\n// Generate audio at CD quality (44.1kHz)\n$result = FluentVox::make()\n    -\u003etext('High quality audio output')\n    -\u003esampleRate(44100)\n    -\u003egenerate();\n\n// Professional audio (48kHz)\n$result = FluentVox::make()\n    -\u003etext('Professional quality')\n    -\u003esampleRate(48000)\n    -\u003egenerate();\n```\n\n## 🛠️ CLI Commands\n\n### install - Install Dependencies\n\n```bash\n# Basic installation\nvendor/bin/fluentvox install\n\n# Install with PyTorch\nvendor/bin/fluentvox install --pytorch\n\n# Upgrade existing packages\nvendor/bin/fluentvox install --upgrade\n```\n\n### doctor - Diagnose Installation\n\n```bash\n# Basic diagnosis\nvendor/bin/fluentvox doctor\n\n# Download default model if not available\nvendor/bin/fluentvox doctor --download-default\n```\n\nThe `doctor` command checks your installation and shows:\n\n- Platform compatibility\n- Python and dependency status\n- Model availability\n- **Default model detection**: Identifies your configured default model and suggests downloading it if not available\n\n### models - Manage Models\n\n```bash\n# List available models\nvendor/bin/fluentvox models\n\n# Download a specific model\nvendor/bin/fluentvox models download --model=chatterbox\n\n# Download all models\nvendor/bin/fluentvox models download --all\n```\n\n### generate - Generate Speech\n\n```bash\n# Basic generation (uses default model from config)\nvendor/bin/fluentvox generate \"Hello, world!\"\n\n# Save to specific file\nvendor/bin/fluentvox generate \"Hello, world!\" -o output.wav\n\n# Specify a different model\nvendor/bin/fluentvox generate \"Hello!\" --model=chatterbox-turbo\n\n# With voice cloning\nvendor/bin/fluentvox generate \"Hello!\" --voice=reference.wav\n\n# Multilingual\nvendor/bin/fluentvox generate \"Bonjour!\" -m chatterbox-multilingual -l fr\n```\n\n**Note:** If you don't specify `--model`, the command will use the `default_model` from your `fluentvox-config.php` file.\n\n## 📖 API Reference\n\n### Model Selection\n\nChoose which Chatterbox model to use based on your needs. Each model has different capabilities, performance characteristics, and language support.\n\n```php\n// Standard English model (500M params)\nFluentVox::make()-\u003estandard()  // Best for general use with emotion controls\n\n// Turbo model - faster, with paralinguistic tags (350M params)\nFluentVox::make()-\u003eturbo()  // Fastest, supports [laugh], [cough] tags\n\n// Multilingual model - 23+ languages (500M params)\nFluentVox::make()-\u003emultilingual()  // For non-English languages\n```\n\n### Voice Cloning\n\nClone any voice by providing a reference audio sample. The model will mimic the speaker's voice characteristics, tone, and speaking style in the generated speech.\n\n```php\n// Clone voice from reference audio\n-\u003evoiceFrom('/path/to/reference.wav')  // Use this person's voice\n\n// Alias\n-\u003ecloneVoice('/path/to/reference.wav')\n\n// Use default voice\n-\u003edefaultVoice()  // Use model's built-in voice\n```\n\n### Language (Multilingual Model)\n\nSpecify the target language when using the multilingual model. The model will generate speech with native pronunciation and intonation for the selected language.\n\n```php\nuse B7s\\FluentVox\\Enums\\Language;\n\n-\u003elanguage(Language::French)\n-\u003elanguage(Language::Japanese)\n-\u003elanguage(Language::Portuguese)\n\n// Shortcuts for common languages\n-\u003eenglish()\n-\u003efrench()\n-\u003espanish()\n-\u003egerman()\n-\u003eportuguese()\n-\u003ejapanese()\n-\u003echinese()\n```\n\n**Supported Languages:** Arabic, Danish, German, Greek, English, Spanish, Finnish, French, Hebrew, Hindi, Italian, Japanese, Korean, Malay, Dutch, Norwegian, Polish, Portuguese, Russian, Swedish, Swahili, Turkish, Chinese ([see more details](https://github.com/resemble-ai/chatterbox?tab=readme-ov-file#supported-languages))\n\n### Expression Controls\n\nControl the emotional intensity and expressiveness of the generated speech. Higher values produce more dramatic, animated voices while lower values create calmer, more subdued speech.\n\n```php\n// Exaggeration (0.25-2.0, neutral=0.5)\n-\u003eexaggeration(0.7)\n\n// Presets\n-\u003eneutral()      // 0.5 - Balanced, natural expression\n-\u003eexpressive()   // 0.7 - More animated and emotional\n-\u003edramatic()     // 1.0 - Highly expressive, theatrical\n-\u003esubtle()       // 0.3 - Understated, calm delivery\n```\n\n### Pace/CFG Controls\n\nAdjust the rhythm and speed of speech delivery. CFG (Classifier-Free Guidance) weight controls how closely the model follows the text pacing. Lower values create slower, more deliberate speech while higher values speed up delivery.\n\n```php\n// CFG weight (0.2-1.0, default=0.5)\n-\u003ecfgWeight(0.4)\n-\u003epace(0.4)  // alias\n\n// Presets\n-\u003eslow()        // 0.3 - Deliberate, measured pacing\n-\u003enormalPace()  // 0.5 - Natural speaking speed\n-\u003efast()        // 0.7 - Quick, energetic delivery\n```\n\n### Randomness Controls\n\nControl the variability and creativity in speech generation. Temperature affects how predictable vs. varied the output is. Seeds allow you to reproduce exact results.\n\n```php\n// Temperature (0.05-5.0, default=0.8)\n-\u003etemperature(0.6)\n\n// Presets\n-\u003edeterministic()  // 0.3 - Consistent, predictable output\n-\u003ecreative()       // 1.2 - More varied, spontaneous speech\n\n// Seed for reproducibility (0 = random)\n-\u003eseed(42)  // Use same seed to get identical results\n```\n\n### Audio Processing\n\nConfigure how reference audio is processed for voice cloning. VAD (Voice Activity Detection) can remove silence and background noise from reference clips.\n\n```php\n// Trim silence from reference audio\n-\u003etrimSilence()  // Remove silence/noise from voice sample\n\n// Keep silence (default)\n-\u003ekeepSilence()  // Use reference audio as-is\n```\n\n### Device Selection\n\nChoose which hardware to use for audio generation. GPU acceleration (CUDA/MPS) is significantly faster than CPU but requires compatible hardware.\n\n```php\n// Auto-detect best device (default)\n-\u003eautoDevice()  // Automatically selects CUDA \u003e MPS \u003e CPU\n\n// Force CUDA (NVIDIA GPU)\n-\u003ecuda()  // Use NVIDIA GPU (Linux/Windows)\n\n// Force MPS (Apple Silicon)\n-\u003emps()  // Use Apple Metal (M1/M2/M3 Macs)\n\n// Force CPU\n-\u003ecpu()  // Use CPU only (slower but always available)\n```\n\n### Output Configuration\n\nConfigure where and how the generated audio is saved, with options for timeouts and progress monitoring.\n\n```php\n// Set output path\n-\u003esaveTo('/path/to/output.wav')  // Save to specific location\n-\u003eoutput('/path/to/output.wav')  // alias\n\n// Set sample rate (Hz)\n-\u003esampleRate(44100)  // Resample to 44.1kHz (CD quality)\n-\u003esampleRate(48000)  // Resample to 48kHz (professional audio)\n-\u003enativeSampleRate()  // Use model's native rate (24kHz, default)\n\n// Set timeout (seconds)\n-\u003etimeout(600)  // Maximum time to wait for generation\n\n// Enable verbose output\n-\u003everbose()  // Show detailed generation logs\n\n// Progress callback\n-\u003eonProgress(function (string $output, bool $isError) {\n    echo $output;  // Monitor generation progress in real-time\n})\n```\n\n**Sample Rate Notes:**\n- Model's native rate is **24kHz** (24000 Hz)\n- If you specify a different rate, audio will be automatically resampled\n- Common rates: 16000 (telephony), 24000 (native), 44100 (CD), 48000 (professional)\n- Higher rates = larger files but potentially better quality\n- Resampling adds minimal processing time\n\n### Presets\n\nPre-configured combinations of settings optimized for common use cases. These presets adjust expression, pace, and temperature for specific scenarios.\n\n```php\n// Narration: clear, neutral, consistent\n-\u003eforNarration()  // Audiobook narration, documentation\n\n// Dialogue: expressive, varied\n-\u003eforDialogue()  // Character voices, conversations\n\n// Voice agents: fast, clear, low latency\n-\u003eforVoiceAgent()  // Chatbots, virtual assistants\n\n// Audiobooks: dramatic, varied pacing\n-\u003eforAudiobook()  // Long-form storytelling\n```\n\n### Execution\n\nGenerate the audio file or retrieve raw audio data for further processing.\n\n```php\n// Generate and save to file\n$result = FluentVox::make()\n    -\u003etext('Hello!')\n    -\u003egenerate();  // Returns GenerationResult object\n\n// Generate and get raw audio data\n$audioData = FluentVox::make()\n    -\u003etext('Hello!')\n    -\u003egenerateRaw();  // Returns raw WAV bytes as string\n```\n\n### Audio Conversion\n\nConvert generated audio to different formats using FFmpeg. All conversion methods generate the audio first, then convert it. The format is automatically detected from the file extension.\n\n```php\n// Universal method - format detected from extension\n$result = FluentVox::make()\n    -\u003etext('Hello!')\n    -\u003econvertTo('/path/to/output.mp3');  // Auto-detects MP3\n\n$result = FluentVox::make()\n    -\u003etext('Hello!')\n    -\u003econvertTo('/path/to/output.m4a', ['bitrate' =\u003e 128]);\n\n// Specific format methods\n$result = FluentVox::make()\n    -\u003etext('Hello!')\n    -\u003econvertToMp3('/path/to/output.mp3', bitrate: 192);\n\n$result = FluentVox::make()\n    -\u003etext('Hello!')\n    -\u003econvertToM4a('/path/to/output.m4a', bitrate: 128);\n\n$result = FluentVox::make()\n    -\u003etext('Hello!')\n    -\u003econvertToOgg('/path/to/output.ogg', quality: 5);\n\n$result = FluentVox::make()\n    -\u003etext('Hello!')\n    -\u003econvertToOpus('/path/to/output.opus', bitrate: 96);\n\n$result = FluentVox::make()\n    -\u003etext('Hello!')\n    -\u003econvertToFlac('/path/to/output.flac');\n\n// Convert and delete original WAV\n$result = FluentVox::make()\n    -\u003etext('Hello!')\n    -\u003econvertTo('/path/to/output.mp3', deleteOriginal: true);\n\n// Manual conversion of existing file\nFluentVox::convertAudio(\n    'input.wav',\n    'output.mp3',\n    'mp3',\n    ['bitrate' =\u003e 320]\n);\n\n// Get audio file information\n$info = FluentVox::getAudioInfo('audio.mp3');\n// Returns: ['duration', 'sample_rate', 'channels', 'codec', 'bitrate']\n```\n\n**Supported Formats:**\n\n- **MP3**: Universal compatibility, good compression (bitrate: 64-320 kbps)\n- **M4A/AAC**: Apple devices, slightly better quality than MP3 (bitrate: 64-256 kbps)\n- **OGG Vorbis**: Web streaming, open format (quality: 0-10)\n- **Opus**: Best compression for voice, modern browsers (bitrate: 32-256 kbps)\n- **FLAC**: Lossless compression, archival quality\n\n### Result Object\n\nThe GenerationResult object contains information about the generated audio and metadata about the generation process.\n\n```php\n$result = FluentVox::make()-\u003etext('Hello!')-\u003egenerate();\n\n$result-\u003eisSuccessful();           // bool - Check if generation succeeded\n$result-\u003egetPath();                // string - Output file path\n$result-\u003egetDuration();            // float - Duration in seconds\n$result-\u003egetFormattedDuration();   // string - \"00:02.50\" format\n$result-\u003esampleRate;               // int - 24000 Hz\n$result-\u003etext;                     // string - Original input text\n$result-\u003eerror;                    // string|null - Error message if failed\n$result-\u003emetadata;                 // array - Generation parameters used\n$result-\u003etoArray();                // array - All data as array\n```\n\n### Static Helpers\n\nUtility methods for system checks, installation, model management, and audio conversion without creating a FluentVox instance.\n\n```php\n// Check system requirements\n$results = FluentVox::checkRequirements();  // Verify Python, PyTorch, etc.\n\n// Install Chatterbox TTS\nFluentVox::install(function ($output, $isError) {\n    echo $output;  // Monitor installation progress\n});\n\n// List available models\n$models = FluentVox::listModels();  // Get all models with download status\n\n// Convert existing audio file\nFluentVox::convertAudio('input.wav', 'output.mp3', 'mp3', ['bitrate' =\u003e 192]);\n\n// Get audio file information\n$info = FluentVox::getAudioInfo('audio.mp3');\n// Returns: ['duration' =\u003e 5.2, 'sample_rate' =\u003e 44100, 'channels' =\u003e 2, ...]\n```\n\n## ⚙️ Configuration\n\nCreate a `fluentvox-config.php` file in your project root:\n\n```php\n\u003c?php\n\nreturn [\n    // Python executable path (null = auto-detect)\n    // FluentVox automatically detects venv, but you can specify manually:\n    // 'python_path' =\u003e '/path/to/venv/bin/python',  // Linux/macOS\n    // 'python_path' =\u003e 'C:\\\\path\\\\to\\\\venv\\\\Scripts\\\\python.exe',  // Windows\n    'python_path' =\u003e null,\n\n    // Directory where models will be stored\n    'models_path' =\u003e null, // null = ~/.cache/huggingface/hub\n\n    // Default model: 'chatterbox', 'chatterbox-turbo', 'chatterbox-multilingual'\n    // This model will be used automatically by CLI commands and FluentVox instances\n    'default_model' =\u003e 'chatterbox',\n\n    // Default device: 'auto', 'cuda', 'mps', 'cpu'\n    'device' =\u003e 'auto',\n\n    // Default output directory\n    'output_path' =\u003e null, // null = current working directory\n\n    // Default audio format\n    'audio_format' =\u003e 'wav',\n\n    // Default sample rate (Hz)\n    // null = use model's native rate (24000 Hz)\n    // Common values: 16000 (telephony), 24000 (native), 44100 (CD), 48000 (professional)\n    'sample_rate' =\u003e null,\n\n    // Generation defaults\n    'defaults' =\u003e [\n        'exaggeration' =\u003e 0.5,\n        'temperature' =\u003e 0.8,\n        'cfg_weight' =\u003e 0.5,\n        'seed' =\u003e 0,\n    ],\n\n    // Process timeout in seconds\n    'timeout' =\u003e 300,\n\n    // Enable verbose output\n    'verbose' =\u003e false,\n];\n```\n\n**Configuration File Location:**\n\nThe configuration file is searched in the following order:\n\n1. Explicit path (if provided programmatically)\n2. Project root (where `composer.json` is located)\n3. Current working directory\n4. Package root (fallback)\n\n**Default Model:**\n\nThe `default_model` setting is automatically used by:\n\n- CLI `generate` command when `--model` is not specified\n- `FluentVox::make()` instances\n- `doctor` command detects and highlights the default model status\n\nTo download the default model, run:\n\n```bash\nvendor/bin/fluentvox doctor --download-default\n```\n\n## 📊 Available Models\n\n| Model                     | Size | Languages | Features                                 | Best For                           |\n| ------------------------- | ---- | --------- | ---------------------------------------- | ---------------------------------- |\n| `chatterbox`              | 500M | English   | CFG \u0026 exaggeration tuning                | General TTS with creative controls |\n| `chatterbox-turbo`        | 350M | English   | Paralinguistic tags `[laugh]`, `[cough]` | Voice agents, low latency          |\n| `chatterbox-multilingual` | 500M | 23+       | Zero-shot cloning, multiple languages    | Global applications                |\n\n## 📋 Requirements\n\n- PHP 8.3+\n- Composer 2+\n- Python 3.10+ (system Python or virtual environment)\n- PyTorch (auto-installed)\n- Chatterbox TTS (auto-installed)\n- FFmpeg (for audio conversion)\n\n**Note:** Using a Python virtual environment (venv) is **highly recommended** to avoid conflicts with system packages. FluentVox automatically detects and uses venv when available.\n\n\u003e **Note:** Chatterbox TTS has its own system [requirements and dependencies](https://github.com/resemble-ai/chatterbox#installation). If you encounter installation issues, run `vendor/bin/fluentvox doctor` to diagnose problems, or `vendor/bin/fluentvox install --verbose` for detailed installation logs. Ensure all Python dependencies are properly installed before use.\n\n### GPU Acceleration (Optional)\n\n- **NVIDIA GPU**: CUDA 11.8+ (Linux/Windows)\n- **Apple Silicon**: MPS (macOS M1/M2/M3)\n\n## 🌐 Platform Support\n\n| Platform | Architecture                  | GPU Support |\n| -------- | ----------------------------- | ----------- |\n| Linux    | x86_64, arm64                 | CUDA        |\n| macOS    | x86_64, arm64 (Apple Silicon) | MPS         |\n| Windows  | x86_64                        | CUDA        |\n\n## Running Tests\n\n### Run tests\n\n```bash\ncomposer test          # Runs all tests\ncomposer test:unit     # Only unit tests\ncomposer test:feature  # Only feature tests\ncomposer test:coverage # With coverage\n```\n\n## 📄 License\n\nMIT License - see [LICENSE](LICENSE) file.\n\n## 🙏 Credits\n\n- [Resemble AI](https://resemble.ai) - Chatterbox TTS model\n- [b7s/whisper-php](https://github.com/b7s/whisper-php) - Inspiration for API design\n- [b7s/YtPilot](https://github.com/b7s/YtPilot) - Inspiration for fluent API\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fb7s%2Ffluentvox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fb7s%2Ffluentvox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fb7s%2Ffluentvox/lists"}