{"id":15406769,"url":"https://github.com/dannyben/voicemaker","last_synced_at":"2025-04-18T02:51:12.581Z","repository":{"id":41989405,"uuid":"482252468","full_name":"DannyBen/voicemaker","owner":"DannyBen","description":"Create Text to Speech files with the Voicemaker API from Ruby or the command line","archived":false,"fork":false,"pushed_at":"2023-03-27T11:28:21.000Z","size":75,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-29T06:11:40.213Z","etag":null,"topics":["api","cli","command-line","ruby","text-to-speech","tts","tts-api"],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/DannyBen.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-16T12:48:15.000Z","updated_at":"2023-01-16T23:57:39.000Z","dependencies_parsed_at":"2024-10-19T12:43:31.357Z","dependency_job_id":null,"html_url":"https://github.com/DannyBen/voicemaker","commit_stats":{"total_commits":24,"total_committers":1,"mean_commits":24.0,"dds":0.0,"last_synced_commit":"90b38e2a970b0a4f97428605a33ea8866992d2a8"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DannyBen%2Fvoicemaker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DannyBen%2Fvoicemaker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DannyBen%2Fvoicemaker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DannyBen%2Fvoicemaker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DannyBen","download_url":"https://codeload.github.com/DannyBen/voicemaker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249416763,"owners_count":21268128,"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":["api","cli","command-line","ruby","text-to-speech","tts","tts-api"],"created_at":"2024-10-01T16:25:18.313Z","updated_at":"2025-04-18T02:51:12.560Z","avatar_url":"https://github.com/DannyBen.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Voicemaker API Library and Command Line\n\n[![Gem Version](https://badge.fury.io/rb/voicemaker.svg)](https://badge.fury.io/rb/voicemaker)\n[![Build Status](https://github.com/DannyBen/voicemaker/workflows/Test/badge.svg)](https://github.com/DannyBen/voicemaker/actions?query=workflow%3ATest)\n[![Maintainability](https://api.codeclimate.com/v1/badges/b1977ee0d60affeba3d4/maintainability)](https://codeclimate.com/github/DannyBen/voicemaker/maintainability)\n\n---\n\nThis gem provides both a Ruby library and a command line interface for the \n[Voicemaker][voicemaker] Text to Speech service.\n\nThis gem is not affiliated with Voicemaker.\n\n---\n\n\n## Install\n\n```\n$ gem install voicemaker\n```\n\n## Features\n\n- Use as a Ruby library or from the command line\n- Show and search for available voices\n- Convert text to MP3 or WAV from a simple configuration file\n- Batch-convert multiple files\n\n\n## Usage\n\n### Initialization\n\nFirst, require and initialize with your Voicemaker API key:\n\n```ruby\nrequire 'voicemaker'\nVoicemaker::API.key = 'your api key'\n```\n\n### Voices list\n\nGet the full voices list:\n\n```ruby\nvoices = Voicemaker::Voices.new\nresult = voices.all\n```\n\nSearch the voices list for one or more strings (AND search):\n\n```ruby\nresult = voices.search \"en-us\", \"female\"\n```\n\n### Audio generation and download\n\nMake an API call and get the URL to the audio file in return:\n\n```ruby\ntts = Voicemaker::TTS.new voice: 'Jony', text: 'Hello world'\nurl = tts.url\ntts.save \"output.mp3\"\n```\n\nor with the full list of available parameters:\n\n```ruby\nparams = {\n  voice: \"Jony\",\n  output_format: \"mp3\",\n  sample_rate: 48000,\n  effect: \"default\",\n  master_speed: 0,\n  master_volume: 0,\n  master_pitch: 0,\n  text: \"Hello world\"\n}\n\ntts = Voicemaker::TTS.new params\nurl = tts.url\n```\n\nAs the `voice` parameter, you may use either the voice ID (`ai3-Jony`) or the \nvoice web name (`Jony`). Just note that some voices have the same webname (for\nexample, Emily), so in these cases it is best to use the full voice ID.\n\n## Command line interface\n\n\u003c!-- USAGE --\u003e\n### `$ voicemaker `\n\n\n```\nVoicemaker Text-to-Speech\n\nCommands:\n  voices   Get a list of available voices\n  tts      Generate audio files from text\n  new      Create a new config file or a project directory\n  project  Create multiple audio files\n\nAPI Documentation: https://developer.voicemaker.in/apidocs\n\n```\n\n### `$ voicemaker voices --help`\n\n\n```\nGet a list of available voices\n\nUsage:\n  voicemaker voices [--save PATH --count --compact] [SEARCH...]\n  voicemaker voices (-h|--help)\n\nOptions:\n  -s --save PATH\n    Save output to output YAML file\n\n  -t --compact\n    Show each voice in a single line\n\n  -c --count\n    Add number of voices to the result\n\n  -h --help\n    Show this help\n\nParameters:\n  SEARCH\n    Provide one or more text strings to search for (case insensitive AND search)\n\nEnvironment Variables:\n  VOICEMAKER_API_KEY\n    Your Voicemaker API key [required]\n\n  VOICEMAKER_API_HOST\n    Override the API host URL\n\n  VOICEMAKER_CACHE_DIR\n    API cache diredctory [default: cache]\n\n  VOICEMAKER_CACHE_LIFE\n    API cache life. These formats are supported:\n    off - No cache\n    20s - 20 seconds\n    10m - 10 minutes\n    10h - 10 hours\n    10d - 10 days\n\nExamples:\n  voicemaker voices en-us\n  voicemaker voices --save out.yml en-us\n  voicemaker voices en-us female\n  voicemaker voices en-us --compact\n\n```\n\n### `$ voicemaker tts --help`\n\n\n```\nGenerate audio files from text\n\nUsage:\n  voicemaker tts [options]\n  voicemaker tts (-h|--help)\n\nOptions:\n  -v --voice NAME\n    Voice ID or Webname\n\n  -t --text TEXT\n    Text to say\n\n  -f --file PATH\n    Load text from file\n\n  -c --config PATH\n    Use a YAML configuration file\n\n  -s --save PATH\n    Save audio file.\n    If not provided, a URL to the audio file will be printed instead.\n    When used with the --config option, omit the file extension, as it will be\n    determined based on the config file.\n\n  -d --debug\n    Show API parameters\n\n  -h --help\n    Show this help\n\nEnvironment Variables:\n  VOICEMAKER_API_KEY\n    Your Voicemaker API key [required]\n\n  VOICEMAKER_API_HOST\n    Override the API host URL\n\n  VOICEMAKER_CACHE_DIR\n    API cache diredctory [default: cache]\n\n  VOICEMAKER_CACHE_LIFE\n    API cache life. These formats are supported:\n    off - No cache\n    20s - 20 seconds\n    10m - 10 minutes\n    10h - 10 hours\n    10d - 10 days\n\nExamples:\n  voicemaker tts --voice ai3-Jony --text \"Hello world\" --save out.mp3\n  voicemaker tts -v ai3-Jony --file hello.txt --save out.mp3\n  voicemaker tts --config english-female.yml -f text.txt -s outfile\n\n```\n\n### `$ voicemaker new --help`\n\n\n```\nCreate a new config file or a project directory\n\nUsage:\n  voicemaker new config PATH\n  voicemaker new project DIR\n  voicemaker new (-h|--help)\n\nCommands:\n  config\n    Create a config file to be used with the 'voicemaker tts' command\n\n  project\n    Generate a project directory to be used with the 'voicemaker project'\n    command\n\nOptions:\n  -h --help\n    Show this help\n\nParameters:\n  PATH\n    Path to use for creating the config file\n\n  DIR\n    Directory name for creating the project structure\n\nExamples:\n  voicemaker new config test.yml\n  voicemaker new project sample-project\n\n```\n\n### `$ voicemaker project --help`\n\n\n```\nCreate multiple audio files\n\nUsage:\n  voicemaker project PATH [--debug]\n  voicemaker project (-h|--help)\n\nOptions:\n  --debug\n    Show API parameters\n\n  -h --help\n    Show this help\n\nParameters:\n  PATH\n    Path to the project directory\n\nEnvironment Variables:\n  VOICEMAKER_API_KEY\n    Your Voicemaker API key [required]\n\n  VOICEMAKER_API_HOST\n    Override the API host URL\n\n  VOICEMAKER_CACHE_DIR\n    API cache diredctory [default: cache]\n\n  VOICEMAKER_CACHE_LIFE\n    API cache life. These formats are supported:\n    off - No cache\n    20s - 20 seconds\n    10m - 10 minutes\n    10h - 10 hours\n    10d - 10 days\n\nExamples:\n  voicemaker project sample-project\n\n```\n\n\u003c!-- USAGE --\u003e\n\n\n## Contributing / Support\n\nIf you experience any issue, have a question or a suggestion, or if you wish\nto contribute, feel free to [open an issue][issues].\n\n\n\n[voicemaker]: https://voicemaker.in/\n[issues]: https://github.com/DannyBen/voicemaker/issues\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdannyben%2Fvoicemaker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdannyben%2Fvoicemaker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdannyben%2Fvoicemaker/lists"}