diff options
| author | schneefux <schneefux+commit@schneefux.xyz> | 2014-03-30 16:03:44 -0400 |
|---|---|---|
| committer | schneefux <schneefux+commit@schneefux.xyz> | 2014-03-30 16:03:44 -0400 |
| commit | d31fabf8cff5dae02e3fc759a4203bd374dddc99 (patch) | |
| tree | 888ec4e6d98154f862a3b9cd17a3394b657bc02e /client/g2p.py | |
| parent | 4182b5e096e081158dddd4ad5d031af94fcc63de (diff) | |
| download | jasper-client-d31fabf8cff5dae02e3fc759a4203bd374dddc99.tar.gz jasper-client-d31fabf8cff5dae02e3fc759a4203bd374dddc99.zip | |
Initial commit
Diffstat (limited to 'client/g2p.py')
| -rw-r--r-- | client/g2p.py | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/client/g2p.py b/client/g2p.py new file mode 100644 index 0000000..06fef14 --- /dev/null +++ b/client/g2p.py @@ -0,0 +1,55 @@ +import os +import subprocess +import re + +TEMP_FILENAME = "g2ptemp" +PHONE_MATCH = re.compile(r'<s> (.*) </s>') + + +def parseLine(line): + return PHONE_MATCH.search(line).group(1) + + +def parseOutput(output): + return PHONE_MATCH.findall(output) + + +def translateWord(word): + out = subprocess.check_output(['phonetisaurus-g2p', '--model=%s' % + os.path.expanduser("~/phonetisaurus/g014b2b.fst"), '--input=%s' % word]) + return parseLine(out) + + +def translateWords(words): + full_text = '\n'.join(words) + + f = open(TEMP_FILENAME, "wb") + f.write(full_text) + f.flush() + + output = translateFile(TEMP_FILENAME) + os.remove(TEMP_FILENAME) + + return output + + +def translateFile(input_filename, output_filename=None): + out = subprocess.check_output(['phonetisaurus-g2p', '--model=%s' % os.path.expanduser( + "~/phonetisaurus/g014b2b.fst"), '--input=%s' % input_filename, '--words', '--isfile']) + out = parseOutput(out) + + if output_filename: + out = '\n'.join(out) + + f = open(output_filename, "wb") + f.write(out) + f.close() + + return None + + return out + +if __name__ == "__main__": + + translateFile(os.path.expanduser("~/phonetisaurus/sentences.txt"), + os.path.expanduser("~/phonetisaurus/dictionary.dic")) |
