# NEKO-VOICE-ASSISTANT 🎤🐾

Voice-controlled CLI assistant with 6 personality TTS (Text-to-Speech) voices.

## Features

- **6 Personality Voices**: Each personality has unique voice settings and speech patterns
- **Voice Command Parsing**: Natural language command recognition
- **RESTful API**: Full Swagger documentation
- **NestJS Architecture**: Production-ready microservice

## Personalities

| Personality | Emoji | Voice | Specialty |
|-------------|-------|-------|-----------|
| Neko-Arc | 🐾 | Samantha | Technical execution, kawaii energy |
| Mario Gallo Bestino | 🎭 | Daniel | Theater, orchestration |
| Noel | 🗡️ | Karen | Debugging, validation |
| Glam Americano | 🎸 | Diego | Spanish content, ethics |
| Dr. Hannibal Lecter | 🧠 | Tom | Forensic analysis |
| Tetora | 🎯 | Moira | Multi-perspective analysis |

## Installation

```bash
npm install neko-voice-assistant
```

## Quick Start

```bash
# Clone and install
git clone https://github.com/wakibaka/neko-voice-assistant.git
cd neko-voice-assistant
npm install

# Build and run
npm run build
npm run start:prod

# Server runs on http://localhost:3011
# Swagger docs at http://localhost:3011/api
```

## API Endpoints

### Health
- `GET /health` - Health check with personality status

### TTS (Text-to-Speech)
- `GET /tts/personalities` - Get all personality configurations
- `GET /tts/personality/:name` - Get specific personality
- `GET /tts/voices` - Get available system voices
- `POST /tts/speak` - Speak text with personality voice
- `POST /tts/greet/:personality` - Speak personality greeting

### Voice Commands
- `GET /voice/commands` - List available commands
- `POST /voice/parse` - Parse command without executing
- `POST /voice/command` - Process and execute command

### Personalities
- `GET /personality` - Get all personalities
- `GET /personality/:id` - Get specific personality
- `GET /personality/greetings` - Get all greetings
- `GET /personality/random` - Get random personality

## Voice Commands

```bash
# Address specific personality
"hey neko <question>"
"hey mario <question>"
"hey noel <question>"
"hey glam <question>"
"hey hannibal <question>"
"hey tetora <question>"

# Action commands
"run tests"
"build"
"create video <topic>"
"debug <target>"
"analyze <target>"
"insulta marcelita"
"status"
"help"
"git <command>"
```

## Example Usage

```bash
# Parse a voice command
curl -X POST http://localhost:3011/voice/parse \
  -H "Content-Type: application/json" \
  -d '{"command": "hey neko what is the weather?"}'

# Response
{
  "success": true,
  "parsed": {
    "command": "hey neko what is the weather?",
    "personality": "neko-arc",
    "action": "general",
    "parameters": {
      "query": "what is the weather?"
    }
  },
  "message": "Command parsed for neko-arc"
}

# Get all personalities
curl http://localhost:3011/tts/personalities

# Get Glam's config
curl http://localhost:3011/tts/personality/glam
```

## Configuration

Environment variables:
- `PORT` - Server port (default: 3011)
- `MONGODB_URI` - MongoDB connection string (optional)

## Development

```bash
# Development mode with hot reload
npm run start:dev

# Run tests
npm test

# Test coverage
npm run test:cov

# Lint
npm run lint
```

## License

MIT

## Author

wakibaka

---

🐾 *Nyaa~! Ready to assist, desu~!* ✨
