Main Page
Namespaces
Classes
Files
File List
File Members
scripts
say.py
Go to the documentation of this file.
1
#!/usr/bin/env python
2
3
#***********************************************************
4
#* Software License Agreement (BSD License)
5
#*
6
#* Copyright (c) 2009, Willow Garage, Inc.
7
#* All rights reserved.
8
#*
9
#* Redistribution and use in source and binary forms, with or without
10
#* modification, are permitted provided that the following conditions
11
#* are met:
12
#*
13
#* * Redistributions of source code must retain the above copyright
14
#* notice, this list of conditions and the following disclaimer.
15
#* * Redistributions in binary form must reproduce the above
16
#* copyright notice, this list of conditions and the following
17
#* disclaimer in the documentation and/or other materials provided
18
#* with the distribution.
19
#* * Neither the name of the Willow Garage nor the names of its
20
#* contributors may be used to endorse or promote products derived
21
#* from this software without specific prior written permission.
22
#*
23
#* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24
#* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25
#* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
26
#* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
27
#* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
28
#* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
29
#* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30
#* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31
#* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32
#* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
33
#* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34
#* POSSIBILITY OF SUCH DAMAGE.
35
#***********************************************************
36
37
# Author: Blaise Gassend
38
39
40
import
sys
41
42
if
__name__ ==
'__main__'
:
43
if
len(sys.argv) > 1
and
sys.argv[1] ==
'--help'
:
44
print
'Usage: %s \'String to say.\''
%sys.argv[0]
45
print
' %s < file_to_say.txt'
%sys.argv[0]
46
print
47
print
'Says a string. For a string on the command line, you must use quotes as'
48
print
'appropriate. For a string on standard input, the command will wait for'
49
print
'EOF before saying anything.'
50
exit(-1)
51
52
# Import after printing usage for speed.
53
import
rospy
54
from
sound_play.msg
import
SoundRequest
55
from
sound_play.libsoundplay
import
SoundClient
56
57
if
len(sys.argv) == 1:
58
print
'Awaiting something to say on standard input.'
59
60
# Ordered this way to minimize wait time.
61
rospy.init_node(
'say'
, anonymous =
True
)
62
soundhandle =
SoundClient
()
63
rospy.sleep(1)
64
65
voice =
'voice_kal_diphone'
66
volume = 1.0
67
68
if
len(sys.argv) == 1:
69
s = sys.stdin.read()
70
else
:
71
s = sys.argv[1]
72
73
if
len(sys.argv) > 2:
74
voice = sys.argv[2]
75
if
len(sys.argv) > 3:
76
volume = float(sys.argv[3])
77
78
print
'Saying: %s'
% s
79
print
'Voice: %s'
% voice
80
print
'Volume: %s'
% volume
81
82
soundhandle.say(s, voice, volume)
83
rospy.sleep(1)
sound_play.libsoundplay
Definition:
libsoundplay.py:1
sound_play.libsoundplay.SoundClient
This class is a helper class for communicating with the sound_play node via the sound_play.SoundRequest message.
Definition:
libsoundplay.py:93
sound_play
Author(s): Blaise Gassend
autogenerated on Tue Mar 26 2019 02:30:56