WhispyWyser


NameWhispyWyser JSON
Version 0.0.27 PyPI version JSON
download
home_pageNone
SummaryThe WhispyWyser project is designed to provide a flexible and efficient implementation of Voice Assistant for Home Assistant based on Faster Whisper and Wyoming protocol. This project supports both CPU and CUDA architectures, allowing for optimized performance based on the available hardware.
upload_time2025-08-25 22:37:13
maintainerNone
docs_urlNone
authorcociweb
requires_python>=3.10
licenseNone
keywords whispywyser
VCS
bugtrack_url
requirements wyoming hassil fastapi uvicorn pydantic python-multipart python-jose passlib
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # WhispyWyser - Voice Assistant for Home Assistant

WhispyWyser is a flexible and efficient voice assistant for Home Assistant, leveraging Faster Whisper for speech recognition and the Wyoming protocol for seamless integration. It supports both CPU and CUDA architectures for optimized performance.

## Features

- 🎙️ High-accuracy speech-to-text with Faster Whisper
- 🏠 Deep Home Assistant integration
- 🐳 Docker support for easy deployment
- 🚀 GPU acceleration support (CUDA)
- 🔌 Wyoming protocol for extensibility
- 🔒 Secure authentication with long-lived tokens

## Prerequisites

- Docker and Docker Compose
- Home Assistant instance (local or remote)
- NVIDIA GPU with drivers (for CUDA support)

## Quick Start

1. **Clone the repository**
   ```bash
   git clone https://github.com/yourusername/whispywyser.git
   cd whispywyser
   ```

2. **Configure environment**
   ```bash
   cp .env.example .env
   # Edit .env with your configuration
   nano .env
   ```

3. **Start the service**
   ```bash
   # For CPU
   docker-compose up -d whispywyser-cpu
   
   # For GPU (CUDA)
   docker-compose up -d whispywyser-gpu
   ```

## Configuration

### Environment Variables

| Variable | Required | Description |
|----------|----------|-------------|
| `HA_TOKEN` | ✅ | Home Assistant long-lived access token |
| `HOME_ASSISTANT_URL` | ✅ | URL of your Home Assistant instance |
| `HF_TOKEN` | ❌ | Hugging Face Hub token (for private models) |
| `MODEL` | ❌ | Model name (default: `openai/whisper-large-v3`) |
| `DEVICE` | ❌ | `cuda` or `cpu` (auto-detected) |
| `LANGUAGE` | ❌ | Language code (e.g., `en`, `de`) |

### Generating a Long-Lived Access Token

1. In Home Assistant, click on your profile
2. Scroll down to "Long-Lived Access Tokens"
3. Click "Create Token"
4. Copy the token and add it to your `.env` file

## Docker Compose

The project includes two services:

1. **whispywyser-gpu**: For systems with NVIDIA GPU
2. **whispywyser-cpu**: For CPU-only systems

### Volumes

- `/data`: Stores models and configuration

### Ports

- `10300`: Wyoming protocol port

## Development

### Building the Image

```bash
# For CPU
docker-compose build whispywyser-cpu

# For GPU
docker-compose build whispywyser-gpu
```

### Running Tests

```bash
docker-compose run whispywyser-cpu python -m pytest
```

## Troubleshooting

### Common Issues

1. **CUDA errors**
   - Ensure NVIDIA drivers are installed
   - Run `nvidia-smi` to verify GPU detection
   - Check Docker has access to GPU: `docker run --gpus all nvidia/cuda:11.0-base nvidia-smi`

2. **Connection to Home Assistant**
   - Verify `HOME_ASSISTANT_URL` is correct
   - Check if the token has the right permissions
   - Ensure Home Assistant is accessible from the container

## License

MIT

## Acknowledgements

- [Faster Whisper](https://github.com/guillaumekln/faster-whisper)
- [Wyoming Protocol](https://github.com/rhasspy/wyoming)
- [Home Assistant](https://www.home-assistant.io/)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "WhispyWyser",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "WhispyWyser",
    "author": "cociweb",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/ec/0c/233e8e4a754afa82d3936c88cdd5102159240c4f4b02f0ab7d1a70b00c10/whispywyser-0.0.27.tar.gz",
    "platform": null,
    "description": "# WhispyWyser - Voice Assistant for Home Assistant\n\nWhispyWyser is a flexible and efficient voice assistant for Home Assistant, leveraging Faster Whisper for speech recognition and the Wyoming protocol for seamless integration. It supports both CPU and CUDA architectures for optimized performance.\n\n## Features\n\n- \ud83c\udf99\ufe0f High-accuracy speech-to-text with Faster Whisper\n- \ud83c\udfe0 Deep Home Assistant integration\n- \ud83d\udc33 Docker support for easy deployment\n- \ud83d\ude80 GPU acceleration support (CUDA)\n- \ud83d\udd0c Wyoming protocol for extensibility\n- \ud83d\udd12 Secure authentication with long-lived tokens\n\n## Prerequisites\n\n- Docker and Docker Compose\n- Home Assistant instance (local or remote)\n- NVIDIA GPU with drivers (for CUDA support)\n\n## Quick Start\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/yourusername/whispywyser.git\n   cd whispywyser\n   ```\n\n2. **Configure environment**\n   ```bash\n   cp .env.example .env\n   # Edit .env with your configuration\n   nano .env\n   ```\n\n3. **Start the service**\n   ```bash\n   # For CPU\n   docker-compose up -d whispywyser-cpu\n   \n   # For GPU (CUDA)\n   docker-compose up -d whispywyser-gpu\n   ```\n\n## Configuration\n\n### Environment Variables\n\n| Variable | Required | Description |\n|----------|----------|-------------|\n| `HA_TOKEN` | \u2705 | Home Assistant long-lived access token |\n| `HOME_ASSISTANT_URL` | \u2705 | URL of your Home Assistant instance |\n| `HF_TOKEN` | \u274c | Hugging Face Hub token (for private models) |\n| `MODEL` | \u274c | Model name (default: `openai/whisper-large-v3`) |\n| `DEVICE` | \u274c | `cuda` or `cpu` (auto-detected) |\n| `LANGUAGE` | \u274c | Language code (e.g., `en`, `de`) |\n\n### Generating a Long-Lived Access Token\n\n1. In Home Assistant, click on your profile\n2. Scroll down to \"Long-Lived Access Tokens\"\n3. Click \"Create Token\"\n4. Copy the token and add it to your `.env` file\n\n## Docker Compose\n\nThe project includes two services:\n\n1. **whispywyser-gpu**: For systems with NVIDIA GPU\n2. **whispywyser-cpu**: For CPU-only systems\n\n### Volumes\n\n- `/data`: Stores models and configuration\n\n### Ports\n\n- `10300`: Wyoming protocol port\n\n## Development\n\n### Building the Image\n\n```bash\n# For CPU\ndocker-compose build whispywyser-cpu\n\n# For GPU\ndocker-compose build whispywyser-gpu\n```\n\n### Running Tests\n\n```bash\ndocker-compose run whispywyser-cpu python -m pytest\n```\n\n## Troubleshooting\n\n### Common Issues\n\n1. **CUDA errors**\n   - Ensure NVIDIA drivers are installed\n   - Run `nvidia-smi` to verify GPU detection\n   - Check Docker has access to GPU: `docker run --gpus all nvidia/cuda:11.0-base nvidia-smi`\n\n2. **Connection to Home Assistant**\n   - Verify `HOME_ASSISTANT_URL` is correct\n   - Check if the token has the right permissions\n   - Ensure Home Assistant is accessible from the container\n\n## License\n\nMIT\n\n## Acknowledgements\n\n- [Faster Whisper](https://github.com/guillaumekln/faster-whisper)\n- [Wyoming Protocol](https://github.com/rhasspy/wyoming)\n- [Home Assistant](https://www.home-assistant.io/)\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "The WhispyWyser project is designed to provide a flexible and efficient implementation of Voice Assistant for Home Assistant based on Faster Whisper and Wyoming protocol. This project supports both CPU and CUDA architectures, allowing for optimized performance based on the available hardware.",
    "version": "0.0.27",
    "project_urls": {
        "Changelog": "https://github.com/cociweb/WhispyWyser/releases",
        "Documentation": "https://cociweb.github.io/WhispyWyser",
        "Homepage": "https://github.com/cociweb/WhispyWyser",
        "Issues": "https://github.com/cociweb/WhispyWyser/issues",
        "Repository": "https://github.com/cociweb/WhispyWyser.git"
    },
    "split_keywords": [
        "whispywyser"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fa491595a2d7a1aff3c654a253894644634ac6e202577920fb37d30d3cbeaae9",
                "md5": "61f6c6690381487df646b5c36307dbb4",
                "sha256": "2a98cfed7869aa2fba8606e81ce4a77a2976d7c51037c0cb4889a0c074e403d7"
            },
            "downloads": -1,
            "filename": "whispywyser-0.0.27-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "61f6c6690381487df646b5c36307dbb4",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": ">=3.10",
            "size": 33091,
            "upload_time": "2025-08-25T22:37:11",
            "upload_time_iso_8601": "2025-08-25T22:37:11.954438Z",
            "url": "https://files.pythonhosted.org/packages/fa/49/1595a2d7a1aff3c654a253894644634ac6e202577920fb37d30d3cbeaae9/whispywyser-0.0.27-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ec0c233e8e4a754afa82d3936c88cdd5102159240c4f4b02f0ab7d1a70b00c10",
                "md5": "3ce7644be54cfcdec60d2ce656c4c7a8",
                "sha256": "c9d45f5d215f8197dce1dfd8c68d0b7428a44353e302c8b363841f6dec479958"
            },
            "downloads": -1,
            "filename": "whispywyser-0.0.27.tar.gz",
            "has_sig": false,
            "md5_digest": "3ce7644be54cfcdec60d2ce656c4c7a8",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 35337,
            "upload_time": "2025-08-25T22:37:13",
            "upload_time_iso_8601": "2025-08-25T22:37:13.129562Z",
            "url": "https://files.pythonhosted.org/packages/ec/0c/233e8e4a754afa82d3936c88cdd5102159240c4f4b02f0ab7d1a70b00c10/whispywyser-0.0.27.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-25 22:37:13",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "cociweb",
    "github_project": "WhispyWyser",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "wyoming",
            "specs": [
                [
                    "<",
                    "2"
                ],
                [
                    ">=",
                    "1.6.1"
                ]
            ]
        },
        {
            "name": "hassil",
            "specs": [
                [
                    ">=",
                    "3.0.1"
                ],
                [
                    "<",
                    "4"
                ]
            ]
        },
        {
            "name": "fastapi",
            "specs": [
                [
                    "<",
                    "1.0.0"
                ],
                [
                    ">=",
                    "0.95.0"
                ]
            ]
        },
        {
            "name": "uvicorn",
            "specs": [
                [
                    ">=",
                    "0.15.0"
                ],
                [
                    "<",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "pydantic",
            "specs": [
                [
                    ">=",
                    "1.10.0"
                ],
                [
                    "<",
                    "3.0.0"
                ]
            ]
        },
        {
            "name": "python-multipart",
            "specs": [
                [
                    ">=",
                    "0.0.5"
                ],
                [
                    "<",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "python-jose",
            "specs": [
                [
                    ">=",
                    "3.3.0"
                ],
                [
                    "<",
                    "4.0.0"
                ]
            ]
        },
        {
            "name": "passlib",
            "specs": [
                [
                    "<",
                    "2.0.0"
                ],
                [
                    ">=",
                    "1.7.4"
                ]
            ]
        }
    ],
    "lcname": "whispywyser"
}
        
Elapsed time: 0.45308s