Hello,
In message "Re: Problem with win32ole, sapi5"
    on 06/06/13, Masaki Suketa <masaki.suketa / nifty.ne.jp> writes:

> > irb(main):053:0> Win32::SpVoice.new.ole_get_methods
> > => [Status, Voice, AudioOutput, AudioOutputStream, Rate, Volume, 
> > AllowAudioOutpu
> > tFormatChangesOnNextSet, EventInterests, Priority, AlertBoundary, 
> > SynchronousSpe
> > akTimeout]
> > irb(main):054:0> Win32::SpVoice.new.ole_put_methods
> > => [Rate, Volume, AllowAudioOutputFormatChangesOnNextSet, 
> > EventInterests, Priori
> > ty, AlertBoundary, SynchronousSpeakTimeout]
> > irb(main):055:0>
> > 
> > Is this a bug? The following is valid VB source code:
> > 
> > Set V.Voice = V.GetVoices().Item(List1.ListIndex)
> 
> Sorry, this is a bug of Win32OLE.
> But please give me some time to fix it.

I have fixed it in Ruby 1.8.4 latest CVS snapshot.
The following script works fine.

  require 'win32/sapi5'
  v = Win32::SpVoice.new
  v.voice = v.getvoices.item(2)

  Regards,
  Masaki Suketa