Another codec which might be interesting to try but is considerably more complicated is AMR, from GSM: https://en.wikipedia.org/wiki/Adaptive_Multi-Rate_audio_code...
Assuming SAM is a faithful port of the original, it converts text into phonemes according to a bunch of pronunciation rules.
Then I thought you made a lecture on MCUs where the device was available for purchase generally for $0.10.
Then I thought with an MCU valued at $0.10 you generated speech
English... sigh
Although I guess that can also be confused with micro Couloumbs
The presentation of this part seems extremely padded out to me, ironically enough.
The bigger ones have PHYs for USB HS, USB-C (5Gbps) and 10/100M Ethernet integrated (!). And their development environment (Mounriver Studio) isn't too bad - I didn't had the immediate urge to port everything to CMake/VSCode.
But they need some kind of pin planning tool. It's awful to use the datasheet and find the correct pin functionalities and their mutual exclusions... STM32 mastered this with their STM32CubeIDE tool: select a feature (like USART1) and the right pins light up - alternate pins are easy to locate.
They also should clean up their license mess on OpenWCH (their GitHub page). Lots (all?) of their HALs are Opensource - but the right version with right SPDX tags are often a bit hidden.
If you don't like it.. well it's a free world and every engineer has it own preferences :-)
I wish that existed for more weird binary formats. Altium have 365 but you have to have signins to use it, and they cost named-user seats.
(Unfortunately, it does not zoom on the cursor but on the center of the screen).
rec -t lpc10 speech.lpc
and then speaking into your microphone for ten or fifteen seconds before you ^C it. Then play it back with play speech.lpc
It will sound very robotic but pretty comprehensible, at least with an adult male voice in English, and it preserves a lot of the prosody and enunciation that is so hard to get out of speech-synthesis packages.12KiB of data at 300 bytes per second would be 41 seconds of recorded speech.
Decoding the LPC10 data on the CH32V003 might be tricky. On amd64, running `make CFLAGS=-Os` followed by `ld -r -o tmp.o *.o` inside sox-14.4.2+git20190427/lpc10 yields a tmp.o with 25243 bytes of text (including .rodata, etc.) and 356 bytes of data. I'm not optimistic that RISC-V would compress that to fit inside the CH32's flash. And I find the code in that directory inscrutable; it's Fortran that's been compiled to C.
Still, it seems plausible that you could massage the LPC10 data into a format that something like Talkie would understand.
docdeek•2h ago
pdntspa•1h ago