MS Agent TTS

MS Agentをインストールしておいたら、COMを叩いて、日本語文字列から音声の再生ができる。

で、クラス化しといたら、他のコードから呼べて多少便利。

例えば、「require 'tts'」しといて、何か時間がかかる作業が終った時、「Tts.speak "作業が終了しました"」とかいう風に喋らせることができる。

~/s/a/tts.rb:1:

#!/usr/bin/ruby
# -*- coding: shift_jis -*-
# MS Agent の SAPI(Speech API) を使用したサンプルクラス。
require 'win32ole'
class Tts
  @@tts = WIN32OLE.new('TextToSpeech.TextToSpeech')
  def initialize(cond = /Female/)
    mode_name = (1 .. @@tts.CountEngines).find{|i|cond =~ @@tts.ModeName(i)}
    @@tts.Select(mode_name) if mode_name
  end
  def Tts.speak(s)
    @@tts.Speak(s)
    while @@tts.IsSpeaking != 0 do;end
  end
  def speak(s = "もう、おにーちゃん、妹のおっぱい、触り過ぎ!")
    Tts.speak(s)
  end
end

if $0 == __FILE__
  s = ARGV.size>0 ? ARGV.shift : "お帰りなさいませ、御主人様"
  Tts.speak(s)
end

…ところで今気が付いたのだけど、Microsoftの日本語対応音声合成エンジン↓(MS Agent)、いつの間にかアクセスできなくなってるな。

http://www.microsoft.com/msagent/downloads/user.aspx

あー。場所が変ってるんだな、こっち↓に。Windows7ではデフォルトで入ってるし、サイト整理のついでに場所を移したってこと?

Microsoft Agent home page』
http://www.microsoft.com/PRODUCTS/msagent/main.aspx

しかし日本人のキャラクターボイス、増えてないな。

日本人向けに「アニメ声」とか「妹声」とか「ツンデレ声」とか増やして欲しーんだけどなー。