From: Li Chen Date: 2008-10-13T09:12:26+09:00 Subject: need help with code translation from VB Hello, I copy the following scripts from http://msdn.microsoft.com/en-us/library/ms717065(VS.85).aspx Can anyone kindly translate them into Ruby scripts ? Thank you very much, Li ############################### Speak to a wav file in automation The following example is written in Visual Basic. It has the same functionality as the above in C++. After the creation of an SpFileStream object, a default format, SAFT22kHz16BitMono, is assigned to the object so that user does not need to explicitly assign a wav format to it unless a specific wav format is needed. In this example, ISpeechFileStream.Open creates a wav file, ttstemp.wav, and binds the FileStream to the file. The third parameter of ISpeechFileStream.Open is the Boolean, DoEvents. The default of this parameter is set to False. However, the user should always set it to True to display SAPI events while playing back the wav file. If the parameter is set to False, no engine events will be stored in the file, resulting in that no engine events will be fired during the wav file play back. Dim FileName As String Dim FileStream As New SpFileStream Dim Voice As SpVoice 'Create a SAPI voice Set Voice = New SpVoice 'The output audio data will be saved to ttstemp.wav file FileName = "c:\ttstemp.wav" 'Create a file; set DoEvents=True so TTS events will be saved to the file FileStream.Open FileName, SSFMCreateForWrite, True 'Set the output to the FileStream Set Voice.AudioOutputStream = FileStream 'Speak the text Voice.Speak "hello world" 'Close the Stream FileStream.Close 'Release the objects Set FileStream = Nothing Set Voice = Nothing ############################ Speak a Text File in Automation The following code illustrates how to speak a text file in a specific voice in Visual Basic. This example assumes a text file (ttstemp.txt) containing the text to be spoken already exists. ISpeechVoice.SpeakStream is used here to speak an SpFileStream that has been bound to the file. Dim FileName As String Dim FileStream As New SpFileStream Dim Voice As SpVoice 'Create SAPI voice Set Voice = New SpVoice 'Assume that ttstemp.txt exists FileName = "c:\ttstemp.txt" 'Open the text file FileStream.Open FileName, SSFMOpenForRead, True 'Select Microsoft Sam voice Set Voice.voice = voice.GetVoices("Name=Microsoft Sam", "Language=409").Item(0) 'Speak the file stream Voice.SpeakStream FileStream 'Close the Stream FileStream.Close 'Release the objects Set FileStream = Nothing Set Voice = Nothing -- Posted via http://www.ruby-forum.com/.