https://github.com/github0013/google_tts_plugin
this gem overrides `adhearsion#say` and use google tts to speak.
https://github.com/github0013/google_tts_plugin
Last synced: 4 months ago
JSON representation
this gem overrides `adhearsion#say` and use google tts to speak.
- Host: GitHub
- URL: https://github.com/github0013/google_tts_plugin
- Owner: github0013
- Created: 2012-11-27T03:15:50.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2015-12-02T07:55:41.000Z (over 10 years ago)
- Last Synced: 2025-07-14T04:39:43.238Z (12 months ago)
- Language: Ruby
- Size: 22.5 KB
- Stars: 4
- Watchers: 4
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
GoogleTTSPlugin
==========================
this gem overrides `adhearsion#say` and uses google tts to speak( [try](http://translate.google.com/translate_tts?tl=en&q=this%20is%20a%20sample%20tts%20audio%20from%20google%20tts.) ).
it can
- speak in many languages
- change speech speed
- change speech volume
- seed sln files from CSV
``` ruby
# languages
{"Afrikaans"=>"af", "Albanian"=>"sq", "Amharic"=>"am", "Arabic"=>"ar", "Armenian"=>"hy", "Azerbaijani"=>"az", "Basque"=>"eu", "Belarusian"=>"be", "Bengali"=>"bn", "Bihari"=>"bh", "Bosnian"=>"bs", "Breton"=>"br", "Bulgarian"=>"bg", "Cambodian"=>"km", "Catalan"=>"ca", "Chinese (Simplified)"=>"zh-CN", "Chinese (Traditional)"=>"zh-TW", "Corsican"=>"co", "Croatian"=>"hr", "Czech"=>"cs", "Danish"=>"da", "Dutch"=>"nl", "English"=>"en", "Esperanto"=>"eo", "Estonian"=>"et", "Faroese"=>"fo", "Filipino"=>"tl", "Finnish"=>"fi", "French"=>"fr", "Frisian"=>"fy", "Galician"=>"gl", "Georgian"=>"ka", "German"=>"de", "Greek"=>"el", "Guarani"=>"gn", "Gujarati"=>"gu", "Hacker"=>"xx-hacker", "Hausa"=>"ha", "Hebrew"=>"iw", "Hindi"=>"hi", "Hungarian"=>"hu", "Icelandic"=>"is", "Indonesian"=>"id", "Interlingua"=>"ia", "Irish"=>"ga", "Italian"=>"it", "Japanese"=>"ja", "Javanese"=>"jw", "Kannada"=>"kn", "Kazakh"=>"kk", "Kinyarwanda"=>"rw", "Kirundi"=>"rn", "Klingon"=>"xx-klingon", "Korean"=>"ko", "Kurdish"=>"ku", "Kyrgyz"=>"ky", "Laothian"=>"lo", "Latin"=>"la", "Latvian"=>"lv", "Lingala"=>"ln", "Lithuanian"=>"lt", "Macedonian"=>"mk", "Malagasy"=>"mg", "Malay"=>"ms", "Malayalam"=>"ml", "Maltese"=>"mt", "Maori"=>"mi", "Marathi"=>"mr", "Moldavian"=>"mo", "Mongolian"=>"mn", "Montenegrin"=>"sr-ME", "Nepali"=>"ne", "Norwegian"=>"no", "Norwegian (Nynorsk)"=>"nn", "Occitan"=>"oc", "Oriya"=>"or", "Oromo"=>"om", "Pashto"=>"ps", "Persian"=>"fa", "Pirate"=>"xx-pirate", "Polish"=>"pl", "Portuguese (Brazil)"=>"pt-BR", "Portuguese (Portugal)"=>"pt-PT", "Portuguese"=>"pt", "Punjabi"=>"pa", "Quechua"=>"qu", "Romanian"=>"ro", "Romansh"=>"rm", "Russian"=>"ru", "Scots Gaelic"=>"gd", "Serbian"=>"sr", "Serbo-Croatian"=>"sh", "Sesotho"=>"st", "Shona"=>"sn", "Sindhi"=>"sd", "Sinhalese"=>"si", "Slovak"=>"sk", "Slovenian"=>"sl", "Somali"=>"so", "Spanish"=>"es", "Sundanese"=>"su", "Swahili"=>"sw", "Swedish"=>"sv", "Tajik"=>"tg", "Tamil"=>"ta", "Tatar"=>"tt", "Telugu"=>"te", "Thai"=>"th", "Tigrinya"=>"ti", "Tonga"=>"to", "Turkish"=>"tr", "Turkmen"=>"tk", "Twi"=>"tw", "Uighur"=>"ug", "Ukrainian"=>"uk", "Urdu"=>"ur", "Uzbek"=>"uz", "Vietnamese"=>"vi", "Welsh"=>"cy", "Xhosa"=>"xh", "Yiddish"=>"yi", "Yoruba"=>"yo", "Zulu"=>"zu"}
```
## Installation
Make sure you have `sox` installed (+ `mpg123` on centos - CentOS Prerequisite http://ofps.oreilly.com/titles/9780596517342/asterisk-Initial.html)
# centos
sudo yum install mpg123 # CentOS Prerequisite http://ofps.oreilly.com/titles/9780596517342/asterisk-Initial.html
sudo yum install sox
# ubuntu
sudo apt-get install sox libsox-fmt-all
# osx
brew install sox
Add this line to your adhearsion application's Gemfile:
gem 'google_tts_plugin', git: "https://github.com/github0013/google_tts_plugin.git"
And then execute:
bundle
## Usage
``` ruby
# config/adhearsion.rb
Adhearsion.config.google_tts_plugin do |config|
config.save_to = "/where/you/wanna/save/speech/files" # make sure you have permissions write
config.language = "ja"
config.speed = "120%"
config.volume = "130%"
#config.google_tts = "change here if google changes tts uri"
config.mpg123_path = "/usr/bin/mpg123" # change it to your path or nil if not installed (but required on centos)
config.sox_path = "/usr/bin/sox" # change it to your path
end
# your CallController
class SimonGame < Adhearsion::CallController
# make sure you include this line
include GoogleTTSPlugin::ControllerMethods
def run
say "世界の皆さんこんにちわ" # "ja" set at config
say "hello world!", language: "en" # can change at runtime
say "hello world!", language: "en", speed: "200%", volume: "200%"
end
end
```
# tasks
`rake google_tts_plugin:seed[csv_file]`
Downloads .mp3 from google, convert and save in .sln.
Since **say** in your **CallController** will do this at run time, its initial call can delay and you can prevent it with this task.
``` csv
text,language,speed,volume
hello world,,,
世界の皆さんこんにちわ,ja,50,80
```
*`text` is required
Plugin default values will be applied for blanks.
## Contributing
1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request