a modern command-line interface (CLI) for SoftVoice's Software Automatic Mouth (SAM) based off modern-sam
s-macke's port is a CLI program, but it retains the original limitations the software had in the 80s (as its reverse engineered), so I packaged modern-sam (a fork of discordier's JS rewrite) into a CLI with pkg
there are currently 2 versions of this program. there's the pkg powered standalone executable, and the webpack powered bundle file. both versions are in the releases.
the bundle is all the node dependencies of SAM into one singular JS file
pros:
- OS independent
- smaller filesize
cons:
- requires node.js to run
the exe contains a copy of node.js which seamlessly runs the JS for you
pros:
- doesn't require any prior setup, just plug and play
cons:
- bigger filesize cause it bundles all of nodejs in the exe
- OS dependent
sam --wav sam.wav --throat 110 --pitch 160 --moderncmu hello world!
speaks hello world!
with modern cmu pronunciation and voice values (these ones are nicknamed "Elf") to sam.wav
--wav
: the name of the wav file to output to.- any text not part of an argument will be joined and interpreted and spoken.
--phonetic
: bypass SAM's english parser and specify sounds through SAM's phonetic alphabet--singmode
: SAM will speak at one pitch. good for singing.--moderncmu
: uses CMUDict and to-words for better pronunciation and stress patterns.--debug
: print info about what SAM is doing (warning: it's a lot)--pitch
,--speed
,--mouth
,--throat
: arguments that control SAM's voice.- can be from 0-255
- pitch and speed are documented here
- example values documented here
- the values labeled "SAM" are the defaults.
-
pkg, which is used to make the node program a cli program, is a little big and Perhaps bloated, also it comes with some overhead. if you want to make heavy use of this program, consider using modern-sam in node directly
-
minimist is used to naively pass all arguments straight to modern-sam so invalid arguments are ignored. the only validation done is ensuring required arguments are defined.