class AudioBookCreator::Speaker
Attributes
book_def[RW]
speaker_def[RW]
Public Class Methods
new(speaker_def, book_def)
click to toggle source
# File lib/audio_book_creator/speaker.rb, line 6 def initialize(speaker_def, book_def) @speaker_def = speaker_def @book_def = book_def end
Public Instance Methods
chapter_sound_filename(chapter)
click to toggle source
# File lib/audio_book_creator/speaker.rb, line 31 def chapter_sound_filename(chapter) "#{base_dir}/#{chapter.filename}.m4a" end
chapter_text_filename(chapter)
click to toggle source
# File lib/audio_book_creator/speaker.rb, line 27 def chapter_text_filename(chapter) "#{base_dir}/#{chapter.filename}.txt" end
make_directory_structure()
click to toggle source
# File lib/audio_book_creator/speaker.rb, line 11 def make_directory_structure FileUtils.mkdir(base_dir) unless File.exist?(base_dir) end
say(chapter)
click to toggle source
# File lib/audio_book_creator/speaker.rb, line 15 def say(chapter) raise "Empty Chapter" if chapter.empty? text_filename = chapter_text_filename(chapter) sound_filename = chapter_sound_filename(chapter) AudioBookCreator.optionally_write(text_filename, force) { chapter.to_s } AudioBookCreator.optionally_run(sound_filename, force) do ["say", params: params(text_filename, sound_filename)] end SpokenChapter.new(chapter.title, sound_filename) end
Private Instance Methods
base_dir()
click to toggle source
# File lib/audio_book_creator/speaker.rb, line 37 def base_dir book_def.base_dir end
force()
click to toggle source
# File lib/audio_book_creator/speaker.rb, line 41 def force speaker_def.regen_audio end
params(text_filename, sound_filename)
click to toggle source
# File lib/audio_book_creator/speaker.rb, line 45 def params(text_filename, sound_filename) { "-v" => speaker_def.voice, "-r" => speaker_def.rate, "-f" => text_filename, "-o" => sound_filename, } end