Mercurial > pyntnclick
annotate scripts/regen-speech.py @ 405:8ba59ae66188
raw images
author | Adrianna Pińska <adrianna.pinska@gmail.com> |
---|---|
date | Sat, 28 Aug 2010 21:37:28 +0200 |
parents | 66898d810247 |
children | 1b1ab71535bd |
rev | line source |
---|---|
109
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
1 #!/usr/bin/env python |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
2 |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
3 import pygame |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
4 import subprocess |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
5 import os |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
6 |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
7 from gamelib.state import initial_state |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
8 from gamelib import speech |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
9 |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
10 from albow.resource import resource_path |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
11 |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
12 from pygame.locals import SWSURFACE |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
13 from gamelib.constants import SCREEN |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
14 |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
15 # We need this stuff set up so we can load images and whatnot. |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
16 pygame.display.init() |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
17 pygame.display.set_mode(SCREEN, SWSURFACE) |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
18 |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
19 |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
20 def espeak(text, filename, voice="en-sc"): |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
21 """Call espeak. Use espeak --voices for list of voices.""" |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
22 tmpfile = "%s.wav" % filename |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
23 stdout = open(tmpfile, "wb") |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
24 subprocess.call(["espeak", "--stdout", "-v", voice, text], stdout=stdout) |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
25 print ["oggenc", tmpfile, "-o", filename] |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
26 subprocess.call(["oggenc", tmpfile, "-o", filename]) |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
27 os.remove(tmpfile) |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
28 |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
29 |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
30 def main(): |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
31 state = initial_state() |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
32 for scene in state.scenes.values(): |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
33 for thing in scene.things.values(): |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
34 texts = getattr(thing, "SPEECH", None) |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
35 if texts is None: |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
36 continue |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
37 for text in texts: |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
38 filename = speech.get_filename(thing.name, text) |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
39 filename = resource_path("sounds", "speech", filename) |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
40 print "[%s: %s] -> %s" % (thing.name, text[:30], filename) |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
41 espeak(text, filename) |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
42 |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
43 |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
44 if __name__ == "__main__": |
66898d810247
Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents:
diff
changeset
|
45 main() |