forked from len0rd/rockbox
		
	git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14252 a1c6a512-1295-4272-9138-f99709370657
		
			
				
	
	
		
			68 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Text
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Text
		
	
	
		
			Executable file
		
	
	
	
	
| '***************************************************************************
 | |
| '             __________               __   ___.
 | |
| '   Open      \______   \ ____   ____ |  | _\_ |__   _______  ___
 | |
| '   Source     |       _//  _ \_/ ___\|  |/ /| __ \ /  _ \  \/  /
 | |
| '   Jukebox    |    |   (  <_> )  \___|    < | \_\ (  <_> > <  <
 | |
| '   Firmware   |____|_  /\____/ \___  >__|_ \|___  /\____/__/\_ \
 | |
| '                     \/            \/     \/    \/            \/
 | |
| ' $Id: sapi5_voice.vbs$
 | |
| '
 | |
| ' Copyright (C) 2007 Steve Bavin, Jens Arnold, Mesar Hameed
 | |
| '
 | |
| ' All files in this archive are subject to the GNU General Public License.
 | |
| ' See the file COPYING in the source tree root for full license agreement.
 | |
| '
 | |
| ' This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
 | |
| ' KIND, either express or implied.
 | |
| '
 | |
| '***************************************************************************
 | |
| ' Purpose: Make a voice clip file for the given text
 | |
| ' Parameters: $0 - text to convert
 | |
| '             $1 - file to write spoken text into (WAV format)
 | |
| 
 | |
| 
 | |
| 
 | |
| 'To be done:
 | |
| ' - Somehow, persist oSpVoice across multiple clips to increase speed
 | |
| ' - Allow user to override voice, speed and/or format (currently uses Control Panel defaults for voice/speed)
 | |
| ' - Voice specific replacements/corrections for pronounciation (this should be at a higher level really)
 | |
| 
 | |
| Const SSFMCreateForWrite = 3
 | |
| 
 | |
| Const SPSF_8kHz16BitMono = 6
 | |
| Const SPSF_11kHz16BitMono = 10
 | |
| Const SPSF_12kHz16BitMono = 14
 | |
| Const SPSF_16kHz16BitMono = 18
 | |
| Const SPSF_22kHz16BitMono = 22
 | |
| Const SPSF_24kHz16BitMono = 26
 | |
| Const SPSF_32kHz16BitMono = 30
 | |
| Const SPSF_44kHz16BitMono = 34
 | |
| Const SPSF_48kHz16BitMono = 38
 | |
| 
 | |
| Dim oSpVoice, oSpFS, nAudioFormat, sText, sOutputFile
 | |
| 
 | |
| sText = Replace(WScript.Arguments(0), "\", "")
 | |
| sOutputFile = WScript.Arguments(1)
 | |
| nAudioFormat = SPSF_22kHz16BitMono 'Audio format to use, recommended settings:
 | |
|                                    '- for AT&T natural voices, use SPSF_32kHz16BitMono
 | |
|                                    '- for MS voices, use SPSF_22kHz16BitMono
 | |
| 
 | |
| Set oSpVoice = CreateObject("SAPI.SpVoice")
 | |
| If Err.Number <> 0 Then
 | |
|     WScript.Echo "Error - could not get SpVoice object. " & _
 | |
|                  "SAPI 5 not installed?"
 | |
|     Err.Clear
 | |
|     WScript.Quit 1
 | |
| End If
 | |
| 
 | |
| Set oSpFS = CreateObject("SAPI.SpFileStream")
 | |
| oSpFS.Format.Type = nAudioFormat
 | |
| oSpFS.Open sOutputFile, SSFMCreateForWrite, False
 | |
| Set oSpVoice.AudioOutputStream = oSpFS
 | |
| oSpVoice.Speak sText
 | |
| oSpFS.Close
 | |
| 
 | |
| Set oSpFS = Nothing
 | |
| Set oSpVoice = Nothing
 | |
| Set oArgs = Nothing
 | |
| WScript.Quit 0
 |