#!/usr/bin/python
import os, sys, string

samples = '/usr/share/WyabdcRealPeopleTTS/'		# WyabdcRealPeopleTTS
												# http://prdownloads.sourceforge.net/stardict/WyabdcRealPeopleTTS.tar.bz2?download
player = 'aplay'								# wav player command - play, aplay, etc.

def check_sample_path(word):
	return os.path.exists(os.path.join(samples, word[0], word + '.wav'))

def play(word):
	smp_path = os.path.join(samples, word[0], word + '.wav')
	res = os.path.exists(smp_path)
	if (res == True):
		os.system(player + ' ' + smp_path + ' 2>/dev/null')
	return res

def get_fuzzy_word(word):
	word = word.strip("@#$%&*-:;!?.,'\"<>()[]{}0123456789")
	size = len(word)
	if (word[size-2:size] == 'es'):
		word = word[:-2]
	elif (word[size-1] == 's'):
		word = word[:-1]
	elif (word[size-3:size] == 'ing'):
		word = word[:-3]
	elif (word[size-3:size] == 'ied'):
		word = word[:-3] + 'y'
	elif (word[size-2:size] == 'ed'):
		word = word[:-2]
	elif (word[size-2:size] == 'ly'):
		word = word[:-2]
	if (check_sample_path(word) == False):
		word = word + 'e'
	return word

def main(argv = sys.argv):
	if argv[1:]:
		word = string.lower(argv[1:][0])
		if (play(word) == False):
			play(get_fuzzy_word(word))

if __name__ == '__main__': main()

# 09.12.2007


