{"id":21831390,"url":"https://github.com/nodef/extra-tts","last_synced_at":"2026-05-11T03:33:39.482Z","repository":{"id":55634024,"uuid":"165367601","full_name":"nodef/extra-tts","owner":"nodef","description":"Generate speech audio from super long text through machine.","archived":false,"fork":false,"pushed_at":"2023-07-21T11:58:34.000Z","size":141,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-01T05:48:48.729Z","etag":null,"topics":["audio","cli","command","console","extra","ffmpeg","long","machine","provider","shell","speech","text","tts"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/extra-tts","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nodef.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-01-12T09:01:45.000Z","updated_at":"2023-12-04T07:27:31.000Z","dependencies_parsed_at":"2023-02-09T19:16:08.337Z","dependency_job_id":null,"html_url":"https://github.com/nodef/extra-tts","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nodef%2Fextra-tts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nodef%2Fextra-tts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nodef%2Fextra-tts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nodef%2Fextra-tts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nodef","download_url":"https://codeload.github.com/nodef/extra-tts/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244803608,"owners_count":20512943,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","cli","command","console","extra","ffmpeg","long","machine","provider","shell","speech","text","tts"],"created_at":"2024-11-27T19:10:09.133Z","updated_at":"2026-05-11T03:33:39.477Z","avatar_url":"https://github.com/nodef.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"Generate speech audio from super long text through machine.\n\u003e Do you want to:\n\u003e - Share your ideas anonymously on YouTube?\n\u003e - Pretend on phone that you are not a kid (Home Alone)?\n\u003e - Learn good english pronunciation for a speech?\n\u003e - Make your computer read out your school notes?\n\u003e - Experiment with various voices from around the globe?\n\u003e - Or, [Upload Wikipedia TTS videos on YouTube]?\n\nSample: [\"I want to order a stuffed crust pizza\"](https://clyp.it/kje2yfdk).\n\n\u003cbr\u003e\n\u003cbr\u003e\n\n\n## Setup\n\n1. Run `npm install -g extra-tts` in **console**.\n2. To install this as a package use `npm install extra-tts`.\n3. Check setup for [Google TTS] and [Amazon TTS] separately.\n\n\u003cbr\u003e\n\u003cbr\u003e\n\n\n## Console\n\n```bash\ntts \"I want to order a stuffed crust pizza\"\n# out.mp3 created (yay!)\n\ntts -t speech.txt -o speech.mp3\n# speech.mp3 created from text in speech.txt\n\ntts \"Hello 911, my husband is in danger!\" -vg female\n# out.mp3 created with female voice\n\necho \"Dead man walking.\" | tts -p amazon -vn Matthew --log\n# out.mp3 created with different male voice through Aamzon TTS (log enabled)\n```\n\u003e Available [Google TTS voices]?\u003cbr\u003e\n\u003e Available [Amazon TTS voices]?\n\n\n### Reference\n\n```bash\ntts [options] \u003ctext\u003e\n# text: input text\n\n# Options:\n# --help:        show this help\n# -l, --log:     enable log\n# -o, --output:  set output audio file (out.mp3)\n# -t, --text:    set input text file\n# -r, --retries: set speech synthesis retries (8)\n# -a, --acodec:  set acodec (copy)\n# -ae, --audio_encoding:  set audio encoding (MP3)\n# -af, --audio_frequency: set audio frequency/sample rate\n# -lc, --language_code:   set language code (en-US)\n# -vn, --voice_name:      set voice name\n# -vg, --voice_gender:    set voice gender (neutral)\n# -vp, --voice_pitch:     set voice pitch change (0.0)\n# -vr, --voice_rate:      set voice speaking rate (1.0)\n# -vv, --voice_volume:    set voice volume gain in dB (0.0)\n# -qb, --quote_break:        set quoted text break time (250)\n# -qe, --quote_emphasis:     set quoted text emphasis level (moderate)\n# -hb, --heading_break:      set heading text break time (4000)\n# -hd, --heading_difference: set heading text break difference (250)\n# -he, --heading_emphasis:   set heading text emphasis level (strong)\n# -eb, --ellipsis_break:     set ellipsis break time (1500)\n# -db, --dash_break:         set dash break time (500)\n# -nb, --newline_break:      set newline break time (1000)\n# -bs, --block_separator:    set block separator (.)\n# -bl, --block_length:       set block length (5000)\n# -c*, --config_*:           set provider config options (see below)\n## (all times are in milliseconds)\n\n# Environment variables:\n$TTS_LOG      # enable log (0)\n$TTS_OUTPUT   # set output audio file (out.mp3)\n$TTS_TEXT     # set input text file\n$TTS_RETRIES  # set speech synthesis retries (8)\n$TTS_ACODEC   # set acodec (copy)\n$TTS_PROVIDER # set provider (google)\n$TTS_AUDIO_ENCODING     # set audio encoding (MP3)\n$TTS_AUDIO_FREQUENCY    # set audio frequency/sample rate\n$TTS_LANGUAGE_CODE      # set language code (en-US)\n$TTS_VOICE_NAME         # set voice name\n$TTS_VOICE_GENDER       # set voice gender (neutral)\n$TTS_VOICE_PITCH        # set voice pitch change (0.0)\n$TTS_VOICE_RATE         # set voice speaking rate (1.0)\n$TTS_VOICE_VOLUME       # set voice volume gain in dB (0.0)\n$TTS_QUOTE_BREAK        # set quoted text break time (250)\n$TTS_QUOTE_EMPHASIS     # set quoted text emphasis level (moderate)\n$TTS_HEADING_BREAK      # set heading text break time (4000)\n$TTS_HEADING_DIFFERENCE # set heading text break difference (250)\n$TTS_HEADING_EMPHASIS   # set heading text emphasis level (strong)\n$TTS_ELLIPSIS_BREAK     # set ellipsis break time (1500)\n$TTS_DASH_BREAK         # set dash break time (500)\n$TTS_NEWLINE_BREAK      # set newline break time (1000)\n$TTS_BLOCK_SEPARATOR    # set block separator (.)\n$TTS_BLOCK_LENGTH       # set block length (5000)\n... # see extra provider config options below\n```\n\u003e See [Extra GCP Config] options.\u003cbr\u003e\n\u003e See [Extra AWS Config] options.\n\n\u003cbr\u003e\n\u003cbr\u003e\n\n\n## Package\n\n```javascript\nconst tts = require('extra-tts');\n\nawait tts('out.mp3', 'I want to order a stuffed crust pizza');\n// out.mp3 created (yay!)\n\nconst fs = require('fs');\nvar speech = fs.readFileSync('speech.txt', 'utf8');\nawait tts('speech.mp3', speech)\n// speech.mp3 created from text in speech.txt\n\nawait tts('out.mp3', 'Hello 911, my husband is in danger!', {\n  voice: {gender: 'FEMALE'}\n});\n// out.mp3 created with female voice\n\nawait tts('out.mp3', 'Dead man walking.', {\n  voice: {name: 'Matthew'}, provider: 'amazon', log: true\n});\n// out.mp3 created with different male voice through Amazon TTS (log enabled)\n```\n\n\n### Reference\n\n```javascript\nconst tts = require('extra-tts');\n\ntts(output, text, options={})\n// output:  output audio file\n// text:    input text\n// options: given below\n// -\u003e Promise \u003ctable of contents\u003e\n\n// Default options:\noptions = {\n  stdio: [0, 1, 2], // set child process stdio\n  log: false,       // enable log\n  retries: 8,       // set speech synthesis retries\n  acodec: 'copy',   // set audio acodec\n  audio: {\n    encoding: 'MP3',     // set audio encoding\n    frequency: 0,        // set audio frequency/sample rate\n  },\n  language: {\n    code: 'en-US'        // set language code\n  },\n  voice: {\n    name: null,          // set voice name\n    gender: 'NEUTRAL'    // set voice SSML gender\n    pitch: 0.0,          // set voice pitch change\n    rate: 1.0,           // set voice speaking rate\n    volume: 0.0,         // set voice volume gain in dB\n  }\n  quote: {\n    break: 250,          // set quoted text break time\n    emphasis: 'moderate' // set quoted text emphasis level\n  },\n  heading: {\n    break: 4000,         // set heading text break time\n    difference: 250,     // set heading text break difference\n    emphasis: 'strong',  // set heading text emphasis level\n  },\n  ellipsis: {\n    break: 1500          // set ellipsis break time\n  },\n  dash: {\n    break: 500           // set dash break time\n  },\n  newline: {\n    break: 1000          // set newline break time\n  },\n  block: {\n    separator: '.'       // set block separator\n    length: 5000,        // set block length\n  },\n  config: null, // set GCP/AWS config\n  params: null  // set synthesize speech parameters \"directly\"\n}\n```\n\u003e See [Extra GCP Config] options.\u003cbr\u003e\n\u003e See [Extra AWS Config] options.\n\n\u003cbr\u003e\n\u003cbr\u003e\n\n\n## Similar\n\nDo you need anything similar?\n- [extra-youtubeuploader] can upload videos with caption to YouTube.\n- [extra-stillvideo] can generate video from audio and image.\n\nSuggestions are welcome. Please [create an issue].\n\n\u003cbr\u003e\n\u003cbr\u003e\n\n\n[![nodef](https://i.imgur.com/LPVfMny.jpg)](https://nodef.github.io)\n\u003e References: [Google TTS], [Amazon TTS].\n\n[Upload Wikipedia TTS videos on YouTube]: https://www.youtube.com/results?search_query=wikipedia+audio+article\n\n[Google TTS]: https://www.npmjs.com/package/extra-googletts\n[Amazon TTS]: https://www.npmjs.com/package/extra-amazontts\n[Google TTS voices]: https://cloud.google.com/text-to-speech/docs/voices\n[Amazon TTS voices]: https://docs.aws.amazon.com/polly/latest/dg/voicelist.html\n[Extra GCP Config]: https://www.npmjs.com/package/extra-gcpconfig\n[Extra AWS Config]: https://www.npmjs.com/package/extra-awsconfig\n\n![](https://ga-beacon.deno.dev/G-RC63DPBH3P:SH3Eq-NoQ9mwgYeHWxu7cw/github.com/nodef/extra-tts)\n\n[extra-stillvideo]: https://www.npmjs.com/package/extra-stillvideo\n[extra-youtubeuploader]: https://www.npmjs.com/package/extra-youtubeuploader\n[create an issue]: https://github.com/nodef/extra-tts/issues\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnodef%2Fextra-tts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnodef%2Fextra-tts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnodef%2Fextra-tts/lists"}