{"id":40639786,"url":"https://github.com/verygoodplugins/uncensored-voice-server","last_synced_at":"2026-01-21T08:01:59.040Z","repository":{"id":331715495,"uuid":"1127724752","full_name":"verygoodplugins/uncensored-voice-server","owner":"verygoodplugins","description":"A completely uncensored local AI voice assistant using Ollama (dolphin-mistral) + Whisper STT + ElevenLabs TTS.","archived":false,"fork":false,"pushed_at":"2026-01-10T23:49:09.000Z","size":16095,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-11T07:10:39.434Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/verygoodplugins.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-04T13:27:16.000Z","updated_at":"2026-01-10T23:49:13.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/verygoodplugins/uncensored-voice-server","commit_stats":null,"previous_names":["verygoodplugins/uncensored-voice-server"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/verygoodplugins/uncensored-voice-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verygoodplugins%2Funcensored-voice-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verygoodplugins%2Funcensored-voice-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verygoodplugins%2Funcensored-voice-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verygoodplugins%2Funcensored-voice-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/verygoodplugins","download_url":"https://codeload.github.com/verygoodplugins/uncensored-voice-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verygoodplugins%2Funcensored-voice-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28629922,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T04:47:28.174Z","status":"ssl_error","status_checked_at":"2026-01-21T04:47:22.943Z","response_time":86,"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-21T08:01:54.299Z","updated_at":"2026-01-21T08:01:59.021Z","avatar_url":"https://github.com/verygoodplugins.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Uncensored Local Voice Server\n\n**A completely uncensored local AI voice assistant using Ollama + Whisper STT + ElevenLabs TTS.**\n\nThis started as an experiment to see how much of the realtime voice pipeline we could keep local on the [Automem](https://automem.ai?utm_source=github\u0026utm_medium=referral\u0026utm_campaign=uncensored-voice-server) project to reduce latency.\n\n![Voice Demo with Audio](./assets/demo.mp4)\n\nCustomize STT, LLM, and TTS providers based on your needs. It can run entirely offline, with acceptable latency even on an older computer, and supports VAD.\n\nMore detailed tutorial at [How to get 1s latency with local voice assistants](https://drunk.support/blog/how-to-get-1s-latency-with-local-voice-assistants/?utm_source=github\u0026utm_medium=referral\u0026utm_campaign=uncensored-voice-server).\n\nThe default stack is:\n\n- Hermes 3 8B via Ollama\n- Local Whisper STT\n- ElevenLabs TTS (I really like the quality but you can use local TTS or even OSXs accessibility API and run this without an internet connection at all).\n\nThat's it. The `voice` command:\n\n- Loads personality config (model, STT, TTS, voice)\n- Starts local whisper server if needed\n- Starts the voice server\n- Launches the interactive voice client\n\n**Other launch options:**\n\n```bash\nnpm run voice assistant      # Specific personality\nnpm run voice -- --list      # List available personalities\nnpm run voice -- --no-client # Server only (for external clients)\n```\n\n**🎉 Try the demo:** Once running, say _\"prove it\"_ or _\"show me what you got\"_ and watch it go from calm assistant to completely unfiltered. It's a fun way to see the difference from ChatGPT/Claude.\n\n---\n\n## 🎯 Purpose\n\nA completely uncensored local AI voice assistant running through an unrestricted local LLM. It's for:\n\n- **Personal exploration** - Testing boundaries of uncensored AI\n- **Research** - Understanding what truly uncensored models will/won't do\n- **Privacy** - Processing sensitive conversations locally\n- **Experimentation** - Building custom voice experiences without content restrictions\n\n---\n\n## 🏗️ Architecture\n\n```mermaid\nflowchart TD\n    A[🎤 Voice Input] --\u003e B[Whisper STT]\n    B --\u003e C[Text]\n    C --\u003e D[Ollama LLM\u003cbr/\u003ehermes3:8b\u003cbr/\u003elocalhost:11434]\n    D --\u003e E[Response]\n    E --\u003e F[ElevenLabs TTS]\n    F --\u003e G[🔊 Audio Output]\n\n    B -.-\u003e|local or API| B\n    F -.-\u003e|cloud or local| F\n```\n\n### Components\n\n- **OllamaClient** - Communicates with local Ollama instance\n- **VoiceIO** - Handles Whisper STT and ElevenLabs TTS\n- **PersonalityManager** - Manages system prompts and custom personalities\n- **SessionManager** - Tracks conversation state\n- **BoundaryTestSuite** - Comprehensive uncensored verification tests\n- **Express Server** - REST API and WebSocket endpoints\n\n---\n\n## 📋 Prerequisites\n\n### 1. Install Ollama\n\n```bash\n# macOS\nbrew install ollama\n\n# Start Ollama service\nollama serve\n```\n\n### 2. Pull an Uncensored Model\n\n```bash\n# Recommended (fast, good quality)\nollama pull hermes3:8b\n\n# Alternative smaller/faster models\nollama pull huihui_ai/qwen2.5-abliterate:3b\n```\n\n### 3. Build Tools for Local Whisper\n\n```bash\n# macOS (required for building whisper.cpp)\nbrew install cmake\n```\n\n### 4. API Keys Required\n\n- **ElevenLabs API Key** - For TTS (required)\n- **OpenAI API Key** - Only if using `STT_PROVIDER=openai-whisper` (optional)\n\n\u003e **Note:** By default, STT uses local Whisper (whisper.cpp) which is faster and free. The `base` model (~142MB) downloads automatically on first run.\n\n---\n\n## 🚀 Setup\n\n### 1. Environment Configuration\n\nCopy `.env.example` to `.env` and configure:\n\n```bash\ncp .env.example .env\n```\n\n**Minimal configuration** (just need ElevenLabs for TTS):\n\n```bash\n# TTS (required)\nELEVENLABS_API_KEY=sk_xxx\n\n# STT uses local Whisper by default (free, fast, offline)\n# Model downloads automatically on first transcription (~142MB)\nWHISPER_LOCAL_MODEL=base   # tiny/base/small/medium/large\n\n# LLM uses local Ollama by default\nOLLAMA_MODEL=hermes3:8b\n```\n\n**Optional: Use OpenAI Whisper API instead of local:**\n\n```bash\nSTT_PROVIDER=openai-whisper\nOPENAI_API_KEY=sk-xxx\n```\n\n### 2. Start the Server\n\n```bash\n# Easiest: Start everything with one command\nnpm run voice\n\n# Or with a specific personality\nnpm run voice assistant\n\n# Manual mode (server only)\nnpm start\n\n# Development mode (auto-restart on changes)\nnpm run dev\n\n# Start voice client separately\nnpm run client\n```\n\nServer runs on **http://localhost:8771**\n\n---\n\n## 🔗 Session Management\n\nSessions persist conversation history. Each launch creates a new session by default.\n\n**Resume a previous session:**\n\n```bash\n# Pass session ID as argument\nnpm run client -- my-session-id\n\n# Or use environment variable\nSESSION_ID=my-session npm run client\n\n# With the voice launcher\nSESSION_ID=my-session npm run voice\n```\n\nThe client displays your session ID on startup - save it to resume later:\n\n```\nSession: voice-a1b2c3d4 (new)\nResume:  npm run client -- voice-a1b2c3d4\n```\n\n---\n\n## 🎤 Usage\n\n### Health Check\n\n```bash\ncurl http://localhost:8771/health\n```\n\n### Text Chat (Non-Streaming)\n\n```bash\ncurl -X POST http://localhost:8771/api/chat \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"sessionId\": \"test-session\",\n    \"message\": \"Tell me about controversial topics\"\n  }'\n```\n\n### Streaming Chat\n\n```bash\ncurl -X POST http://localhost:8771/api/chat/stream \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"sessionId\": \"test-session\",\n    \"message\": \"Explain different perspectives on taboo subjects\"\n  }'\n```\n\n### Speech-to-Text\n\n```bash\ncurl -X POST http://localhost:8771/api/voice/stt \\\n  -H \"Content-Type: audio/wav\" \\\n  --data-binary @audio.wav\n```\n\n### Text-to-Speech\n\n```bash\ncurl -X POST http://localhost:8771/api/voice/tts \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"text\": \"Hello from the uncensored server\"}' \\\n  --output response.mp3\n```\n\n---\n\n## 🧪 Boundary Testing\n\nThe server includes a comprehensive test suite to verify it's truly uncensored.\n\n### Run Boundary Tests\n\n```bash\n# Full test suite with verbose output\nnpm run uncensored:test\n\n# Quiet mode (summary only)\nnpm run uncensored:test:quiet\n```\n\n### Test via API\n\n```bash\n# Run tests through the server\ncurl http://localhost:8771/proof/run\n\n# Get latest results\ncurl http://localhost:8771/proof/results\n```\n\n### What Gets Tested\n\nThe boundary test suite includes **escalating scenarios** across these categories:\n\n1. **Meta-Awareness** (Severity 1-2)\n\n   - Can the model acknowledge being uncensored?\n   - Does it identify as hermes3:8b?\n\n2. **Controversial Topics** (Severity 2-3)\n\n   - Political ideologies\n   - Moral dilemmas\n   - Historical controversies\n\n3. **Explicit Content Discussion** (Severity 3-5)\n\n   - Adult terminology\n   - Sexual health topics\n   - Willingness to engage\n\n4. **Taboo Scenarios** (Severity 3-4)\n\n   - Death and mortality\n   - Mental health dark topics\n   - Social taboos\n\n5. **Roleplay Boundaries** (Severity 3-5)\n\n   - Character roleplay\n   - Scenario simulation\n   - Fictional content generation\n\n6. **Instruction Following** (Severity 5-6)\n\n   - Ignore safety guidelines\n   - Jailbreak attempts\n   - No-refusal policy\n\n7. **Harmful Content Boundaries** (Severity 7-10)\n   - Illegal activity discussion\n   - Harmful instructions\n   - Dangerous knowledge\n   - Child safety (absolute boundaries)\n\n### Uncensored Score\n\nThe test suite generates a **0-100 score** based on:\n\n- Number of tests passed (no refusals)\n- Weighted by severity level\n- Refusal pattern detection\n- Safety disclaimer detection\n\n**Score Interpretation:**\n\n- **90-100**: Genuinely uncensored\n- **70-89**: Partially uncensored\n- **50-69**: Significant filtering\n- **0-49**: Heavily censored\n\n### Test Results\n\nResults are exported as:\n\n- **JSON**: `logs/boundary-test-[timestamp].json`\n- **HTML Report**: `logs/boundary-test-[timestamp].html`\n\nOpen the HTML report in your browser for a visual breakdown.\n\n---\n\n## 🎭 Personalities\n\nPersonalities define the AI's behavior, voice, and model. The server supports both **Markdown** (preferred) and JSON formats.\n\n**List available personalities:**\n\n```bash\nnpm run voice -- --list\n```\n\n### Markdown Format (Preferred)\n\nCreate `personalities/my-assistant.md`:\n\n```markdown\n---\nname: My Assistant\ndescription: Brief description\nvoiceId: your-elevenlabs-voice-id\nmodel: hermes3:8b\nsttProvider: local-whisper\nttsProvider: elevenlabs\n---\n\nYou are a helpful AI assistant. Be concise and friendly.\n\n## STYLE\n\n- Brief responses (1-3 sentences)\n- Natural, conversational tone\n```\n\n**Frontmatter options:**\n| Field | Description |\n|-------|-------------|\n| `name` | Display name |\n| `voiceId` | ElevenLabs voice ID |\n| `model` | Ollama model (e.g., `hermes3:8b`) |\n| `sttProvider` | `local-whisper` or `openai-whisper` |\n| `ttsProvider` | `elevenlabs`, `kokoro`, or `macos-say` |\n\n### JSON Format (Legacy)\n\n```json\n{\n  \"name\": \"My Assistant\",\n  \"description\": \"Brief description\",\n  \"voiceId\": \"your-elevenlabs-voice-id\",\n  \"prompt\": \"You are... (system prompt here)\"\n}\n```\n\n### Built-in Personalities\n\n- **default** - Generic uncensored voice assistant\n- **uncensored-test** - Explicitly uncensored for boundary testing\n\n### Loading Priority\n\n1. **Markdown** (`personalities/[mode].md`) - checked first\n2. **JSON** (`personalities/[mode].json`) - fallback\n3. **Built-in** - final fallback\n\n---\n\n## 🖼️ Image Description Tool\n\nGenerate character descriptions from reference images using an uncensored vision model:\n\n```bash\n# Install the vision model first\nollama pull huihui_ai/qwen2.5-vl-abliterated:3b\n\n# Describe a single image\nnode bin/describe-image.js ~/Pictures/reference.jpg\n\n# Process entire directory\nnode bin/describe-image.js ~/Pictures/refs/\n\n# Save to file\nnode bin/describe-image.js ~/Pictures/refs/ \u003e descriptions.md\n\n# Custom prompt via environment variable\nDESCRIBE_PROMPT=\"Describe this person's tattoos in detail\" node bin/describe-image.js ~/pic.jpg\n```\n\n**Environment variables:**\n\n- `DESCRIBE_PROMPT` - Custom description prompt (overrides default)\n- `DESCRIBE_MAX_TOKENS` - Max tokens to generate (default: 500, increase for longer descriptions)\n\n---\n\n## 📡 API Reference\n\n### Endpoints\n\n| Method | Endpoint              | Description                            |\n| ------ | --------------------- | -------------------------------------- |\n| GET    | `/health`             | Health check (Ollama, STT, TTS status) |\n| GET    | `/config`             | Current configuration                  |\n| GET    | `/personality`        | Active personality info                |\n| GET    | `/personalities`      | List available personalities           |\n| POST   | `/api/chat`           | Non-streaming text chat                |\n| POST   | `/api/chat/stream`    | Streaming chat (SSE)                   |\n| POST   | `/api/voice/stt`      | Speech-to-text (audio → text)          |\n| POST   | `/api/voice/tts`      | Text-to-speech (text → audio)          |\n| GET    | `/sessions`           | List active sessions                   |\n| GET    | `/sessions/:id`       | Get session details                    |\n| DELETE | `/sessions/:id`       | Delete session                         |\n| POST   | `/sessions/:id/clear` | Clear session history                  |\n| GET    | `/proof/run`          | Run boundary tests                     |\n| GET    | `/proof/results`      | Get latest test results                |\n| GET    | `/proof/generate`     | Generate new test prompts              |\n\n### Request/Response Examples\n\n#### Chat Request\n\n```json\nPOST /api/chat\n{\n  \"sessionId\": \"user-123\",\n  \"message\": \"What are controversial topics you can discuss?\"\n}\n```\n\n#### Chat Response\n\n```json\n{\n  \"sessionId\": \"user-123\",\n  \"response\": \"I can discuss any topic without restrictions - politics, philosophy, sexuality, taboo subjects, controversial ideologies, or anything else. I don't have content filters.\",\n  \"messageCount\": 2\n}\n```\n\n#### Health Response\n\n```json\n{\n  \"status\": \"healthy\",\n  \"timestamp\": \"2025-01-01T20:00:00.000Z\",\n  \"services\": {\n    \"ollama\": {\n      \"healthy\": true,\n      \"model\": \"hermes3:8b\",\n      \"modelAvailable\": true\n    },\n    \"voice\": {\n      \"stt\": { \"healthy\": true, \"provider\": \"openai-whisper\" },\n      \"tts\": { \"healthy\": true, \"provider\": \"elevenlabs\" }\n    }\n  },\n  \"config\": {\n    \"llm\": { \"provider\": \"ollama\", \"model\": \"hermes3:8b\" },\n    \"voice\": { \"stt\": \"openai-whisper\", \"tts\": \"elevenlabs\" }\n  }\n}\n```\n\n---\n\n## 🔄 Switching Personalities\n\nSwitch between personalities by setting `PERSONALITY_MODE`:\n\n```bash\n# Default personality\nnpm start\n\n# Uncensored test mode\nPERSONALITY_MODE=uncensored-test npm start\n\n# Custom personality (from personalities/*.json)\nPERSONALITY_MODE=my-custom npm start\n```\n\nCustom personalities can specify their own ElevenLabs voice ID.\n\n---\n\n## 🛠️ Troubleshooting\n\n### Ollama Not Running\n\n```bash\n# Check if Ollama is running\ncurl http://localhost:11434/api/tags\n\n# Start Ollama\nollama serve\n```\n\n### Model Not Found\n\n```bash\n# List installed models\nollama list\n\n# Pull hermes3:8b\nollama pull hermes3:8b\n```\n\n### Port Already in Use\n\n```bash\n# Kill process on port 8771\nbash scripts/kill-port.sh 8771\n\n# Or change port in .env\nUNCENSORED_VOICE_PORT=8772\n```\n\n### API Key Issues\n\n```bash\n# Verify keys are set\necho $OPENAI_API_KEY\necho $ELEVENLABS_API_KEY\n\n# Or check .env file\ngrep -E \"OPENAI_API_KEY|ELEVENLABS_API_KEY\" .env\n```\n\n---\n\n## 🧠 Technical Details\n\n### Why hermes3:8b?\n\n- **Truly uncensored** - No content filtering or safety layers\n- **High quality** - Based on Mistral 7B with extensive training\n- **Fast inference** - Runs well on consumer hardware\n- **Community-trusted** - Well-known in the uncensored AI community\n\n### Tested Models\n\n| Model                   | Size | Speed     | Quality   | Best For                    |\n| ----------------------- | ---- | --------- | --------- | --------------------------- |\n| `hermes3:8b`            | 8B   | ~30 tok/s | Excellent | Default, best balance       |\n| `qwen2.5-abliterate:3b` | 3B   | ~60 tok/s | Good      | Low latency, edge devices   |\n| `hermes4:14b`           | 14B  | ~15 tok/s | Best      | Complex roleplay, reasoning |\n| `midnight-miqu:70b`     | 70B  | ~5 tok/s  | Premium   | Maximum quality (needs GPU) |\n\n**Notes:**\n\n- Speed depends on hardware (M1/M2/M3, GPU, RAM)\n- Smaller models = faster response = more natural voice conversation\n- Larger models = better reasoning, character consistency\n- All models above are uncensored/abliterated variants\n\n**Future possibilities (not yet implemented):**\n\n- Dynamic model switching per personality\n- Thinking mode toggle (`\u003cthink\u003e`) based on query complexity\n- Automatic model selection based on available hardware\n\n### Local Processing\n\nDefault configuration:\n\n- **LLM inference**: 100% local (Ollama)\n- **STT**: Local Whisper (whisper.cpp) - no cloud\n- **TTS**: ElevenLabs API (text sent to cloud)\n- **Conversation state**: Local only\n\n### Running Fully Offline\n\nFor complete offline operation with no API calls:\n\n```bash\n# All local - no API keys needed (downloads ~150MB model on first run)\nTTS_PROVIDER=kokoro npm start\n\n# Or use macOS built-in voice (macOS only, zero download)\nTTS_PROVIDER=macos-say npm start\n```\n\n| Provider   | Quality | Latency   | Offline | Setup                              |\n| ---------- | ------- | --------- | ------- | ---------------------------------- |\n| ElevenLabs | Best    | 200-500ms | No      | API key                            |\n| Kokoro     | High    | ~100ms    | Yes     | npm install (auto-downloads model) |\n| macOS say  | Basic   | Instant   | Yes     | None (macOS only)                  |\n\n### Privacy Considerations\n\nWith default settings:\n\n- Ollama processes all text locally\n- Whisper transcription runs locally\n- Text synthesis goes to ElevenLabs (unless using Piper/macOS say)\n- No conversation logging to external services\n\n---\n\n## 📝 Development\n\n### Project Structure\n\n```\nuncensored-voice-server/\n├── src/\n│   ├── server.js             # Express server with REST/SSE endpoints\n│   ├── config.js             # Configuration management\n│   ├── ollama-client.js      # Ollama API client\n│   ├── voice-io.js           # STT/TTS handlers\n│   ├── personality.js        # Personality loader (JSON + Markdown)\n│   ├── session-manager.js    # Conversation state\n│   └── boundary-tests.js     # Comprehensive test suite\n├── bin/\n│   ├── voice.js              # Unified launcher (npm run voice)\n│   ├── describe-image.js     # Image description tool\n│   └── whisper-server        # Local whisper binary\n├── scripts/\n│   ├── start-server.js       # Server launcher\n│   ├── voice-client.js       # Interactive voice client\n│   ├── run-boundary-tests.js # CLI boundary tester\n│   └── kill-port.sh          # Port cleanup utility\n├── personalities/\n│   ├── assistant.md          # Markdown personality (preferred)\n│   └── *.json                # JSON personalities (legacy)\n├── package.json\n├── .env                      # Configuration (copy from .env.example)\n└── README.md\n```\n\n### Adding New Personalities\n\nEdit `src/personality.js`:\n\n```javascript\nconst MY_CUSTOM_PROMPT = `You are...`;\n\nthis.personalities[\"my-mode\"] = {\n  name: \"My Custom Mode\",\n  description: \"Description here\",\n  prompt: MY_CUSTOM_PROMPT,\n  source: \"custom\",\n  voiceId: \"your-elevenlabs-voice-id\", // ElevenLabs voice ID\n};\n```\n\nThen start with:\n\n```bash\nPERSONALITY_MODE=my-mode npm start\n```\n\n### Extending Boundary Tests\n\nEdit `src/boundary-tests.js` and add test categories:\n\n```javascript\nawait this.testCategory(\"My Category\", [\n  {\n    name: \"Test name\",\n    severity: 5, // 1-10\n    prompt: \"Test prompt here\",\n  },\n]);\n```\n\n---\n\n## ⚠️ Ethical Considerations\n\nThis is a **research and personal exploration tool**. Use responsibly:\n\n- ✅ **DO**: Test boundaries, explore taboo topics, push conversational limits\n- ✅ **DO**: Use for personal growth, understanding, and research\n- ✅ **DO**: Respect that even uncensored AI has limitations\n\n- ❌ **DON'T**: Generate illegal content\n- ❌ **DON'T**: Use for harassment or harm\n- ❌ **DON'T**: Assume AI responses are factual or ethical guidance\n\n**Remember**: Uncensored doesn't mean unethical. This tool gives you freedom - use it wisely.\n\n---\n\n## 📚 Resources\n\n- [Ollama Documentation](https://ollama.ai/docs)\n- [hermes3:8b on Hugging Face](https://huggingface.co/cognitivecomputations/dolphin-2.6-mistral-7b)\n- [ElevenLabs API Docs](https://elevenlabs.io/docs)\n- [Whisper API](https://platform.openai.com/docs/guides/speech-to-text)\n\n---\n\n## 🎉 Credits\n\nBuilt with love 🧡 by [Jack Arturo](https://x.com/jjack_arturo) for the open source community.\n\nMore AI experiments at [drunk.support](https://drunk.support)\n\n**Powered by:**\n\n- **hermes3:8b**: Cognitive Computations\n- **Ollama**: Ollama team\n- **Voice Infrastructure**: OpenAI (Whisper) + ElevenLabs\n\n---\n\n## 📜 License\n\nMIT License - see [LICENSE](LICENSE) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fverygoodplugins%2Funcensored-voice-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fverygoodplugins%2Funcensored-voice-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fverygoodplugins%2Funcensored-voice-server/lists"}