@mrgoonie/multix 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/README.md +73 -1
- package/dist/cli.js +974 -197
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,25 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.0.7] - 2026-05-05
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- **ElevenLabs provider** — full integration with 13 subcommands:
|
|
12
|
+
- `tts` — text-to-speech (sync audio bytes) with voice settings, language code, seed, context continuity, and `--no-speaker-boost` opt-out.
|
|
13
|
+
- `voices list|get|search|design|create-from-preview|delete` — voice library management and prompt-based voice design.
|
|
14
|
+
- `clone` — instant voice cloning via multipart audio sample upload.
|
|
15
|
+
- `voice-changer` — speech-to-speech voice conversion.
|
|
16
|
+
- `transcribe` — Scribe STT with diarization, audio-event tagging, and `text|json|srt|vtt` output.
|
|
17
|
+
- `sfx` — sound effects generation with prompt influence and looping.
|
|
18
|
+
- `music` — music generation (`music_v1`) from prompt or composition plan.
|
|
19
|
+
- `dub` / `dub-status` — async dubbing with `--wait` / `--download` polling and per-language audio download.
|
|
20
|
+
- `isolate` — voice isolator (background noise removal).
|
|
21
|
+
- `align` — forced alignment (transcript ↔ audio timing).
|
|
22
|
+
- `account` / `models` — usage / subscription tier and model catalog.
|
|
23
|
+
- `ELEVENLABS_RECOMMENDED_VOICES` with 11 verified conversational voice IDs (Alexandra default).
|
|
24
|
+
- TTS models: `eleven_multilingual_v2` (default), `eleven_flash_v2_5`, `eleven_flash_v2`, `eleven_turbo_v2_5`, `eleven_turbo_v2`, `eleven_v3`. STT: `scribe_v1`, `scribe_v1_experimental`. Voice changer: `eleven_multilingual_sts_v2`. Output formats: `mp3_*`, `pcm_*`, `ulaw_8000`.
|
|
25
|
+
- `multix check` and `.env.example` document `ELEVENLABS_API_KEY`.
|
|
26
|
+
|
|
8
27
|
## [0.0.6] - 2026-05-05
|
|
9
28
|
|
|
10
29
|
### Added
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
AI multimodal CLI — generate images/video/speech/music, analyze and transcribe media files, convert documents to Markdown, and optimize media with ffmpeg/ImageMagick.
|
|
4
4
|
|
|
5
|
-
Supports **Gemini** (analyze, transcribe, generate, Veo video, Flash TTS), **MiniMax** (image, video, speech, music), **OpenRouter** (image generation), **Leonardo.Ai** (image, video, upscale),
|
|
5
|
+
Supports **Gemini** (analyze, transcribe, generate, Veo video, Flash TTS), **MiniMax** (image, video, speech, music), **OpenRouter** (image generation), **Leonardo.Ai** (image, video, upscale), **BytePlus** (Seedream image, Seedance video, Hyper3D / Hitem3d 3D), and **ElevenLabs** (TTS, voice cloning, STT, voice changer, SFX, music, dubbing, isolation, alignment).
|
|
6
6
|
|
|
7
7
|
## Install
|
|
8
8
|
|
|
@@ -47,6 +47,7 @@ Set at least one provider key. Add to `.env` in your project root or `~/.multix/
|
|
|
47
47
|
| `LEONARDO_DEFAULT_MODEL` | No | Default Leonardo image model UUID |
|
|
48
48
|
| `LEONARDO_VIDEO_MODEL` | No | Default Leonardo video model (default `MOTION2`) |
|
|
49
49
|
| `BYTEPLUS_API_KEY` | For BytePlus | [BytePlus](https://console.byteplus.com/auth/api-keys) |
|
|
50
|
+
| `ELEVENLABS_API_KEY` | For ElevenLabs | [ElevenLabs](https://elevenlabs.io/app/settings/api-keys) |
|
|
50
51
|
| `ARK_API_KEY` | No | Fallback for `BYTEPLUS_API_KEY` (Volcengine ARK shared name) |
|
|
51
52
|
| `BYTEPLUS_BASE_URL` | No | Override BytePlus base (default `https://ark.ap-southeast.bytepluses.com/api/v3`) |
|
|
52
53
|
| `BYTEPLUS_IMAGE_MODEL` | No | Default Seedream model (default `seedream-4-0-250828`) |
|
|
@@ -251,6 +252,77 @@ multix byteplus status <taskId> [--wait] [--wait-timeout 600000] [--download] [-
|
|
|
251
252
|
- `multix byteplus status <taskId> --download` works for both video (`content.video_url`) and 3D (`content.file_url`) tasks.
|
|
252
253
|
- **Task cancellation is not supported** — there is no verified DELETE endpoint on the ARK API. Submitted tasks must run to completion.
|
|
253
254
|
|
|
255
|
+
### `multix elevenlabs`
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
# Text-to-speech (sync, returns audio bytes)
|
|
259
|
+
multix elevenlabs tts --text "Hello world" [--voice <voiceId>] [--model eleven_multilingual_v2] \
|
|
260
|
+
[--format mp3_44100_128] [--stability 0.5] [--similarity-boost 0.75] [--style 0.0] \
|
|
261
|
+
[--no-speaker-boost] [--language-code en] [--seed <n>] [--output out.mp3] [-v]
|
|
262
|
+
|
|
263
|
+
# Voices: list / get / search shared / design / persist / delete
|
|
264
|
+
multix elevenlabs voices list [--category cloned|generated|premade|professional]
|
|
265
|
+
multix elevenlabs voices get <voiceId>
|
|
266
|
+
multix elevenlabs voices search [--search "calm female"] [--language en] [--gender female] [--age young] [--accent american]
|
|
267
|
+
multix elevenlabs voices design --description "friendly female narrator" [--text "sample text"] [--auto-text]
|
|
268
|
+
multix elevenlabs voices create-from-preview --generated-voice-id <id> --name "My Voice" --description "..."
|
|
269
|
+
multix elevenlabs voices delete <voiceId>
|
|
270
|
+
|
|
271
|
+
# Instant voice cloning (multipart upload of 1-3 minutes of samples)
|
|
272
|
+
multix elevenlabs clone --name "My Voice" --files sample1.wav sample2.wav [--description "..."] [--remove-background-noise]
|
|
273
|
+
|
|
274
|
+
# Speech-to-speech voice changer
|
|
275
|
+
multix elevenlabs voice-changer --input source.mp3 --voice <voiceId> [--model eleven_multilingual_sts_v2] \
|
|
276
|
+
[--format mp3_44100_128] [--remove-background-noise] [--output changed.mp3] [-v]
|
|
277
|
+
|
|
278
|
+
# Speech-to-text (Scribe)
|
|
279
|
+
multix elevenlabs transcribe --input audio.mp3 [--model scribe_v1] [--language en] [--diarize] \
|
|
280
|
+
[--num-speakers 2] [--tag-audio-events] [--timestamps-granularity word] [--format text|json|srt|vtt] [--output out.txt]
|
|
281
|
+
|
|
282
|
+
# Sound effects
|
|
283
|
+
multix elevenlabs sfx --text "car engine starting" [--duration-seconds 5] [--prompt-influence 0.3] [--loop] \
|
|
284
|
+
[--format mp3_44100_128] [--output sfx.mp3]
|
|
285
|
+
|
|
286
|
+
# Music generation
|
|
287
|
+
multix elevenlabs music --prompt "dreamy synthwave loop" [--music-length-ms 30000] [--model music_v1] \
|
|
288
|
+
[--format mp3_44100_128] [--output song.mp3]
|
|
289
|
+
# OR with a structured composition plan
|
|
290
|
+
multix elevenlabs music --plan ./plan.json [--output song.mp3]
|
|
291
|
+
|
|
292
|
+
# Dubbing (async — submit and poll, then optionally --download)
|
|
293
|
+
multix elevenlabs dub --input video.mp4 --target-lang es [--source-lang en] [--num-speakers 2] \
|
|
294
|
+
[--watermark] [--start-time 0] [--end-time 60] [--highest-resolution] [--name "My Dub"] \
|
|
295
|
+
[--async] [--wait] [--download] [--poll-interval 10] [--wait-timeout 1800000] [--output dubbed.mp4]
|
|
296
|
+
multix elevenlabs dub-status <dubbingId> [--download <lang>] [--output dubbed.mp4]
|
|
297
|
+
|
|
298
|
+
# Voice isolator (strip background noise)
|
|
299
|
+
multix elevenlabs isolate --input noisy.mp3 [--output clean.mp3]
|
|
300
|
+
|
|
301
|
+
# Forced alignment (transcript ↔ audio timing)
|
|
302
|
+
multix elevenlabs align --input audio.mp3 --text "transcript here" [--output alignment.json]
|
|
303
|
+
# Or read transcript from file:
|
|
304
|
+
multix elevenlabs align --input audio.mp3 --text-file transcript.txt
|
|
305
|
+
|
|
306
|
+
# Account info / available models
|
|
307
|
+
multix elevenlabs account
|
|
308
|
+
multix elevenlabs models
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
**ElevenLabs models:**
|
|
312
|
+
- TTS: `eleven_multilingual_v2` (default), `eleven_flash_v2_5`, `eleven_flash_v2`, `eleven_turbo_v2_5`, `eleven_turbo_v2`, `eleven_v3`
|
|
313
|
+
- STT: `scribe_v1`, `scribe_v1_experimental`
|
|
314
|
+
- Voice changer: `eleven_multilingual_sts_v2` (default)
|
|
315
|
+
- Music: `music_v1`
|
|
316
|
+
|
|
317
|
+
**Recommended voices** (verified from ElevenLabs conversational voice design guide):
|
|
318
|
+
`Alexandra` `kdmDKE6EkgrWrrykO9Qt` (default), `Archer` `L0Dsvb3SLTyegXwtm47J`, `Jessica Anne Bogart` `g6xIsTj2HwM6VR4iXFCw`, `Hope` `OYTbf65OHHFELVut7v2H`, `Eryn` `dj3G1R1ilKoFKhBnWOzG`, `Stuart` `HDA9tsk27wYi3uq0fPcK`, `Mark` `1SM7GgM6IMuvQlz2BwM3`, `Angela` `PT4nqlKZfc06VW1BuClj`, `Finn` `vBKc2FfBKJfcZNyEt1n6`, `Cassidy` `56AoDkrOh6qfVPDXZ7Pt`, `Grandpa Spuds Oxley` `NOpBlnGInO9m6vDvFkFC`. Use `multix elevenlabs voices list` for the full library.
|
|
319
|
+
|
|
320
|
+
**Notes:**
|
|
321
|
+
- Auth header is `xi-api-key`; base URL is `https://api.elevenlabs.io/v1`.
|
|
322
|
+
- Most generation endpoints (TTS, SFX, Music, Voice Changer, Isolation) return audio bytes synchronously.
|
|
323
|
+
- Dubbing is async: submit → poll → download per-language tracks.
|
|
324
|
+
- Output format strings combine codec + sample rate + bitrate, e.g. `mp3_44100_128`, `pcm_24000`, `ulaw_8000`.
|
|
325
|
+
|
|
254
326
|
### `multix media`
|
|
255
327
|
|
|
256
328
|
Requires `ffmpeg` (video/audio) and `magick` (images) on PATH.
|