Files
artcraft/script/arpabet_progress.py
T
Brandon Thomas 5d56da645a README, word-phoneme dict, phoneme progress script
- Updated README a little
- Added a word-to-phoneme dictionary (CMU open source)
- Added a Python script to track progress on phonemes
2016-08-22 02:16:47 -04:00

63 lines
1.3 KiB
Python
Executable File

#!/usr/bin/env python2
# Show how many phonemes remain
from os import path
import os
import re
DICTIONARY_FILE = '/home/bt/dev/trumpet/dictionary/cmudict-0.7b'
PHONE_DIR = '/home/bt/Dropbox/jungle.horse/sounds/trump/_phonemes'
def current_phonemes():
"""
Gets the current set of phoneme wav files.
Returns a frozenset of strings.
"""
phonemes = []
for p in os.listdir(PHONE_DIR):
if not p.endswith('.wav'):
continue
phonemes.append(p.replace('.wav', ''))
return frozenset(phonemes)
def all_phonemes():
"""
Read the CMU Word-Phoneme dictionary and extract the phoneme set.
Returns a frozenset of strings.
"""
lines = []
with open(DICTIONARY_FILE) as f:
lines = f.readlines()
lines = [l for l in lines if re.match("^\w+", l)]
phonemes = set()
for l in lines:
word_phones = l.split()[1:]
for w in word_phones:
phonemes.add(w)
return frozenset(phonemes)
current = current_phonemes()
phonemes = all_phonemes()
print "\nAll Phonemes: {}\n".format(len(phonemes))
li = list(phonemes)
li.sort()
print li
print "\nCurrent Phonemes: {}\n".format(len(current))
li = list(current)
li.sort()
print li
missing = phonemes - current
print "\nMissing Phonemes: {}\n".format(len(missing))
li = list(missing)
li.sort()
print li