Skip to content

Instantly share code, notes, and snippets.

@844196
Created March 13, 2016 13:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 844196/1a878032d4f9428a47d3 to your computer and use it in GitHub Desktop.
Save 844196/1a878032d4f9428a47d3 to your computer and use it in GitHub Desktop.
require 'open_jtalk'
require 'tmpdir'
require 'readline'
class Talk
def start
tmpdir = Dir.mktmpdir('syaberu.rb')
while string = Readline.readline('> ', true)
say(string, tmpdir)
end
ensure
FileUtils.remove_entry_secure(tmpdir)
end
private
def say(string, working_dir)
make_voicefile(string, working_dir)
system('play', '-q', "#{working_dir}/output.wav")
end
def make_voicefile(string, output_dir)
OpenJtalk.load(OpenJtalk::Config::Mei::LOW) do |openjtalk|
header, data = openjtalk.synthesis(openjtalk.normalize_text(string))
OpenJtalk::WaveFileWriter.save("#{output_dir}/output.wav", header, data)
end
end
end
Talk.new.start
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment