diff options
author | Steve Bavin <pondlife@pondlife.me> | 2007-08-09 12:07:42 +0000 |
---|---|---|
committer | Steve Bavin <pondlife@pondlife.me> | 2007-08-09 12:07:42 +0000 |
commit | 6bc7da7c1f686096efe1fdd44c53fff59f60c96f (patch) | |
tree | 2e595baa94d02c22981060acd0c4514fc1d2cd0e /tools/sapi5_voice.vbs | |
parent | c8c80a5391d028e0ee40432568f0a40eb623b249 (diff) | |
download | rockbox-6bc7da7c1f686096efe1fdd44c53fff59f60c96f.tar.gz rockbox-6bc7da7c1f686096efe1fdd44c53fff59f60c96f.zip |
Allow Cygwin users to generate voice files using SAPI 5. Slow, and missing some of the details from the old MakeVoices.vbs method, but better than nothing.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14252 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'tools/sapi5_voice.vbs')
-rwxr-xr-x | tools/sapi5_voice.vbs | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/tools/sapi5_voice.vbs b/tools/sapi5_voice.vbs new file mode 100755 index 0000000000..c37836afb4 --- /dev/null +++ b/tools/sapi5_voice.vbs | |||
@@ -0,0 +1,68 @@ | |||
1 | '*************************************************************************** | ||
2 | ' __________ __ ___. | ||
3 | ' Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | ' Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | ' Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | ' Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | ' \/ \/ \/ \/ \/ | ||
8 | ' $Id: sapi5_voice.vbs$ | ||
9 | ' | ||
10 | ' Copyright (C) 2007 Steve Bavin, Jens Arnold, Mesar Hameed | ||
11 | ' | ||
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. | ||
14 | ' | ||
15 | ' This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
16 | ' KIND, either express or implied. | ||
17 | ' | ||
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) | ||
22 | |||
23 | |||
24 | |||
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) | ||
29 | |||
30 | Const SSFMCreateForWrite = 3 | ||
31 | |||
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 | ||
41 | |||
42 | Dim oSpVoice, oSpFS, nAudioFormat, sText, sOutputFile | ||
43 | |||
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 | ||
49 | |||
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 | ||
57 | |||
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 | ||
64 | |||
65 | Set oSpFS = Nothing | ||
66 | Set oSpVoice = Nothing | ||
67 | Set oArgs = Nothing | ||
68 | WScript.Quit 0 | ||