Kaiwa Vox
かいわ · Japanese speech chip
Requirements
- A browser with Web Serial and Web MIDI support (Chrome or Edge).
- Kraftor board running Kaiwa firmware with an ATP3011R4-PU AquesTalk pico LSI.
- USB connection to the computer.
After serial connect, the GUI requests !INFO?. The board replies with model, chip ID, RAM/FRAM layout, and firmware version — shown as FW v… in the header.
Text format
The AquesTalk Pico speaks Japanese, but its input is AquesTalk ASCII phonetic notation — the same romanization used by earlier Kaiwa firmware. It does not accept UTF-8 kanji, hiragana, or katakana; only half-width ASCII romaji and the symbols below.
A phrase may contain at most 127 ASCII bytes. The final carriage-return byte sent to the chip occupies the 128th byte allowed by its protocol. Every utterance must end with a sentence delimiter (usually .).
Building a sentence
Write Japanese readings in romaji, then add prosody marks. One accent phrase may contain at most one ' (or none). Put ' immediately after the mora where the pitch falls (high → low).
| Symbol | Role |
|---|---|
| reading letters | Romaji syllables (ka, shi, kyo, n, …) |
' | Accent nucleus — pitch drop after that mora |
- | Long vowel (hold the previous vowel) |
/ | Accent-phrase break, no pause |
+ | Softer phrase join (secondary accent), no pause |
; | Phrase break with a slight lift into the next phrase, no pause |
| space | Breath / phrase boundary with pause |
, | Shorter pause than a space |
. | End of sentence (with pause) |
? | End of sentence, question intonation |
Examples:
konichiwa. oha'yo-. ha'shi. yorosi'idesuka?
Longer example using -, /, and ' — the Heart Sutra title (Maka Hannya Haramita Shingyo):
maka-/hannya-haramita-/si'n-gyo-.
Here - lengthens vowels, / splits accent phrases, ' marks the pitch drop in si'n, and . ends the sentence.
Vowel elongation counts toward the 127-byte speech limit. The GUI shows the length after adding vowel dashes and the maximum Vowels setting for each phrase. If the result is too long, reduce Vowels to the suggested value or split the text into shorter valid phrases in separate slots. Formatting FRAM cannot increase this limit.
For example, kanji-zaibo-sa-gyo-jin/hannya-ha-ra-mi-ta-ji-/sho-kengo-onkaiku-do-/issaiku-yaku. is 81 bytes with 29 lowercase vowels. Vowels 1 produces 110 bytes; Vowels 2 produces 139 bytes and cannot play. The maximum for that phrase is 1.
Save stores the original, unexpanded phrase. Play uses the saved slot; unsaved edits are marked as drafts. Before Speak or Play, the GUI sends the dial settings to the board. An over-limit request is blocked with a specific warning; the Vowels setting and phrase are never silently changed.
Full Heart Sutra as twelve phrases (each under 127 bytes before elongation). Check each phrase’s Vowels limit before playback. Paste into a RAM/FRAM bulk-fill box, one line per slot:
maka-/hannya-haramita-/si'n-gyo-. kanji-zaibo-sa-gyo-jin/hannya-ha-ra-mi-ta-ji-/sho-kengo-onkaiku-do-/issaiku-yaku. sha-ri-si-/sikifu-i-ku-/ku-fu-i-siki/sikisokuze-ku-/ku-sokuze-siki/jyu-so-gyo-shikiyaku/bu-nyo-ze-. sha-ri-si-ze-/sho-ho-ku-so-/fu-sho-fu-metu/fu-ku-fu-jyo-/fu-zo-fu-gen. ze-ko-ku-chu-/mu-siki/mu-jyu-so-gyo-shiki/mu-genni-bi-zessinni-/mu-sikisho-ko-mi-sokuho-/mu-genkainaisi-/mu-i-sikikai. mu-mu-myo-yaku/mu-mu-myo-jinnaisi-/mu-ro-si-yaku/mu-ro-si-jin/mu-ku-shu-metudo-/mu-ti-yaku/mu-toku. i-mu-sho-tokuko-/bo-daisatta-e-/hannya-ha-ra-mi-ta-ko-. sinmu-ke-ge-/mu-ke-ge-ko-/mu-u-ku-fu-/onri-issai/tendo-mu-so-/ku-gyo-ne-han/sanze-sho-butue-/hannya-ha-ra-mi-ta-ko-. tokua-nokuta-ra-/sanmyakusanbo-daiko-ti-/hannya-ha-ra-mi-ta-. ze-daijinshu-/ze-daimyo-shu-/ze-mu-jyo-shu-/ze-mu-to-do-shu-/no-jo-issaiku-/sinjitufu-ko-. ko-setuhannya-ha-ra-mi-ta-shu-/sokusesshu-wa'tu. gya-te-/gya-te-/ha-ra-gya-te-/haraso-gya-te-/bo-ji-sowaka-/hannya-sin-gyo-.
Tips:
- Prefer lowercase. Firmware vowel elongation (CC 3 /
!VOICE4th arg) only inserts extra-after lowercasea e i o u. - Without
', the accent control has little to work on; use a marked phrase such asoha'yo-.when testing accent strength. - Do not start an accent phrase with
-. - For the full reading-symbol table and tags (numbers, counters), see the ATP3011R4-PU AquesTalk pico LSI datasheet “音声記号列” section: atp3011_datasheet.pdf.
Serial speech — the “what”
- Open
index.html. - Click
Select portand choose the Kraftor USB serial device. - Confirm the readout shows the Kaiwa model and chip ID when reported.
- Type phonetic text and click
Speak(or press Enter).
Plain serial lines are spoken immediately at 115200 baud. Before Speak, the GUI also sends !VOICE so speed, pitch, accent, and vowel elongation match the dials.
Workflow: serial carries the phrase content; MIDI shapes the voice and triggers stored slots.
MIDI — the “how” and “when”
- Click
Connect MIDIand allow access if prompted. - Select the MIDI output and channel that match the board DIP switches.
- Move the voice dials, or play notes to trigger stored RAM/FRAM slots.
| MIDI input | Result |
|---|---|
| Notes 28–47 | Play RAM slots 0–19 |
| Notes 48–127 | Play FRAM slots 0–79 |
| CC 1 | Speed (maps to 50–300) |
| Pitch bend | Pitch register (bend up = higher voice) |
| CC 2 | Accent (0–255) |
| CC 3 | Vowel elongation (0–6 - after each aeiou) |
FRAM slots 80–99 stay editable over serial but have no MIDI note. If the chip is busy, the firmware replies !ERR busy; use !STOP to interrupt.
Identify Serial & Identify MIDI
When several Kraftor boards are connected, Chrome does not reliably pair a Web Serial port with a Web MIDI output. Use the identify buttons to hear which physical board each connection reaches.
- Identify Serial — speaks
si-riaru.over the open serial port. - Identify MIDI — needs serial and MIDI. Writes
mi-di.into temporary RAM slot 0 over serial, then sends MIDI note 28 on the selected channel so that slot plays.
RAM clears at boot, so the MIDI identify phrase lasts only for the current session.
Voice controls
Dials show AquesTalk parameters. Turning Pitch up raises the voice; the numeric readout still shows the chip register (lower register = higher voice). Pure MIDI pitch-bend already follows musical direction.
| GUI control | Range | MIDI | Serial |
|---|---|---|---|
| Speed | 50–300 | CC 1 | !VOICE speed pitch accent vowels |
| Pitch | 0–254 | Pitch bend | |
| Accent | 0–255 | CC 2 | |
| Vowels | 0–6 | CC 3 |
Defaults match firmware: speed 80, pitch 64, accent 100, vowels 0.
Presets: Default, Fast, Slow, High, Low, Drawl. Random invents a new voice; Reset to default restores the firmware defaults.
MIDI channel DIP switches
Switches are read at startup. Move a switch toward its ON marking to enable it. DIP1 = 8, DIP2 = 4, DIP3 = 2, DIP4 = 1. Set the channel to match the GUI, then reset or power-cycle the board. All OFF selects Omni (every channel).
| Mode | DIP1 (8) | DIP2 (4) | DIP3 (2) | DIP4 (1) |
|---|---|---|---|---|
| Omni | OFF | OFF | OFF | OFF |
| Channel 1 | OFF | OFF | OFF | ON |
| Channel 2 | OFF | OFF | ON | OFF |
| Channel 3 | OFF | OFF | ON | ON |
| Channel 4 | OFF | ON | OFF | OFF |
| Channel 5 | OFF | ON | OFF | ON |
| Channel 6 | OFF | ON | ON | OFF |
| Channel 7 | OFF | ON | ON | ON |
| Channel 8 | ON | OFF | OFF | OFF |
| Channel 9 | ON | OFF | OFF | ON |
| Channel 10 | ON | OFF | ON | OFF |
| Channel 11 | ON | OFF | ON | ON |
| Channel 12 | ON | ON | OFF | OFF |
| Channel 13 | ON | ON | OFF | ON |
| Channel 14 | ON | ON | ON | OFF |
| Channel 15 | ON | ON | ON | ON |
RAM and FRAM sentences
On connect, the GUI learns the bank layout from !INFO?.
- RAM — 20 volatile slots. Cleared on reset / power-off. MIDI notes 28–47.
- FRAM — up to 100 persistent slots when the RC256 is present. MIDI notes 48–127 cover slots 0–79; slots 80–99 are serial/GUI only.
Use Reload from board, Save all changed, per-slot Play, and bulk paste fill. Phrase length is capped at 127 bytes for AquesTalk even if an older SAM bank used longer text.
Format FRAM when changing firmware
Kaiwa firmware 1.0.2 and newer preserve unrecognized FRAM data at startup. A detected chip with an unrecognized or unreadable bank shows format required; slot editing and playback stay disabled.
Back up existing data using its original firmware first. Then open FRAM Sentences → Format FRAM… and confirm. This permanently erases the entire FRAM, including VAX/SAM sentences and settings and unsaved FRAM edits in the GUI. RAM sentences and voice settings are kept.
Keep the board powered and connected while the firmware clears and verifies the chip. The GUI then checks readiness and reloads 100 empty slots. If it cannot confirm success, reconnect to check the bank before retrying. The button requires Kaiwa firmware 1.0.2 or newer.
SAM shares Kaiwa’s storage layout, but SAM text may need to be rewritten as AquesTalk phonetics. VAX uses a different bank format and cannot be read by Kaiwa.
Terminal users can explicitly erase and initialize FRAM with !FORMAT F KAIWA. Success replies !OK FORMAT F. !INFO? reports FRAMREADY=0 or FRAMREADY=1; unready slot commands return !ERR format-required.
Useful serial commands
!INFO? !VOICE? !VOICE 80 64 100 !VOICE 80 64 100 2 !STOP !SET R 0 konichiwa. !PLAY R 0 !DUMP R !SET F 0 ohayo-. !PLAY F 0 !DUMP F
!VOICE arguments: speed (50–300), pitch (0–254), accent (0–255), optional vowel elongation (0–6). Omit the fourth value to leave elongation unchanged.
Skins
The skin menu only changes the look. The choice is remembered in the browser.
- Washi
- Sumi
- Matcha
- Sakura
- Torii