1 '***************************************************************************
3 ' Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 ' Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 ' Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 ' Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
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)
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?"
58 Set oSpFS
= CreateObject("SAPI.SpFileStream")
59 oSpFS
.Format
.Type = nAudioFormat
60 oSpFS
.Open sOutputFile
, SSFMCreateForWrite
, False
61 Set oSpVoice
.AudioOutputStream
= oSpFS
66 Set oSpVoice
= Nothing