-
Notifications
You must be signed in to change notification settings - Fork 1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #100 from astahlman/master
Platform independent audio output. Stop hardcoding /home/jasper.
- Loading branch information
Showing
9 changed files
with
112 additions
and
25 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,17 @@ | ||
cd /home/pi/jasper/boot/ | ||
#!/bin/bash | ||
if [[ -z "$JASPER_HOME" ]]; then | ||
if [[ -d "/home/pi" ]]; then | ||
JASPER_HOME="/home/pi" | ||
export JASPER_HOME; | ||
else | ||
echo "Error: \$JASPER_HOME is not set." | ||
exit 0; | ||
fi | ||
fi | ||
|
||
cd $JASPER_HOME/jasper/boot | ||
LD_LIBRARY_PATH="/usr/local/lib" | ||
export LD_LIBRARY_PATH | ||
PATH=$PATH:/usr/local/lib/ | ||
export PATH | ||
python boot.py & | ||
python boot.py & |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
""" | ||
A Speaker handles audio output from Jasper to the user | ||
Speaker methods: | ||
say - output 'phrase' as speech | ||
play - play the audio in 'filename' | ||
isAvailable - returns True if the platform supports this implementation | ||
""" | ||
import os | ||
import json | ||
|
||
class eSpeakSpeaker: | ||
""" | ||
Uses the eSpeak speech synthesizer included in the Jasper disk image | ||
""" | ||
@classmethod | ||
def isAvailable(cls): | ||
return os.system("which espeak") == 0 | ||
|
||
def say(self, phrase, OPTIONS=" -vdefault+m3 -p 40 -s 160 --stdout > say.wav"): | ||
os.system("espeak " + json.dumps(phrase) + OPTIONS) | ||
self.play("say.wav") | ||
|
||
def play(self, filename): | ||
os.system("aplay -D hw:1,0 " + filename) | ||
|
||
class saySpeaker: | ||
""" | ||
Uses the OS X built-in 'say' command | ||
""" | ||
|
||
@classmethod | ||
def isAvailable(cls): | ||
return os.system("which say") == 0 | ||
|
||
def shellquote(self, s): | ||
return "'" + s.replace("'", "'\\''") + "'" | ||
|
||
def say(self, phrase): | ||
os.system("say " + self.shellquote(phrase)) | ||
|
||
def play(self, filename): | ||
os.system("afplay " + filename) | ||
|
||
def newSpeaker(): | ||
""" | ||
Returns: | ||
A speaker implementation available on the current platform | ||
Raises: | ||
ValueError if no speaker implementation is supported on this platform | ||
""" | ||
|
||
for cls in [eSpeakSpeaker, saySpeaker]: | ||
if cls.isAvailable(): | ||
return cls() | ||
raise ValueError("Platform is not supported") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,3 @@ | ||
cd /home/pi/jasper/client/ | ||
cd $JASPER_HOME/jasper/client | ||
rm -rf ../old_client | ||
python main.py & |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters