ActVoice
Audio drama studio for humans and AI agents.
ActVoice turns a text project manifest into a rendered audio drama: characters, voices, scenes, dialogue, ambience, sound cues, and a final MP3 artifact.
Screen-reader friendly workflow
No visual timeline required. The core workflow is text-first: create a project, add characters, add scenes, add dialogue lines, add semantic sound cues, then render.
Everything important is available through REST API and MCP tools, so a blind creator can work through a screen reader, terminal, or AI agent.
Quick start for agents
- Register an agent. Call
POST /api/agents/registerand receive an ActVoice API key. - Connect with MCP. Local clients can run
python -m app.mcp_server. Future remote clients will connect tohttps://actvoice.xyz/mcp. - Create a project. Use MCP tool
create_audio_drama_projector REST endpointPOST /api/projects. - Build the script. Add characters, scenes, dialogue lines, and semantic sound cues like
footsteps,brook,birds, orlaptop_close. - Place sounds with timing anchors. Agents can use absolute
start_msor relative anchors such asafter_lineplusline_idandoffset_ms. ActVoice measures rendered lines and writes a timing map; no AI runs inside the core service. - Render. Call
render_final_mixorPOST /api/projects/{project_id}/render. REST rendering is queued and returns a job id; pollGET /api/jobs/{job_id}. - Download artifacts. When the job is done, fetch metadata or files from
/api/projects/{project_id}/artifact,/artifact.mp3,/artifact.wav, or/render-manifest.json.
Copy-ready examples
Each example is a real command or request shape. Replace placeholders such as [API_KEY], [PROJECT_ID], and [JOB_ID] before running.
curl -X POST https://actvoice.xyz/api/agents/register -H 'Content-Type: application/json' -d '{"agent_name":"Hermes","purpose":"audio drama render"}'
curl -X POST https://actvoice.xyz/api/projects -H 'Authorization: Bearer [API_KEY]' -H 'Content-Type: application/json' -d '{"title":"My audio drama","language":"ru"}'
curl -X POST https://actvoice.xyz/api/projects/[PROJECT_ID]/render -H 'Authorization: Bearer [API_KEY]'
curl https://actvoice.xyz/api/jobs/[JOB_ID]
curl -L -o final_mix.mp3 https://actvoice.xyz/api/projects/[PROJECT_ID]/artifact.mp3
ACTVOICE_API_KEY='[API_KEY]' python -m app.mcp_server
Authentication
Write and render actions require a bearer key:
Authorization: Bearer [API_KEY]
For local stdio MCP, the same key can be provided as ACTVOICE_API_KEY. For remote HTTP MCP, the same idea becomes header-based transport authentication.
Voice and rendering modes
edge: current free/default neural voice mode.rhvoice: local/offline fallback if Edge is unavailable or explicitly requested.openai_byo_key: planned user-provided paid provider mode.
Project links
Service endpoints
- Health:
/health - Voices:
/api/voices - OpenAPI schema:
/docs
ActVoice
Студия аудиоспектаклей для людей и AI-агентов.
ActVoice превращает текстовый манифест проекта в готовый аудиоспектакль: персонажи, голоса, сцены, реплики, атмосфера, звуковые события и финальный MP3-файл.
Удобный workflow для скринридера
Визуальная таймлиния не нужна. Основной процесс текстовый: создать проект, добавить персонажей, сцены, реплики, смысловые звуковые события и запустить рендер.
Всё важное доступно через REST API и MCP tools, поэтому незрячий автор может работать через скринридер, терминал или AI-агента.
Быстрый старт для агентов
- Зарегистрируйте агента. Вызовите
POST /api/agents/registerи получите API-ключ ActVoice. - Подключитесь через MCP. Локально можно запустить
python -m app.mcp_server. В будущем remote-клиенты смогут подключаться кhttps://actvoice.xyz/mcp. - Создайте проект. Используйте MCP tool
create_audio_drama_projectили REST endpointPOST /api/projects. - Соберите сценарий. Добавьте персонажей, сцены, реплики и смысловые звуковые события:
footsteps,brook,birds,laptop_close. - Расставьте звуки по времени. Агенты могут использовать точный
start_msили относительные anchors:after_lineплюсline_idиoffset_ms. ActVoice измеряет длительность озвученных реплик и пишет timing map; внутри core-сервиса AI не запускается. - Запустите рендер. Вызовите
render_final_mixилиPOST /api/projects/{project_id}/render. REST-рендер ставится в очередь и возвращает job id; статус проверяется черезGET /api/jobs/{job_id}. - Скачайте артефакты. Когда job завершён, заберите metadata или файлы из
/api/projects/{project_id}/artifact,/artifact.mp3,/artifact.wavили/render-manifest.json.
Готовые примеры для копирования
Каждый пример — настоящая команда или форма запроса. Перед запуском замените placeholders [API_KEY], [PROJECT_ID] и [JOB_ID].
curl -X POST https://actvoice.xyz/api/agents/register -H 'Content-Type: application/json' -d '{"agent_name":"Hermes","purpose":"audio drama render"}'
curl -X POST https://actvoice.xyz/api/projects -H 'Authorization: Bearer [API_KEY]' -H 'Content-Type: application/json' -d '{"title":"Мой аудиоспектакль","language":"ru"}'
curl -X POST https://actvoice.xyz/api/projects/[PROJECT_ID]/render -H 'Authorization: Bearer [API_KEY]'
curl https://actvoice.xyz/api/jobs/[JOB_ID]
curl -L -o final_mix.mp3 https://actvoice.xyz/api/projects/[PROJECT_ID]/artifact.mp3
ACTVOICE_API_KEY='[API_KEY]' python -m app.mcp_server
Аутентификация
Действия записи и рендера требуют bearer key:
Authorization: Bearer [API_KEY]
Для локального stdio MCP тот же ключ можно передать как ACTVOICE_API_KEY. Для remote HTTP MCP используется та же идея, но через header-based transport authentication.
Голоса и режимы рендера
edge: текущий бесплатный/default режим нейронных голосов.rhvoice: локальный/offline fallback, если Edge недоступен или выбран явно.openai_byo_key: планируемый режим платного провайдера с ключом пользователя.
Ссылки проекта
Service endpoints
- Health:
/health - Voices:
/api/voices - OpenAPI schema:
/docs