Make bufadvance rely on bufseek instead of duplicating code
[Rockbox.git] / tools / sapi5_voice.vbs
blobc37836afb4d83fe2dabff6e1a988b5617cc22a50
1 '***************************************************************************
2 ' __________ __ ___.
3 ' Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 ' Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 ' Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 ' Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 ' \/ \/ \/ \/ \/
8 ' $Id: sapi5_voice.vbs$
10 ' Copyright (C) 2007 Steve Bavin, Jens Arnold, Mesar Hameed
12 ' All files in this archive are subject to the GNU General Public License.
13 ' See the file COPYING in the source tree root for full license agreement.
15 ' This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
16 ' KIND, either express or implied.
18 '***************************************************************************
19 ' Purpose: Make a voice clip file for the given text
20 ' Parameters: $0 - text to convert
21 ' $1 - file to write spoken text into (WAV format)
25 'To be done:
26 ' - Somehow, persist oSpVoice across multiple clips to increase speed
27 ' - Allow user to override voice, speed and/or format (currently uses Control Panel defaults for voice/speed)
28 ' - Voice specific replacements/corrections for pronounciation (this should be at a higher level really)
30 Const SSFMCreateForWrite = 3
32 Const SPSF_8kHz16BitMono = 6
33 Const SPSF_11kHz16BitMono = 10
34 Const SPSF_12kHz16BitMono = 14
35 Const SPSF_16kHz16BitMono = 18
36 Const SPSF_22kHz16BitMono = 22
37 Const SPSF_24kHz16BitMono = 26
38 Const SPSF_32kHz16BitMono = 30
39 Const SPSF_44kHz16BitMono = 34
40 Const SPSF_48kHz16BitMono = 38
42 Dim oSpVoice, oSpFS, nAudioFormat, sText, sOutputFile
44 sText = Replace(WScript.Arguments(0), "\", "")
45 sOutputFile = WScript.Arguments(1)
46 nAudioFormat = SPSF_22kHz16BitMono 'Audio format to use, recommended settings:
47 '- for AT&T natural voices, use SPSF_32kHz16BitMono
48 '- for MS voices, use SPSF_22kHz16BitMono
50 Set oSpVoice = CreateObject("SAPI.SpVoice")
51 If Err.Number <> 0 Then
52 WScript.Echo "Error - could not get SpVoice object. " & _
53 "SAPI 5 not installed?"
54 Err.Clear
55 WScript.Quit 1
56 End If
58 Set oSpFS = CreateObject("SAPI.SpFileStream")
59 oSpFS.Format.Type = nAudioFormat
60 oSpFS.Open sOutputFile, SSFMCreateForWrite, False
61 Set oSpVoice.AudioOutputStream = oSpFS
62 oSpVoice.Speak sText
63 oSpFS.Close
65 Set oSpFS = Nothing
66 Set oSpVoice = Nothing
67 Set oArgs = Nothing
68 WScript.Quit 0