{"id":50290465,"url":"https://github.com/iamnortey/ninolex-docs","last_synced_at":"2026-05-28T05:34:50.466Z","repository":{"id":344241314,"uuid":"1131842302","full_name":"iamnortey/ninolex-docs","owner":"iamnortey","description":"Pronunciation infrastructure for AI voice applications — architecture and documentation","archived":false,"fork":false,"pushed_at":"2026-05-25T13:11:13.000Z","size":5,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-28T05:34:49.401Z","etag":null,"topics":["api-design","architecture","documentation","nlp","pronunciation","python","tts","typescript","voice","voice-ai"],"latest_commit_sha":null,"homepage":"https://github.com/iamnortey/portfolio/blob/main/case-studies/ninolex.md","language":null,"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/iamnortey.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":"SECURITY.md","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-10T19:56:16.000Z","updated_at":"2026-03-13T18:48:01.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/iamnortey/ninolex-docs","commit_stats":null,"previous_names":["iamnortey/ninolex-docs"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/iamnortey/ninolex-docs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamnortey%2Fninolex-docs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamnortey%2Fninolex-docs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamnortey%2Fninolex-docs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamnortey%2Fninolex-docs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iamnortey","download_url":"https://codeload.github.com/iamnortey/ninolex-docs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamnortey%2Fninolex-docs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33596316,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["api-design","architecture","documentation","nlp","pronunciation","python","tts","typescript","voice","voice-ai"],"created_at":"2026-05-28T05:34:49.663Z","updated_at":"2026-05-28T05:34:50.459Z","avatar_url":"https://github.com/iamnortey.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ninolex\n\n\u003e Pronunciation infrastructure for AI voice applications.\n\n[![Case Study](https://img.shields.io/badge/case%20study-read-blue)](https://github.com/iamnortey/portfolio/blob/main/case-studies/ninolex.md)\n[![Open Dictionary](https://img.shields.io/badge/open%20source-ninolex--gh-green)](https://github.com/iamnortey/ninolex-gh)\n[![Portfolio](https://img.shields.io/badge/portfolio-iamnortey-green)](https://github.com/iamnortey/portfolio)\n\n---\n\n## What It Does\n\nNinolex provides a cross-platform source of truth for how real-world entities should be pronounced in AI voice applications. TTS engines mispronounce brands, products, and names — Ninolex fixes that.\n\n**Pronunciation Resolution Pipeline:** Text → Normalize → Resolve → Export\n\nEntity registry with IPA phonemes, exportable to ElevenLabs, AWS Polly, and Vapi formats.\n\n---\n\n## The Problem\n\n- TTS engines mispronounce brands: \"BMW\" becomes gibberish\n- Product names are unpronounceable: \"WH-1000XM5\"\n- Domain terminology is wrong: medical, legal, automotive terms\n- Cultural names are consistently butchered\n\n---\n\n## Stack\n\n| Layer | Technology |\n|-------|------------|\n| **Frontend** | Next.js |\n| **Backend** | Next.js API Routes, Modal |\n| **Resolution** | CMUdict, Phonemizer |\n| **Database** | Supabase |\n| **Export** | ElevenLabs, AWS Polly, Vapi |\n\n---\n\n## Key Architecture Patterns\n\n- **Two-tier resolution** — CMUdict primary, Phonemizer fallback\n- **Alphanumeric expansion** — \"WH-1000XM5\" → \"W H one thousand X M five\"\n- **Vertical pack architecture** — domain-specific packs (AutoLex, DineLex)\n- **API-first design** with versioning\n\n---\n\n## API Example\n\n```http\nPOST /api/v1/resolve\nContent-Type: application/json\n\n{\n  \"entities\": [\"BMW X5\", \"WH-1000XM5\"],\n  \"format\": \"elevenlabs\"\n}\n```\n\nResponse includes IPA phonemes and a downloadable dictionary file.\n\n---\n\n## Documentation\n\n| Document | Description |\n|----------|-------------|\n| [Architecture](./ARCHITECTURE.md) | Pipeline design and data flow |\n| [Case Study](https://github.com/iamnortey/portfolio/blob/main/case-studies/ninolex.md) | Full project overview |\n| [Security](./docs/security.md) | API authentication and access |\n\n---\n\n## Open Source Component\n\nThe [ninolex-gh](https://github.com/iamnortey/ninolex-gh) repository contains the open Ghanaian pronunciation dictionary — demonstrating the data format and linguistic approach used in the full platform.\n\n---\n\n## Access\n\nThe core implementation is in a **private repository** to protect intellectual property. This repository contains architecture documentation, API design docs, pipeline diagrams, and integration examples.\n\nFor API access or technical discussions: [LinkedIn](https://linkedin.com/in/inortey/)\n\n---\n\n## Related\n\n- [Ninolex-GH (Open Source)](https://github.com/iamnortey/ninolex-gh) — open Ghanaian pronunciation dictionary\n- [Portfolio](https://github.com/iamnortey/portfolio) — all case studies and architecture samples\n- [Case Study](https://github.com/iamnortey/portfolio/blob/main/case-studies/ninolex.md) — full project deep-dive\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamnortey%2Fninolex-docs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiamnortey%2Fninolex-docs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamnortey%2Fninolex-docs/lists"}