Command-line (gtts-cli)

After installing the package, the gtts-cli tool becomes available:

$ gtts-cli


Read <text> to mp3 format using Google Translate’s Text-to-Speech API (set <text> or –file <file> to - for standard input)

gtts-cli [OPTIONS] <text>


-f, --file <file>

Read from <file> instead of <text>.

-o, --output <file>

Write to <file> instead of stdout.

-s, --slow

Read more slowly.

-l, --lang <lang>

IETF language tag. Language to speak in. List documented tags with –all.



-t, --tld <tld>

Top-level domain for the Google host, i.e<tld>




Disable strict IETF language tag checking. Allow undocumented tags.


Print all documented available IETF language tags and exit.


Show debug information.


Show the version and exit.



Optional argument


List available languages:

$ gtts-cli --all

Read ‘hello’ to hello.mp3:

$ gtts-cli 'hello' --output hello.mp3

Read “c’est la vie” in French to cestlavie.mp3:

$ gtts-cli "c'est la vie" --lang fr --output cestlavie.mp3

Read ‘你好’ to 你好.mp3 (in Mandarin, using

$ gtts-cli '你好' --tld --lang zh-CN --output 你好.mp3

Read ‘slow’ slowly to slow.mp3:

$ gtts-cli 'slow' --slow --output slow.mp3

Read ‘hello’ to stdout:

$ gtts-cli 'hello'

Read stdin to hello.mp3 via <text> or <file>:

$ echo -n 'hello' | gtts-cli - --output hello.mp3
$ echo -n 'hello' | gtts-cli --file - --output hello.mp3

Read ‘no check’ to nocheck.mp3 without language checking:

$ gtts-cli 'no check' --lang zh --nocheck --ouput nocheck.mp3


Using --nocheck can speed up execution. It exists mostly however to force a <lang> language tag that might not be documented but would work with the API, such as for specific regional sub-tags of documented tags (examples for ‘en’: ‘en-gb’, ‘en-au’, etc.).

Playing sound directly

You can pipe the output of gtts-cli into any media player that supports stdin. For example, using the play command from SoX:

$ gtts-cli 'hello' | play -t mp3 -