nc://soniox

v0.1.0Pinned
ThomSharktools/nodecode-soniox: Soniox voice: text becomes a spoken audio file, a recording becomes text, as tools a model calls - a rewrite of XimilalaXiang/hermes-soniox (MIT), credited to XimilalaXiang9609149· 9 Nov1 commit
test1 fileaudio.lisp7.0 KBcell.lisp8.2 KBpackage.lisp6.3 KBspeech.lisp10.5 KBwire.lisp10.8 KB

nodecode-soniox

Soniox voice: text becomes a spoken audio file, a recording becomes text. A Nodecode rewrite of XimilalaXiang/hermes-soniox by XimilalaXiang.

Two tools, soniox_speak and soniox_transcribe, plus /soniox to say one line out loud from the prompt. The plugin gave Hermes a Soniox text-to-speech provider and a Soniox speech-to-text provider; Nodecode has no provider slot for a voice, so this cell reaches the same two documented Soniox APIs directly: speak a narration into a file it can hand you, or read a voice note, a meeting or a video's audio back as words.

Get it

Tell the agent "add the soniox cell", or run:

nodecode add nc://soniox

Set it up

Create an API key at https://console.soniox.com/, then either paste it into the cell's api_key in /settings, or export it:

export SONIOX_API_KEY=...

The section (soniox), as ~/.nodecode/config.jsonc carries it:

Setting Default What it does
api_key (unset) the key, written inline as a secret
api_key_env SONIOX_API_KEY the variable read when api_key is empty
model tts-rt-v2 the text-to-speech model a speak call uses
voice Adrian the voice a speak call uses when it names none; any voice id the account's catalogue serves works
language en the language speaking uses when a call names none
audio_format mp3 mp3, wav, flac, opus or ogg
stt_model stt-async-v6 the asynchronous model a transcription uses
stt_language (unset) the language recordings are mostly in, or several comma separated; unset lets Soniox detect it
poll_timeout_seconds 300 how long a transcription may take before the call gives up
api_base_url https://api.soniox.com/v1 Soniox's API root; change it only for a proxy
tts_url https://tts-rt.soniox.com/tts Soniox's text-to-speech endpoint; change it only for a proxy
directory soniox/ where spoken files are kept, under the home

Without a key the tools still answer, with the sentence that says which setting to fill, and nothing is billed. Both roots must be https (or http on localhost), so the key never travels in clear.

Use it

Ask for speech: "read this summary out loud", "say 'we are live' in French with Camille". Ask for words: "transcribe this voice note", "what does this interview say". The model calls:

Tool What it does
soniox_speak(text, voice?, language?, format?, speed?) one utterance, saved as an audio file in the soniox folder; the answer names the path
soniox_transcribe(file, model?, language?, prompt?) one audio file on this machine, as the words it says

/soniox <text> says one line out loud from the prompt; /soniox alone says what the cell is set to, and lists the voices it ships as a starting point. (help :soniox) is the manual topic the model reads.

What leaves the machine is the text to speak, or the recording's audio, sent to Soniox with the key -- nothing else from the conversation. A transcription uploads the recording, polls until Soniox finishes, reads the words and then deletes the transcription and the uploaded file from Soniox. Soniox's own retention and billing terms apply to anything it receives, and every call is billed to the account the key belongs to.

Speeds run 0.7 to 1.3; a pace outside that is clamped, as the plugin clamped it. A text of more than 5000 characters is refused before the call, with the sentence that says how to split it.

Credit

This cell is a rewrite of XimilalaXiang's hermes-soniox; see NOTICE. MIT, see LICENSE.

Add nc://soniox

  1. 1

    Install Nodecode

    Once per machine.

    $ curl -fsSL https://nodecode.ai/install.sh | sh
  2. 2

    Add the cell

    Pinned at 9609149.

    $ nodecode add nc://soniox

    Or tell the agent add the soniox cell.