summaryrefslogtreecommitdiff
path: root/client/g2p.py
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2014-09-12 17:57:30 -0400
committerschneefux <schneefux+commit@schneefux.xyz>2014-09-12 17:57:30 -0400
commitc74b76df557c9063f66a4ca3193becae19ed4625 (patch)
treee7e99036772c59ad92a0b43a2e6cc95a4acc49ab /client/g2p.py
parenteb93be0cd774627d0511ae60ec9cf625d23db755 (diff)
parentd24204caa73906a7ad98488281caac8aad6bcaec (diff)
downloadjasper-client-c74b76df557c9063f66a4ca3193becae19ed4625.tar.gz
jasper-client-c74b76df557c9063f66a4ca3193becae19ed4625.zip
Merge pull request #170 from Holzhaus/avoid-hardcoded-paths
Make HMM dir and FST model configurable.
Diffstat (limited to 'client/g2p.py')
-rw-r--r--client/g2p.py20
1 files changed, 15 insertions, 5 deletions
diff --git a/client/g2p.py b/client/g2p.py
index 3225c73..87e8b0d 100644
--- a/client/g2p.py
+++ b/client/g2p.py
@@ -3,10 +3,22 @@ import os
import tempfile
import subprocess
import re
+import yaml
PHONE_MATCH = re.compile(r'<s> (.*) </s>')
-PHONETISAURUS_PATH = os.environ['JASPER_HOME'] + "/phonetisaurus"
+FST_MODEL = None
+
+# Try to get fst_model from config
+profile_path = os.path.join(os.path.dirname(__file__),'profile.yml')
+if os.path.exists(profile_path):
+ with open(profile_path, 'r') as f:
+ profile = yaml.safe_load(f)
+ if 'pocketsphinx' in profile and 'fst_model' in profile['pocketsphinx']:
+ FST_MODEL = profile['pocketsphinx']['fst_model']
+
+if not FST_MODEL:
+ FST_MODEL = os.environ['JASPER_HOME'] + "/phonetisaurus/g014b2b.fst"
def parseLine(line):
return PHONE_MATCH.search(line).group(1)
@@ -17,8 +29,7 @@ def parseOutput(output):
def translateWord(word):
- out = subprocess.check_output(['phonetisaurus-g2p', '--model=%s' %
- PHONETISAURUS_PATH + "/g014b2b.fst", '--input=%s' % word])
+ out = subprocess.check_output(['phonetisaurus-g2p', '--model=%s' % FST_MODEL, '--input=%s' % word])
return parseLine(out)
@@ -36,8 +47,7 @@ def translateWords(words):
def translateFile(input_filename, output_filename=None):
- out = subprocess.check_output(['phonetisaurus-g2p', '--model=%s' %
- PHONETISAURUS_PATH + "/g014b2b.fst", '--input=%s' % input_filename, '--words', '--isfile'])
+ out = subprocess.check_output(['phonetisaurus-g2p', '--model=%s' % FST_MODEL, '--input=%s' % input_filename, '--words', '--isfile'])
out = parseOutput(out)
if output_filename: