fhieni commited on
Commit
6395666
1 Parent(s): b20b7b4

Upload 9 files

Browse files
viphoneme/Popular.txt ADDED
@@ -0,0 +1,7698 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ a
2
+ á
3
+ à
4
+ ã
5
+
6
+
7
+ ác
8
+ ắc
9
+ ặc
10
+ ậc
11
+ ạc
12
+ ách
13
+ ạch
14
+ ai
15
+ ái
16
+ ải
17
+ am
18
+ ám
19
+ ăm
20
+ ẵm
21
+ âm
22
+ ấm
23
+ ầm
24
+ ẩm
25
+ ậm
26
+ ảm
27
+ an
28
+ án
29
+ ăn
30
+ ân
31
+ ấn
32
+ ẩn
33
+ ang
34
+ áng
35
+ ăng
36
+ ắng
37
+ ằng
38
+ ẳng
39
+ ầng
40
+ ảng
41
+ anh
42
+ ánh
43
+ ành
44
+ ảnh
45
+ ao
46
+ áo
47
+ ào
48
+ ảo
49
+ áp
50
+ ắp
51
+ ấp
52
+ ập
53
+ át
54
+ ắt
55
+ ất
56
+ ạt
57
+ au
58
+ âu
59
+ ấu
60
+ ầu
61
+ ẩu
62
+ ay
63
+ áy
64
+ ây
65
+ ấy
66
+ ầy
67
+ ẩy
68
+ b
69
+ ba
70
+
71
+
72
+
73
+ bả
74
+ bạ
75
+ bác
76
+ bắc
77
+ bặc
78
+ bấc
79
+ bậc
80
+ bạc
81
+ bách
82
+ bạch
83
+ bai
84
+ bái
85
+ bài
86
+ bãi
87
+ bải
88
+ bại
89
+ bam
90
+ bám
91
+ bàm
92
+ băm
93
+ bằm
94
+ bẵm
95
+ bẳm
96
+ bặm
97
+ bấm
98
+ bầm
99
+ bẫm
100
+ bẩm
101
+ bậm
102
+ bạm
103
+ ban
104
+ bán
105
+ bàn
106
+ băn
107
+ bắn
108
+ bằn
109
+ bẳn
110
+ bặn
111
+ bân
112
+ bấn
113
+ bần
114
+ bẩn
115
+ bận
116
+ bản
117
+ bạn
118
+ bang
119
+ báng
120
+ bàng
121
+ băng
122
+ bắng
123
+ bằng
124
+ bẵng
125
+ bặng
126
+ bâng
127
+ bấng
128
+ bầng
129
+ bậng
130
+ bảng
131
+ bạng
132
+ banh
133
+ bánh
134
+ bành
135
+ bãnh
136
+ bảnh
137
+ bạnh
138
+ bao
139
+ báo
140
+ bào
141
+ bão
142
+ bảo
143
+ bạo
144
+ báp
145
+ bắp
146
+ bặp
147
+ bấp
148
+ bập
149
+ bạp
150
+ bát
151
+ bắt
152
+ bặt
153
+ bất
154
+ bật
155
+ bạt
156
+ bau
157
+ báu
158
+ bàu
159
+ bâu
160
+ bấu
161
+ bầu
162
+ bẩu
163
+ bậu
164
+ bảu
165
+ bạu
166
+ bay
167
+ bày
168
+ bây
169
+ bấy
170
+ bầy
171
+ bẫy
172
+ bẩy
173
+ bậy
174
+ bảy
175
+ be
176
+
177
+
178
+
179
+ bế
180
+ bề
181
+ bễ
182
+ bể
183
+ bệ
184
+ bẽ
185
+ bẻ
186
+ bẹ
187
+ béc
188
+ bẹc
189
+ béch
190
+ bếch
191
+ bệch
192
+ bèm
193
+ bẻm
194
+ ben
195
+ bén
196
+ bèn
197
+ bên
198
+ bến
199
+ bền
200
+ bển
201
+ bện
202
+ bẽn
203
+ bẹn
204
+ beng
205
+ béng
206
+ bênh
207
+ bếnh
208
+ bềnh
209
+ bểnh
210
+ bệnh
211
+ beo
212
+ béo
213
+ bèo
214
+ bẽo
215
+ bẻo
216
+ bẹo
217
+ bép
218
+ bếp
219
+ bệp
220
+ bẹp
221
+ bét
222
+ bết
223
+ bệt
224
+ bẹt
225
+ bêu
226
+ bều
227
+ bệu
228
+ bi
229
+
230
+
231
+
232
+ bỉ
233
+ bị
234
+ bia
235
+ bìa
236
+ bịa
237
+ bíc
238
+ bích
239
+ bịch
240
+ biếc
241
+ biếm
242
+ biên
243
+ biến
244
+ biền
245
+ biển
246
+ biện
247
+ biêng
248
+ biếng
249
+ biết
250
+ biệt
251
+ biêu
252
+ biếu
253
+ biểu
254
+ bim
255
+ bím
256
+ bìm
257
+ bỉm
258
+ bin
259
+ bín
260
+ bịn
261
+ binh
262
+ bính
263
+ bình
264
+ bĩnh
265
+ bỉnh
266
+ bịnh
267
+ bíp
268
+ bịp
269
+ bít
270
+ bịt
271
+ biu
272
+ bíu
273
+ bìu
274
+ bĩu
275
+ bỉu
276
+ bịu
277
+ bo
278
+
279
+
280
+
281
+ bố
282
+ bồ
283
+ bỗ
284
+ bổ
285
+ bộ
286
+
287
+ bỏ
288
+ bọ
289
+
290
+ bớ
291
+ bờ
292
+ bỡ
293
+ bở
294
+ bợ
295
+ boa
296
+ bóc
297
+ bốc
298
+ bộc
299
+ bọc
300
+ boi
301
+ bói
302
+ bòi
303
+ bôi
304
+ bối
305
+ bồi
306
+ bổi
307
+ bội
308
+ bỏi
309
+ bơi
310
+ bới
311
+ bời
312
+ bởi
313
+ bom
314
+ bòm
315
+ bôm
316
+ bồm
317
+ bỗm
318
+ bõm
319
+ bỏm
320
+ bơm
321
+ bờm
322
+ bợm
323
+ bon
324
+ bón
325
+ bòn
326
+ bôn
327
+ bốn
328
+ bồn
329
+ bổn
330
+ bộn
331
+ bỏn
332
+ bọn
333
+ bơn
334
+ bớn
335
+ bờn
336
+ bỡn
337
+ bợn
338
+ bong
339
+ bóng
340
+ bòng
341
+ bông
342
+ bống
343
+ bồng
344
+ bỗng
345
+ bổng
346
+ bộng
347
+ bõng
348
+ bỏng
349
+ bọng
350
+ bóp
351
+ bốp
352
+ bộp
353
+ bọp
354
+ bớp
355
+ bợp
356
+ bót
357
+ bốt
358
+ bột
359
+ bọt
360
+ bớt
361
+ bợt
362
+ bu
363
+
364
+
365
+ bủ
366
+ bụ
367
+
368
+ bứ
369
+ bự
370
+ bua
371
+ búa
372
+ bùa
373
+ bủa
374
+ bụa
375
+ bưa
376
+ bứa
377
+ bừa
378
+ bữa
379
+ bửa
380
+ bựa
381
+ bục
382
+ bức
383
+ bực
384
+ buê
385
+ bui
386
+ búi
387
+ bùi
388
+ bụi
389
+ bum
390
+ bùm
391
+ bũm
392
+ bủm
393
+ bụm
394
+ bun
395
+ bún
396
+ bùn
397
+ bủn
398
+ bừn
399
+ bung
400
+ búng
401
+ bùng
402
+ bủng
403
+ bụng
404
+ bưng
405
+ bứng
406
+ bừng
407
+ bửng
408
+ bựng
409
+ buộc
410
+ bước
411
+ buôi
412
+ buồi
413
+ buổi
414
+ bươi
415
+ bưởi
416
+ buồm
417
+ bươm
418
+ bướm
419
+ buôn
420
+ buồn
421
+ bươn
422
+ buông
423
+ buồng
424
+ bương
425
+ bướng
426
+ bướp
427
+ buốt
428
+ buột
429
+ bượt
430
+ bươu
431
+ bướu
432
+ búp
433
+ bụp
434
+ bút
435
+ bụt
436
+ bứt
437
+ bựt
438
+ bưu
439
+ bứu
440
+ bửu
441
+ buy
442
+ buýt
443
+ c
444
+ ca
445
+
446
+
447
+ cả
448
+ cạ
449
+ các
450
+ cắc
451
+ cặc
452
+ cấc
453
+ cạc
454
+ cách
455
+ cạch
456
+ cai
457
+ cái
458
+ cài
459
+ cãi
460
+ cải
461
+ cam
462
+ cám
463
+ càm
464
+ căm
465
+ cắm
466
+ cằm
467
+ cặm
468
+ câm
469
+ cấm
470
+ cầm
471
+ cẫm
472
+ cẩm
473
+ cậm
474
+ cảm
475
+ cạm
476
+ can
477
+ cán
478
+ càn
479
+ căn
480
+ cắn
481
+ cằn
482
+ cẳn
483
+ cặn
484
+ cân
485
+ cấn
486
+ cần
487
+ cẫn
488
+ cẩn
489
+ cận
490
+ cản
491
+ cạn
492
+ cang
493
+ cáng
494
+ càng
495
+ căng
496
+ cắng
497
+ cằng
498
+ cẵng
499
+ cẳng
500
+ câng
501
+ cẫng
502
+ cảng
503
+ canh
504
+ cánh
505
+ cành
506
+ cảnh
507
+ cạnh
508
+ cao
509
+ cáo
510
+ cào
511
+ cảo
512
+ cạo
513
+ cáp
514
+ cắp
515
+ cặp
516
+ cấp
517
+ cập
518
+ cạp
519
+ cát
520
+ cắt
521
+ cặt
522
+ cất
523
+ cật
524
+ cau
525
+ cáu
526
+ càu
527
+ câu
528
+ cấu
529
+ cầu
530
+ cẩu
531
+ cậu
532
+ cảu
533
+ cạu
534
+ cay
535
+ cáy
536
+ cày
537
+ cây
538
+ cấy
539
+ cầy
540
+ cẩy
541
+ cậy
542
+ cảy
543
+ cạy
544
+ cha
545
+ chá
546
+ chà
547
+ chã
548
+ chả
549
+ chạ
550
+ chác
551
+ chắc
552
+ chặc
553
+ chậc
554
+ chạc
555
+ chách
556
+ chạch
557
+ chai
558
+ chái
559
+ chài
560
+ chãi
561
+ chải
562
+ cham
563
+ chàm
564
+ chăm
565
+ chắm
566
+ chằm
567
+ chặm
568
+ châm
569
+ chấm
570
+ chầm
571
+ chẫm
572
+ chẩm
573
+ chậm
574
+ chảm
575
+ chạm
576
+ chan
577
+ chán
578
+ chăn
579
+ chắn
580
+ chằn
581
+ chẵn
582
+ chặn
583
+ chân
584
+ chấn
585
+ chần
586
+ chẫn
587
+ chẩn
588
+ chận
589
+ chạn
590
+ chang
591
+ cháng
592
+ chàng
593
+ chăng
594
+ chằng
595
+ chẳng
596
+ chặng
597
+ châng
598
+ chảng
599
+ chạng
600
+ chanh
601
+ chánh
602
+ chành
603
+ chảnh
604
+ chạnh
605
+ chao
606
+ cháo
607
+ chào
608
+ chão
609
+ chảo
610
+ chạo
611
+ chắp
612
+ chặp
613
+ chấp
614
+ chập
615
+ chạp
616
+ chát
617
+ chắt
618
+ chặt
619
+ chất
620
+ chật
621
+ chạt
622
+ chau
623
+ cháu
624
+ chàu
625
+ châu
626
+ chấu
627
+ chầu
628
+ chẫu
629
+ chẩu
630
+ chậu
631
+ chảu
632
+ chay
633
+ cháy
634
+ chày
635
+ chây
636
+ chấy
637
+ chầy
638
+ chẩy
639
+ chậy
640
+ chảy
641
+ chạy
642
+ che
643
+ ché
644
+ chè
645
+ chê
646
+ chế
647
+ chề
648
+ chệ
649
+ chẽ
650
+ chẻ
651
+ chếch
652
+ chệch
653
+ chem
654
+ chém
655
+ chèm
656
+ chêm
657
+ chềm
658
+ chễm
659
+ chệm
660
+ chẽm
661
+ chẻm
662
+ chen
663
+ chén
664
+ chèn
665
+ chện
666
+ chẽn
667
+ chẹn
668
+ cheng
669
+ chẻng
670
+ chênh
671
+ chếnh
672
+ chềnh
673
+ chễnh
674
+ chểnh
675
+ chệnh
676
+ cheo
677
+ chéo
678
+ chèo
679
+ chẻo
680
+ chẹo
681
+ chép
682
+ chếp
683
+ chệp
684
+ chẹp
685
+ chét
686
+ chết
687
+ chệt
688
+ chẹt
689
+ chêu
690
+ chi
691
+ chí
692
+ chì
693
+ chỉ
694
+ chị
695
+ chia
696
+ chía
697
+ chìa
698
+ chĩa
699
+ chỉa
700
+ chịa
701
+ chích
702
+ chịch
703
+ chiếc
704
+ chiệc
705
+ chiêm
706
+ chiếm
707
+ chiên
708
+ chiến
709
+ chiền
710
+ chiện
711
+ chiêng
712
+ chiếng
713
+ chiềng
714
+ chiểng
715
+ chiệng
716
+ chiếp
717
+ chiết
718
+ chiêu
719
+ chiếu
720
+ chiều
721
+ chiểu
722
+ chim
723
+ chím
724
+ chìm
725
+ chin
726
+ chín
727
+ chĩn
728
+ chỉn
729
+ chịn
730
+ chinh
731
+ chính
732
+ chình
733
+ chĩnh
734
+ chỉnh
735
+ chíp
736
+ chít
737
+ chịt
738
+ chiu
739
+ chíu
740
+ chìu
741
+ chĩu
742
+ chịu
743
+ cho
744
+ chó
745
+ chò
746
+ chô
747
+ chồ
748
+ chỗ
749
+ chổ
750
+ chõ
751
+ chỏ
752
+ chọ
753
+ chơ
754
+ chớ
755
+ chờ
756
+ chở
757
+ chợ
758
+ choa
759
+ chóa
760
+ choác
761
+ choạc
762
+ choai
763
+ choái
764
+ choài
765
+ choãi
766
+ choại
767
+ choàm
768
+ choán
769
+ choăn
770
+ choang
771
+ choáng
772
+ choàng
773
+ choảng
774
+ choạng
775
+ choạp
776
+ choắt
777
+ chóc
778
+ chốc
779
+ chọc
780
+ choe
781
+ chóe
782
+ chòe
783
+ chọe
784
+ choen
785
+ choèn
786
+ choẻn
787
+ choét
788
+ choẹt
789
+ choi
790
+ chói
791
+ chòi
792
+ chôi
793
+ chối
794
+ chồi
795
+ chỗi
796
+ chổi
797
+ chội
798
+ chỏi
799
+ chọi
800
+ chơi
801
+ chới
802
+ chòm
803
+ chôm
804
+ chồm
805
+ chỗm
806
+ chổm
807
+ chõm
808
+ chỏm
809
+ chơm
810
+ chớm
811
+ chờm
812
+ chởm
813
+ chợm
814
+ chon
815
+ chôn
816
+ chốn
817
+ chồn
818
+ chộn
819
+ chỏn
820
+ chọn
821
+ chơn
822
+ chớn
823
+ chờn
824
+ chợn
825
+ chong
826
+ chóng
827
+ chòng
828
+ chông
829
+ chống
830
+ chồng
831
+ chổng
832
+ chõng
833
+ chỏng
834
+ chóp
835
+ chốp
836
+ chộp
837
+ chọp
838
+ chớp
839
+ chợp
840
+ chót
841
+ chốt
842
+ chột
843
+ chọt
844
+ chớt
845
+ chợt
846
+ chu
847
+ chú
848
+ chù
849
+ chủ
850
+ chư
851
+ chứ
852
+ chừ
853
+ chữ
854
+ chử
855
+ chua
856
+ chúa
857
+ chùa
858
+ chủa
859
+ chưa
860
+ chứa
861
+ chừa
862
+ chữa
863
+ chửa
864
+ chuân
865
+ chuẩn
866
+ chúc
867
+ chục
868
+ chức
869
+ chực
870
+ chuếch
871
+ chuệch
872
+ chuếnh
873
+ chuểnh
874
+ chui
875
+ chúi
876
+ chùi
877
+ chũi
878
+ chửi
879
+ chum
880
+ chúm
881
+ chùm
882
+ chũm
883
+ chủm
884
+ chụm
885
+ chun
886
+ chùn
887
+ chũn
888
+ chủn
889
+ chưn
890
+ chung
891
+ chúng
892
+ chùng
893
+ chủng
894
+ chưng
895
+ chứng
896
+ chừng
897
+ chững
898
+ chửng
899
+ chựng
900
+ chuốc
901
+ chuộc
902
+ chước
903
+ chược
904
+ chuôi
905
+ chuối
906
+ chuồi
907
+ chuỗi
908
+ chuội
909
+ chưởi
910
+ chuôm
911
+ chườm
912
+ chuồn
913
+ chuỗn
914
+ chuông
915
+ chuồng
916
+ chuộng
917
+ chương
918
+ chướng
919
+ chường
920
+ chưỡng
921
+ chưởng
922
+ chượp
923
+ chuốt
924
+ chuột
925
+ chụp
926
+ chút
927
+ chụt
928
+ chùy
929
+ chuya
930
+ chuyên
931
+ chuyến
932
+ chuyền
933
+ chuyển
934
+ chuyện
935
+ co
936
+
937
+
938
+
939
+ cố
940
+ cồ
941
+ cỗ
942
+ cổ
943
+ cộ
944
+ cỏ
945
+ cọ
946
+
947
+ cớ
948
+ cờ
949
+ cỡ
950
+ cóc
951
+ cốc
952
+ cộc
953
+ cọc
954
+ coi
955
+ cói
956
+ còi
957
+ côi
958
+ cối
959
+ cỗi
960
+ cổi
961
+ cội
962
+ cõi
963
+ cỏi
964
+ cọi
965
+ cơi
966
+ cời
967
+ cỡi
968
+ cởi
969
+ com
970
+ cóm
971
+ còm
972
+ côm
973
+ cốm
974
+ cồm
975
+ cộm
976
+ cõm
977
+ cỏm
978
+ cọm
979
+ cơm
980
+ cớm
981
+ cờm
982
+ cỡm
983
+ cợm
984
+ con
985
+ cón
986
+ còn
987
+ côn
988
+ cốn
989
+ cồn
990
+ cổn
991
+ cộn
992
+ cỏn
993
+ cọn
994
+ cơn
995
+ cớn
996
+ cờn
997
+ cỡn
998
+ cợn
999
+ cong
1000
+ cóng
1001
+ còng
1002
+ công
1003
+ cống
1004
+ cồng
1005
+ cổng
1006
+ cộng
1007
+ cõng
1008
+ cỏng
1009
+ cọng
1010
+ cóp
1011
+ cốp
1012
+ cộp
1013
+ cọp
1014
+ cợp
1015
+ cót
1016
+ cốt
1017
+ cột
1018
+ cọt
1019
+ cớt
1020
+ cợt
1021
+ cu
1022
+
1023
+
1024
+
1025
+ củ
1026
+ cụ
1027
+
1028
+ cứ
1029
+ cừ
1030
+ cữ
1031
+ cử
1032
+ cự
1033
+ cua
1034
+ cúa
1035
+ của
1036
+ cưa
1037
+ cứa
1038
+ cửa
1039
+ cựa
1040
+ cúc
1041
+ cục
1042
+ cức
1043
+ cực
1044
+ cui
1045
+ cúi
1046
+ cùi
1047
+ cũi
1048
+ củi
1049
+ cụi
1050
+ cứi
1051
+ cửi
1052
+ cum
1053
+ cúm
1054
+ cùm
1055
+ củm
1056
+ cụm
1057
+ cun
1058
+ cún
1059
+ cùn
1060
+ cũn
1061
+ củn
1062
+ cung
1063
+ cúng
1064
+ cùng
1065
+ cũng
1066
+ củng
1067
+ cụng
1068
+ cưng
1069
+ cứng
1070
+ cững
1071
+ cửng
1072
+ cuốc
1073
+ cuộc
1074
+ cước
1075
+ cược
1076
+ cuối
1077
+ cuội
1078
+ cưới
1079
+ cười
1080
+ cưỡi
1081
+ cuỗm
1082
+ cườm
1083
+ cuốn
1084
+ cuồn
1085
+ cuộn
1086
+ cuông
1087
+ cuống
1088
+ cuồng
1089
+ cuộng
1090
+ cương
1091
+ cường
1092
+ cưỡng
1093
+ cướp
1094
+ cúp
1095
+ cụp
1096
+ cút
1097
+ cụt
1098
+ cứt
1099
+ cưu
1100
+ cứu
1101
+ cừu
1102
+ cữu
1103
+ cửu
1104
+ cựu
1105
+ da
1106
+ đa
1107
+
1108
+ đá
1109
+
1110
+ đà
1111
+
1112
+ đã
1113
+ dả
1114
+ đả
1115
+ dạ
1116
+ đạ
1117
+ dác
1118
+ đác
1119
+ dắc
1120
+ dặc
1121
+ đắc
1122
+ đặc
1123
+ dạc
1124
+ đạc
1125
+ dách
1126
+ đách
1127
+ đạch
1128
+ dai
1129
+ đai
1130
+ dái
1131
+ đái
1132
+ dài
1133
+ đài
1134
+ dãi
1135
+ đãi
1136
+ dải
1137
+ dại
1138
+ đại
1139
+ đắk
1140
+ dam
1141
+ đam
1142
+ dám
1143
+ đám
1144
+ dàm
1145
+ đàm
1146
+ dăm
1147
+ dắm
1148
+ dằm
1149
+ dặm
1150
+ đăm
1151
+ đắm
1152
+ đằm
1153
+ đẵm
1154
+ đặm
1155
+ dâm
1156
+ dấm
1157
+ dầm
1158
+ dẫm
1159
+ dẩm
1160
+ dậm
1161
+ đâm
1162
+ đấm
1163
+ đầm
1164
+ đẫm
1165
+ đậm
1166
+ đãm
1167
+ đảm
1168
+ dạm
1169
+ đạm
1170
+ dan
1171
+ đan
1172
+ dán
1173
+ đán
1174
+ dàn
1175
+ đàn
1176
+ dăn
1177
+ dằn
1178
+ dẳn
1179
+ dặn
1180
+ đắn
1181
+ đằn
1182
+ đẵn
1183
+ đặn
1184
+ dân
1185
+ dấn
1186
+ dần
1187
+ dẫn
1188
+ dẩn
1189
+ dận
1190
+ đân
1191
+ đần
1192
+ đẫn
1193
+ đận
1194
+ dãn
1195
+ đản
1196
+ dạn
1197
+ đạn
1198
+ dang
1199
+ đang
1200
+ dáng
1201
+ đáng
1202
+ dàng
1203
+ đàng
1204
+ dăng
1205
+ dắng
1206
+ dằng
1207
+ dẳng
1208
+ đăng
1209
+ đắng
1210
+ đằng
1211
+ đẵng
1212
+ đẳng
1213
+ đặng
1214
+ dâng
1215
+ đấng
1216
+ dãng
1217
+ đãng
1218
+ đảng
1219
+ dạng
1220
+ danh
1221
+ đanh
1222
+ dánh
1223
+ đánh
1224
+ dành
1225
+ đành
1226
+ dảnh
1227
+ đảnh
1228
+ dao
1229
+ đao
1230
+ dáo
1231
+ đáo
1232
+ dào
1233
+ đào
1234
+ đảo
1235
+ dạo
1236
+ đạo
1237
+ đáp
1238
+ đắp
1239
+ dấp
1240
+ dập
1241
+ đấp
1242
+ đập
1243
+ đạp
1244
+ dát
1245
+ đát
1246
+ dắt
1247
+ dặt
1248
+ đắt
1249
+ đặt
1250
+ dật
1251
+ đất
1252
+ đật
1253
+ dạt
1254
+ đạt
1255
+ đau
1256
+ dáu
1257
+ đáu
1258
+ dâu
1259
+ dấu
1260
+ dầu
1261
+ dẫu
1262
+ dẩu
1263
+ dậu
1264
+ đâu
1265
+ đấu
1266
+ đầu
1267
+ đẩu
1268
+ đậu
1269
+ day
1270
+ đay
1271
+ dáy
1272
+ đáy
1273
+ dày
1274
+ đày
1275
+ dây
1276
+ dấy
1277
+ dầy
1278
+ dẫy
1279
+ dẩy
1280
+ dậy
1281
+ đây
1282
+ đấy
1283
+ đầy
1284
+ đẫy
1285
+ đẩy
1286
+ đậy
1287
+ dãy
1288
+ đãy
1289
+ dảy
1290
+ dạy
1291
+ de
1292
+ đe
1293
+
1294
+ đé
1295
+
1296
+ đè
1297
+
1298
+ dế
1299
+ dề
1300
+ dễ
1301
+ dể
1302
+ đê
1303
+ đế
1304
+ đề
1305
+ đễ
1306
+ để
1307
+ đệ
1308
+ dẽ
1309
+ đẽ
1310
+ dẻ
1311
+ đẻ
1312
+ đéc
1313
+ dếch
1314
+ dệch
1315
+ đếch
1316
+ dem
1317
+ đem
1318
+ dém
1319
+ đém
1320
+ dèm
1321
+ đèm
1322
+ đêm
1323
+ đếm
1324
+ đềm
1325
+ đểm
1326
+ đệm
1327
+ dẹm
1328
+ den
1329
+ đen
1330
+ dèn
1331
+ đèn
1332
+ dên
1333
+ dền
1334
+ dện
1335
+ đên
1336
+ đến
1337
+ đền
1338
+ đẻn
1339
+ đẹn
1340
+ dênh
1341
+ dềnh
1342
+ dệnh
1343
+ đênh
1344
+ đềnh
1345
+ đễnh
1346
+ đểnh
1347
+ deo
1348
+ đeo
1349
+ đéo
1350
+ đèo
1351
+ đẽo
1352
+ dẻo
1353
+ dẹo
1354
+ dép
1355
+ đép
1356
+ đệp
1357
+ dẹp
1358
+ đẹp
1359
+ dét
1360
+ đét
1361
+ dết
1362
+ dệt
1363
+ đết
1364
+ dẹt
1365
+ đẹt
1366
+ dệu
1367
+ đêu
1368
+ đều
1369
+ đểu
1370
+ di
1371
+ đi
1372
+
1373
+
1374
+ đì
1375
+
1376
+ đĩ
1377
+ dỉ
1378
+ đỉ
1379
+ dị
1380
+ đị
1381
+ đia
1382
+ đía
1383
+ dìa
1384
+ đìa
1385
+ dĩa
1386
+ đĩa
1387
+ đỉa
1388
+ địa
1389
+ dích
1390
+ đích
1391
+ dịch
1392
+ địch
1393
+ diếc
1394
+ diệc
1395
+ điếc
1396
+ diêm
1397
+ diếm
1398
+ diềm
1399
+ diễm
1400
+ diệm
1401
+ điếm
1402
+ điềm
1403
+ điễm
1404
+ điểm
1405
+ điệm
1406
+ diên
1407
+ diễn
1408
+ diện
1409
+ điên
1410
+ điến
1411
+ điền
1412
+ điển
1413
+ điện
1414
+ điêng
1415
+ điếng
1416
+ điểng
1417
+ diếp
1418
+ diệp
1419
+ điệp
1420
+ diết
1421
+ diệt
1422
+ diêu
1423
+ diếu
1424
+ diều
1425
+ diễu
1426
+ diệu
1427
+ điêu
1428
+ điếu
1429
+ điều
1430
+ điểu
1431
+ điệu
1432
+ dim
1433
+ dím
1434
+ dìm
1435
+ din
1436
+ đin
1437
+ đìn
1438
+ dĩn
1439
+ dinh
1440
+ đinh
1441
+ dính
1442
+ đính
1443
+ đình
1444
+ dĩnh
1445
+ đĩnh
1446
+ đỉnh
1447
+ định
1448
+ díp
1449
+ đíp
1450
+ dịp
1451
+ d��t
1452
+ đít
1453
+ dịt
1454
+ địt
1455
+ diu
1456
+ điu
1457
+ díu
1458
+ dìu
1459
+ đìu
1460
+ dịu
1461
+ địu
1462
+ do
1463
+ đo
1464
+
1465
+ đó
1466
+
1467
+ đò
1468
+
1469
+ dỗ
1470
+ đô
1471
+ đố
1472
+ đồ
1473
+ đỗ
1474
+ đổ
1475
+ độ
1476
+ dỏ
1477
+ đỏ
1478
+ dọ
1479
+ đọ
1480
+
1481
+ dớ
1482
+ dờ
1483
+ dỡ
1484
+ dở
1485
+ dợ
1486
+ đơ
1487
+ đớ
1488
+ đờ
1489
+ đỡ
1490
+ đở
1491
+ đợ
1492
+ doa
1493
+ đoa
1494
+ dóa
1495
+ đóa
1496
+ dọa
1497
+ đọa
1498
+ đoác
1499
+ doạc
1500
+ đoái
1501
+ đoài
1502
+ doãi
1503
+ doan
1504
+ đoan
1505
+ đoán
1506
+ đoàn
1507
+ doãn
1508
+ đoản
1509
+ đoạn
1510
+ doàng
1511
+ đoàng
1512
+ doãng
1513
+ đoãng
1514
+ đoảng
1515
+ doạng
1516
+ doanh
1517
+ doành
1518
+ đoành
1519
+ đoạt
1520
+ dóc
1521
+ đóc
1522
+ dốc
1523
+ dộc
1524
+ đốc
1525
+ độc
1526
+ dọc
1527
+ đọc
1528
+ doi
1529
+ đoi
1530
+ đói
1531
+ dòi
1532
+ đòi
1533
+ dôi
1534
+ dối
1535
+ dồi
1536
+ dỗi
1537
+ dổi
1538
+ dội
1539
+ đôi
1540
+ đối
1541
+ đồi
1542
+ đỗi
1543
+ đổi
1544
+ đội
1545
+ dõi
1546
+ đỏi
1547
+ dọi
1548
+ đọi
1549
+ dơi
1550
+ dời
1551
+ dợi
1552
+ đới
1553
+ đời
1554
+ đợi
1555
+ dom
1556
+ đom
1557
+ dóm
1558
+ đóm
1559
+ dòm
1560
+ đòm
1561
+ dôm
1562
+ dổm
1563
+ đôm
1564
+ đốm
1565
+ đồm
1566
+ dỏm
1567
+ đỏm
1568
+ dơm
1569
+ dớm
1570
+ dởm
1571
+ dợm
1572
+ đơm
1573
+ đớm
1574
+ đờm
1575
+ đởm
1576
+ don
1577
+ đon
1578
+ dón
1579
+ đón
1580
+ dòn
1581
+ đòn
1582
+ dôn
1583
+ dồn
1584
+ đôn
1585
+ đốn
1586
+ đồn
1587
+ độn
1588
+ dọn
1589
+ dơn
1590
+ dớn
1591
+ dờn
1592
+ dỡn
1593
+ dợn
1594
+ đơn
1595
+ đớn
1596
+ đờn
1597
+ đởn
1598
+ dong
1599
+ đong
1600
+ đóng
1601
+ dòng
1602
+ đòng
1603
+ dông
1604
+ dồng
1605
+ dộng
1606
+ đông
1607
+ đống
1608
+ đồng
1609
+ đổng
1610
+ động
1611
+ dõng
1612
+ dỏng
1613
+ đỏng
1614
+ dọng
1615
+ đọng
1616
+ dốp
1617
+ dộp
1618
+ đốp
1619
+ độp
1620
+ dọp
1621
+ dớp
1622
+ đớp
1623
+ đợp
1624
+ dót
1625
+ đót
1626
+ dốt
1627
+ dột
1628
+ đốt
1629
+ đột
1630
+ đọt
1631
+ dớt
1632
+ đớt
1633
+ đợt
1634
+ du
1635
+ đu
1636
+ đú
1637
+
1638
+ đù
1639
+
1640
+ đủ
1641
+ dụ
1642
+
1643
+ dứ
1644
+ dừ
1645
+ dữ
1646
+ dử
1647
+ dự
1648
+ đứ
1649
+ đừ
1650
+ đử
1651
+ dua
1652
+ đua
1653
+ dúa
1654
+ đúa
1655
+ dùa
1656
+ đùa
1657
+ dũa
1658
+ đũa
1659
+ dụa
1660
+ dưa
1661
+ dứa
1662
+ dừa
1663
+ dựa
1664
+ đưa
1665
+ đứa
1666
+ duân
1667
+ duẩn
1668
+ duật
1669
+ đúc
1670
+ dục
1671
+ đục
1672
+ dức
1673
+ dực
1674
+ đức
1675
+ đực
1676
+ duê
1677
+ duệ
1678
+ duềnh
1679
+ đuềnh
1680
+ đuễnh
1681
+ đuểnh
1682
+ đui
1683
+ dúi
1684
+ dùi
1685
+ đùi
1686
+ dũi
1687
+ đũi
1688
+ dủi
1689
+ đủi
1690
+ dụi
1691
+ đụi
1692
+ dúm
1693
+ đúm
1694
+ dùm
1695
+ đùm
1696
+ dụm
1697
+ dun
1698
+ đun
1699
+ dún
1700
+ dùn
1701
+ đùn
1702
+ đụn
1703
+ dung
1704
+ đung
1705
+ dúng
1706
+ đúng
1707
+ dùng
1708
+ đùng
1709
+ dũng
1710
+ đũng
1711
+ đủng
1712
+ dụng
1713
+ đụng
1714
+ dưng
1715
+ dứng
1716
+ dừng
1717
+ dửng
1718
+ dựng
1719
+ đưng
1720
+ đứng
1721
+ đừng
1722
+ đựng
1723
+ duốc
1724
+ duộc
1725
+ đuốc
1726
+ dược
1727
+ đước
1728
+ được
1729
+ duối
1730
+ duỗi
1731
+ đuôi
1732
+ đuối
1733
+ đuổi
1734
+ dưới
1735
+ dượi
1736
+ đười
1737
+ đượi
1738
+ đượm
1739
+ đuồn
1740
+ đuỗn
1741
+ dướn
1742
+ đườn
1743
+ đuông
1744
+ đuống
1745
+ dương
1746
+ dướng
1747
+ dường
1748
+ dưỡng
1749
+ dưởng
1750
+ dượng
1751
+ đương
1752
+ đường
1753
+ đuột
1754
+ dượt
1755
+ đướu
1756
+ đúp
1757
+ đụp
1758
+ dút
1759
+ đút
1760
+ dụt
1761
+ đụt
1762
+ dứt
1763
+ dựt
1764
+ đứt
1765
+ duy
1766
+ duyên
1767
+ duyện
1768
+ duyệt
1769
+ e
1770
+ é
1771
+ è
1772
+ ê
1773
+ ế
1774
+
1775
+
1776
+ éc
1777
+ ẹc
1778
+ ếch
1779
+ ệch
1780
+ em
1781
+ ém
1782
+ êm
1783
+ ếm
1784
+ en
1785
+ én
1786
+ èn
1787
+ ển
1788
+ ện
1789
+ ẻn
1790
+ èng
1791
+ ềnh
1792
+ ễnh
1793
+ eo
1794
+ éo
1795
+ èo
1796
+ ẽo
1797
+ ẻo
1798
+ ẹo
1799
+ ép
1800
+ ẹp
1801
+ ét
1802
+ ết
1803
+ ệt
1804
+ êu
1805
+ ga
1806
+
1807
+
1808
+
1809
+ gả
1810
+ gạ
1811
+ gác
1812
+ gặc
1813
+ gấc
1814
+ gạc
1815
+ gách
1816
+ gạch
1817
+ gai
1818
+ gái
1819
+ gài
1820
+ gãi
1821
+ gại
1822
+ gam
1823
+ găm
1824
+ gắm
1825
+ gằm
1826
+ gặm
1827
+ gâm
1828
+ gấm
1829
+ gầm
1830
+ gẫm
1831
+ gẩm
1832
+ gậm
1833
+ gan
1834
+ gán
1835
+ gàn
1836
+ găn
1837
+ gắn
1838
+ gằn
1839
+ gặn
1840
+ gân
1841
+ gần
1842
+ gận
1843
+ gạn
1844
+ gang
1845
+ gàng
1846
+ găng
1847
+ gắng
1848
+ gẵng
1849
+ gặng
1850
+ gãng
1851
+ ganh
1852
+ gánh
1853
+ gành
1854
+ gảnh
1855
+ gạnh
1856
+ gao
1857
+ gáo
1858
+ gào
1859
+ gạo
1860
+ gáp
1861
+ gắp
1862
+ gặp
1863
+ gấp
1864
+ gập
1865
+ gát
1866
+ gắt
1867
+ gặt
1868
+ gật
1869
+ gạt
1870
+ gau
1871
+ gáu
1872
+ gàu
1873
+ gâu
1874
+ gấu
1875
+ gầu
1876
+ gẫu
1877
+ gay
1878
+ gáy
1879
+ gày
1880
+ gây
1881
+ gấy
1882
+ gầy
1883
+ gẫy
1884
+ gẩy
1885
+ gậy
1886
+ gãy
1887
+ gảy
1888
+ gạy
1889
+ gen
1890
+ ghe
1891
+ ghé
1892
+ ghè
1893
+ ghê
1894
+ ghế
1895
+ ghề
1896
+ ghẽ
1897
+ ghẻ
1898
+ ghẹ
1899
+ ghếch
1900
+ ghệch
1901
+ ghem
1902
+ ghém
1903
+ ghêm
1904
+ ghen
1905
+ ghèn
1906
+ ghẹn
1907
+ ghềnh
1908
+ ghễnh
1909
+ ghểnh
1910
+ ghẹo
1911
+ ghép
1912
+ ghét
1913
+ ghệt
1914
+ ghi
1915
+ ghì
1916
+ ghích
1917
+ ghiếc
1918
+ ghiềm
1919
+ ghiền
1920
+ ghim
1921
+ ghìm
1922
+ ghìn
1923
+ ghính
1924
+ ghình
1925
+ ghít
1926
+ ghịt
1927
+ gi
1928
+
1929
+
1930
+ gỉ
1931
+ giy
1932
+ gia
1933
+ giá
1934
+ già
1935
+ giã
1936
+ giả
1937
+ giạ
1938
+ giác
1939
+ giắc
1940
+ giặc
1941
+ giấc
1942
+ giạc
1943
+ giai
1944
+ giãi
1945
+ giải
1946
+ giại
1947
+ giam
1948
+ giám
1949
+ giàm
1950
+ giăm
1951
+ giắm
1952
+ giằm
1953
+ giặm
1954
+ giâm
1955
+ giấm
1956
+ giầm
1957
+ giẫm
1958
+ giậm
1959
+ giảm
1960
+ gian
1961
+ gián
1962
+ giàn
1963
+ giắn
1964
+ giằn
1965
+ giẳn
1966
+ giặn
1967
+ giần
1968
+ giận
1969
+ giãn
1970
+ giản
1971
+ giang
1972
+ giáng
1973
+ giàng
1974
+ giăng
1975
+ giắng
1976
+ giằng
1977
+ giảng
1978
+ gianh
1979
+ giành
1980
+ giảnh
1981
+ giao
1982
+ giáo
1983
+ giào
1984
+ giảo
1985
+ giạo
1986
+ giáp
1987
+ giấp
1988
+ giập
1989
+ giát
1990
+ giắt
1991
+ giặt
1992
+ giật
1993
+ giạt
1994
+ giau
1995
+ giàu
1996
+ giấu
1997
+ giầu
1998
+ giậu
1999
+ giảu
2000
+ giáy
2001
+ giày
2002
+ giây
2003
+ giấy
2004
+ giầy
2005
+ giẫy
2006
+ giãy
2007
+ gích
2008
+ gie
2009
+ gié
2010
+ giê
2011
+ giề
2012
+ giẻ
2013
+ giếc
2014
+ gièm
2015
+ giêm
2016
+ giếm
2017
+ gien
2018
+ giêng
2019
+ giếng
2020
+ giềng
2021
+ gieo
2022
+ giéo
2023
+ giẹo
2024
+ giép
2025
+ giẹp
2026
+ giét
2027
+ giết
2028
+ giễu
2029
+ gìm
2030
+ gin
2031
+ gìn
2032
+ gio
2033
+ gió
2034
+ giò
2035
+ giô
2036
+ giỗ
2037
+ giổ
2038
+ giỏ
2039
+ giọ
2040
+ giơ
2041
+ giờ
2042
+ giỡ
2043
+ giở
2044
+ gioàng
2045
+ gioãng
2046
+ gióc
2047
+ giốc
2048
+ giọc
2049
+ giói
2050
+ giòi
2051
+ giối
2052
+ giội
2053
+ giỏi
2054
+ giọi
2055
+ giới
2056
+ giời
2057
+ gion
2058
+ gión
2059
+ giòn
2060
+ giôn
2061
+ giỏn
2062
+ giờn
2063
+ giỡn
2064
+ giong
2065
+ gióng
2066
+ giông
2067
+ giống
2068
+ giồng
2069
+ giỏng
2070
+ giọng
2071
+ giộp
2072
+ giót
2073
+ giốt
2074
+ giọt
2075
+ gíp
2076
+ giu
2077
+ giú
2078
+ giũ
2079
+ giữ
2080
+ giử
2081
+ giua
2082
+ giũa
2083
+ giụa
2084
+ giữa
2085
+ giúc
2086
+ giục
2087
+ giúi
2088
+ giùi
2089
+ giủi
2090
+ giụi
2091
+ giùm
2092
+ giun
2093
+ giùng
2094
+ giuộc
2095
+ giuông
2096
+ giương
2097
+ giướng
2098
+ giường
2099
+ giúp
2100
+ giút
2101
+ giứt
2102
+ giựt
2103
+ go
2104
+
2105
+
2106
+ gồ
2107
+ gỗ
2108
+ gổ
2109
+ gộ
2110
+
2111
+ gọ
2112
+
2113
+ gờ
2114
+ gỡ
2115
+ gở
2116
+ góa
2117
+ góc
2118
+ gốc
2119
+ gộc
2120
+ gọc
2121
+ gói
2122
+ gòi
2123
+ gối
2124
+ gồi
2125
+ gội
2126
+ gỏi
2127
+ gọi
2128
+ gới
2129
+ gởi
2130
+ gợi
2131
+ gom
2132
+ gôm
2133
+ gốm
2134
+ gồm
2135
+ gớm
2136
+ gờm
2137
+ gon
2138
+ gòn
2139
+ gôn
2140
+ gọn
2141
+ gơn
2142
+ gờn
2143
+ gợn
2144
+ gông
2145
+ gồng
2146
+ gỏng
2147
+ gọng
2148
+ góp
2149
+ gộp
2150
+ gọp
2151
+ gót
2152
+ gột
2153
+ gọt
2154
+ gợt
2155
+ gu
2156
+
2157
+
2158
+ gụ
2159
+ gừ
2160
+ gúa
2161
+ gùa
2162
+ gủa
2163
+ gục
2164
+ gui
2165
+ gùi
2166
+ gũi
2167
+ gụi
2168
+ gửi
2169
+ gun
2170
+ gùn
2171
+ gùng
2172
+ gừng
2173
+ guốc
2174
+ guộc
2175
+ guồi
2176
+ gưởi
2177
+ g��ơm
2178
+ gườm
2179
+ gượm
2180
+ guồng
2181
+ guổng
2182
+ gương
2183
+ gường
2184
+ gưỡng
2185
+ gượng
2186
+ guột
2187
+ gút
2188
+ gụt
2189
+ ha
2190
+
2191
+
2192
+ hả
2193
+ hạ
2194
+ hác
2195
+ hắc
2196
+ hặc
2197
+ hạc
2198
+ hách
2199
+ hạch
2200
+ hai
2201
+ hái
2202
+ hài
2203
+ hãi
2204
+ hải
2205
+ hại
2206
+ ham
2207
+ hám
2208
+ hàm
2209
+ hăm
2210
+ hằm
2211
+ hẵm
2212
+ hẳm
2213
+ hặm
2214
+ hâm
2215
+ hấm
2216
+ hầm
2217
+ hẩm
2218
+ hậm
2219
+ hãm
2220
+ hảm
2221
+ hạm
2222
+ han
2223
+ hán
2224
+ hàn
2225
+ hắn
2226
+ hằn
2227
+ hẳn
2228
+ hân
2229
+ hấn
2230
+ hận
2231
+ hãn
2232
+ hạn
2233
+ hang
2234
+ háng
2235
+ hàng
2236
+ hăng
2237
+ hắng
2238
+ hằng
2239
+ hẵng
2240
+ hấng
2241
+ hẫng
2242
+ hẩng
2243
+ hãng
2244
+ hảng
2245
+ hạng
2246
+ hanh
2247
+ hánh
2248
+ hành
2249
+ hãnh
2250
+ hảnh
2251
+ hạnh
2252
+ hao
2253
+ háo
2254
+ hào
2255
+ hão
2256
+ hảo
2257
+ hạo
2258
+ háp
2259
+ hấp
2260
+ hập
2261
+ hạp
2262
+ hat
2263
+ hát
2264
+ hắt
2265
+ hất
2266
+ hạt
2267
+ hau
2268
+ háu
2269
+ hàu
2270
+ hâu
2271
+ hấu
2272
+ hầu
2273
+ hẫu
2274
+ hẩu
2275
+ hậu
2276
+ hay
2277
+ háy
2278
+ hây
2279
+ hấy
2280
+ hầy
2281
+ hẩy
2282
+ hãy
2283
+ hảy
2284
+ he
2285
+
2286
+
2287
+
2288
+ hề
2289
+ hễ
2290
+ hể
2291
+ hệ
2292
+ hẻ
2293
+ hẹ
2294
+ héc
2295
+ hẹc
2296
+ hếch
2297
+ hệch
2298
+ hem
2299
+ hèm
2300
+ hẽm
2301
+ hẻm
2302
+ hẹm
2303
+ hen
2304
+ hén
2305
+ hèn
2306
+ hên
2307
+ hến
2308
+ hển
2309
+ hẻn
2310
+ hẹn
2311
+ heng
2312
+ hênh
2313
+ hềnh
2314
+ hểnh
2315
+ heo
2316
+ héo
2317
+ hèo
2318
+ hẻo
2319
+ hép
2320
+ hẹp
2321
+ hét
2322
+ hết
2323
+ hệt
2324
+ hẹt
2325
+ hếu
2326
+ hều
2327
+ hểu
2328
+ hi
2329
+
2330
+
2331
+
2332
+ hỉ
2333
+ hị
2334
+ hia
2335
+ hía
2336
+ hích
2337
+ hịch
2338
+ hiếc
2339
+ hiếm
2340
+ hiềm
2341
+ hiểm
2342
+ hiên
2343
+ hiến
2344
+ hiền
2345
+ hiển
2346
+ hiện
2347
+ hiêng
2348
+ hiếng
2349
+ hiếp
2350
+ hiệp
2351
+ hiệt
2352
+ hiêu
2353
+ hiếu
2354
+ hiểu
2355
+ hiệu
2356
+ him
2357
+ hĩm
2358
+ hin
2359
+ hinh
2360
+ hình
2361
+ hĩnh
2362
+ hỉnh
2363
+ híp
2364
+ hít
2365
+ hiu
2366
+ ho
2367
+
2368
+
2369
+
2370
+ hố
2371
+ hồ
2372
+ hỗ
2373
+ hổ
2374
+ hộ
2375
+ hỏ
2376
+ họ
2377
+
2378
+ hớ
2379
+ hờ
2380
+ hở
2381
+ hoa
2382
+ hóa
2383
+ hòa
2384
+ hỏa
2385
+ họa
2386
+ hoác
2387
+ hoắc
2388
+ hoặc
2389
+ hoạch
2390
+ hoai
2391
+ hoài
2392
+ hoải
2393
+ hoại
2394
+ hoăm
2395
+ hoắm
2396
+ hoan
2397
+ hoán
2398
+ hoàn
2399
+ hoằn
2400
+ hoẳn
2401
+ hoặn
2402
+ hoãn
2403
+ hoản
2404
+ hoạn
2405
+ hoang
2406
+ hoáng
2407
+ hoàng
2408
+ hoăng
2409
+ hoằng
2410
+ hoẵng
2411
+ hoãng
2412
+ hoảng
2413
+ hoanh
2414
+ hoánh
2415
+ hoành
2416
+ hoảnh
2417
+ hoạnh
2418
+ hoắt
2419
+ hoạt
2420
+ hoay
2421
+ hoáy
2422
+ hóc
2423
+ hốc
2424
+ hộc
2425
+ học
2426
+ hoe
2427
+ hòe
2428
+ họe
2429
+ hoen
2430
+ hoẻn
2431
+ hoét
2432
+ hoẹt
2433
+ hoi
2434
+ hói
2435
+ hòi
2436
+ hôi
2437
+ hối
2438
+ hồi
2439
+ hổi
2440
+ hội
2441
+ hỏi
2442
+ hơi
2443
+ hới
2444
+ hời
2445
+ hỡi
2446
+ hởi
2447
+ hợi
2448
+ hom
2449
+ hóm
2450
+ hòm
2451
+ hôm
2452
+ hỗm
2453
+ hổm
2454
+ hõm
2455
+ hỏm
2456
+ hớm
2457
+ hờm
2458
+ hỡm
2459
+ hợm
2460
+ hon
2461
+ hón
2462
+ hòn
2463
+ hôn
2464
+ hồn
2465
+ hỗn
2466
+ hổn
2467
+ hộn
2468
+ hỏn
2469
+ hơn
2470
+ hớn
2471
+ hờn
2472
+ hởn
2473
+ hong
2474
+ hóng
2475
+ hòng
2476
+ hông
2477
+ hống
2478
+ hồng
2479
+ hỗng
2480
+ hổng
2481
+ hỏng
2482
+ họng
2483
+ hóp
2484
+ hốp
2485
+ hộp
2486
+ họp
2487
+ hớp
2488
+ hợp
2489
+ hót
2490
+ hốt
2491
+ hột
2492
+ hớt
2493
+ hợt
2494
+ hu
2495
+
2496
+
2497
+
2498
+ hủ
2499
+ hụ
2500
+
2501
+ hứ
2502
+ hừ
2503
+ hữ
2504
+ hử
2505
+ hự
2506
+ hùa
2507
+ hứa
2508
+ huân
2509
+ huấn
2510
+ huầy
2511
+ húc
2512
+ hục
2513
+ hức
2514
+ hực
2515
+ huê
2516
+ huế
2517
+ huề
2518
+ huệ
2519
+ huếch
2520
+ huênh
2521
+ hui
2522
+ húi
2523
+ hùi
2524
+ hủi
2525
+ hụi
2526
+ húm
2527
+ hùm
2528
+ hũm
2529
+ hủm
2530
+ hụm
2531
+ hưm
2532
+ hừm
2533
+ hun
2534
+ hùn
2535
+ hủn
2536
+ hung
2537
+ húng
2538
+ hùng
2539
+ hủng
2540
+ hưng
2541
+ hứng
2542
+ hừng
2543
+ hững
2544
+ hửng
2545
+ huơ
2546
+ hước
2547
+ huôi
2548
+ hươm
2549
+ hướm
2550
+ hườm
2551
+ hượm
2552
+ hươn
2553
+ huống
2554
+ hương
2555
+ hướng
2556
+ hường
2557
+ hưởng
2558
+ huốt
2559
+ hươu
2560
+ húp
2561
+ hụp
2562
+ hút
2563
+ hụt
2564
+ hưu
2565
+ hữu
2566
+ hửu
2567
+ hựu
2568
+ huy
2569
+ húy
2570
+ hủy
2571
+ huých
2572
+ huỵch
2573
+ huyên
2574
+ huyến
2575
+ huyền
2576
+ huyễn
2577
+ huyện
2578
+ huyết
2579
+ huyệt
2580
+ huyn
2581
+ huynh
2582
+ huỳnh
2583
+ huýt
2584
+ hy
2585
+
2586
+ hỷ
2587
+ i
2588
+ í
2589
+ ì
2590
+ ĩ
2591
+
2592
+ ia
2593
+ ỉa
2594
+ ích
2595
+ ịch
2596
+
2597
+ iết
2598
+ iêu
2599
+ im
2600
+ ỉm
2601
+ in
2602
+ ín
2603
+ ìn
2604
+ ỉn
2605
+ ịn
2606
+ inh
2607
+ ình
2608
+ ĩnh
2609
+ ít
2610
+ ịt
2611
+ iu
2612
+ ỉu
2613
+ k
2614
+ ka
2615
+ kạn
2616
+ kao
2617
+ ke
2618
+
2619
+
2620
+
2621
+ kế
2622
+ kề
2623
+ kể
2624
+ kệ
2625
+ kẽ
2626
+ kẻ
2627
+ kẹ
2628
+ kéc
2629
+ kếch
2630
+ kệch
2631
+ kem
2632
+ kém
2633
+ kèm
2634
+ kềm
2635
+ kẽm
2636
+ kẻm
2637
+ ken
2638
+ kén
2639
+ kèn
2640
+ kền
2641
+ kện
2642
+ kẹn
2643
+ keng
2644
+ kẻng
2645
+ kênh
2646
+ kềnh
2647
+ kễnh
2648
+ kệnh
2649
+ keo
2650
+ kéo
2651
+ kèo
2652
+ kẽo
2653
+ kẻo
2654
+ kẹo
2655
+ kép
2656
+ kếp
2657
+ kẹp
2658
+ két
2659
+ kết
2660
+ kẹt
2661
+ kêu
2662
+ kếu
2663
+ kều
2664
+ kha
2665
+ khá
2666
+ khà
2667
+ khả
2668
+ khác
2669
+ khắc
2670
+ khặc
2671
+ khấc
2672
+ khậc
2673
+ khạc
2674
+ khách
2675
+ khạch
2676
+ khai
2677
+ khái
2678
+ khải
2679
+ kham
2680
+ khám
2681
+ khăm
2682
+ khắm
2683
+ khẳm
2684
+ khâm
2685
+ khấm
2686
+ khậm
2687
+ khảm
2688
+ khan
2689
+ khán
2690
+ khàn
2691
+ khăn
2692
+ khằn
2693
+ khân
2694
+ khấn
2695
+ khần
2696
+ khẫn
2697
+ khẩn
2698
+ khản
2699
+ khang
2700
+ kháng
2701
+ khàng
2702
+ khăng
2703
+ khắng
2704
+ khằng
2705
+ khẵng
2706
+ khẳng
2707
+ khâng
2708
+ khầng
2709
+ khảng
2710
+ khạng
2711
+ khanh
2712
+ khánh
2713
+ khành
2714
+ khảnh
2715
+ khao
2716
+ kháo
2717
+ khảo
2718
+ khạo
2719
+ kháp
2720
+ khắp
2721
+ khấp
2722
+ khập
2723
+ khạp
2724
+ khát
2725
+ khắt
2726
+ khất
2727
+ khật
2728
+ khau
2729
+ kháu
2730
+ khâu
2731
+ khấu
2732
+ khẩu
2733
+ khay
2734
+ kháy
2735
+ khày
2736
+ khây
2737
+ khẩy
2738
+ khảy
2739
+ khe
2740
+ khé
2741
+ khè
2742
+ khê
2743
+ khế
2744
+ khề
2745
+ khệ
2746
+ khẽ
2747
+ khẻ
2748
+ khẹc
2749
+ khệch
2750
+ khem
2751
+ khen
2752
+ khén
2753
+ khèn
2754
+ khèng
2755
+ khênh
2756
+ khềnh
2757
+ khễnh
2758
+ khểnh
2759
+ khệnh
2760
+ kheo
2761
+ khéo
2762
+ khèo
2763
+ khẻo
2764
+ khép
2765
+ khét
2766
+ khẹt
2767
+ khêu
2768
+ khều
2769
+ khi
2770
+ khí
2771
+ khì
2772
+ khỉ
2773
+ khị
2774
+ khía
2775
+ khịa
2776
+ khích
2777
+ khiêm
2778
+ khiếm
2779
+ khiên
2780
+ khiến
2781
+ khiền
2782
+ khiển
2783
+ khiêng
2784
+ khiễng
2785
+ khiểng
2786
+ khiếp
2787
+ khiết
2788
+ khiêu
2789
+ khiếu
2790
+ khim
2791
+ khin
2792
+ khín
2793
+ khìn
2794
+ khinh
2795
+ khĩnh
2796
+ khỉnh
2797
+ khít
2798
+ khịt
2799
+ khiu
2800
+ khíu
2801
+ khịu
2802
+ kho
2803
+ khó
2804
+ khò
2805
+ khô
2806
+ khố
2807
+ khỗ
2808
+ khổ
2809
+ khơ
2810
+ khớ
2811
+ khờ
2812
+ khoa
2813
+ khóa
2814
+ khỏa
2815
+ khoác
2816
+ khoai
2817
+ khoái
2818
+ khoải
2819
+ khoăm
2820
+ khoắm
2821
+ khoằm
2822
+ khoặm
2823
+ khoan
2824
+ khoán
2825
+ khoăn
2826
+ khoắn
2827
+ khoản
2828
+ khoang
2829
+ khoáng
2830
+ khoắng
2831
+ khoảng
2832
+ khoạng
2833
+ khoanh
2834
+ khoành
2835
+ khoảnh
2836
+ khoào
2837
+ khoát
2838
+ khoắt
2839
+ khoáy
2840
+ khóc
2841
+ khốc
2842
+ khọc
2843
+ khoe
2844
+ khóe
2845
+ khòe
2846
+ khỏe
2847
+ khoẻ
2848
+ khoen
2849
+ khoén
2850
+ khoeo
2851
+ khoèo
2852
+ khoẻo
2853
+ khoét
2854
+ khoi
2855
+ khói
2856
+ khôi
2857
+ khối
2858
+ khỏi
2859
+ khơi
2860
+ khới
2861
+ khỡi
2862
+ khởi
2863
+ khom
2864
+ khóm
2865
+ khòm
2866
+ khọm
2867
+ khòn
2868
+ khôn
2869
+ khốn
2870
+ khòng
2871
+ không
2872
+ khống
2873
+ khổng
2874
+ khỏng
2875
+ khớp
2876
+ khốt
2877
+ khột
2878
+ khọt
2879
+ khu
2880
+ khú
2881
+ khù
2882
+ khủ
2883
+ khụ
2884
+ khư
2885
+ khứ
2886
+ khừ
2887
+ khử
2888
+ khự
2889
+ khua
2890
+ khứa
2891
+ khuân
2892
+ khuẩn
2893
+ khuắng
2894
+ khuâng
2895
+ khuất
2896
+ khuây
2897
+ khuấy
2898
+ khúc
2899
+ khục
2900
+ khuê
2901
+ khuếch
2902
+ khuều
2903
+ khui
2904
+ khum
2905
+ khúm
2906
+ khụm
2907
+ khung
2908
+ khúng
2909
+ khùng
2910
+ khủng
2911
+ khưng
2912
+ khứng
2913
+ khừng
2914
+ khựng
2915
+ khuơ
2916
+ khuờ
2917
+ khước
2918
+ khươi
2919
+ khươm
2920
+ khuôn
2921
+ khươn
2922
+ khuông
2923
+ khương
2924
+ khường
2925
+ khưỡng
2926
+ khưởng
2927
+ khướt
2928
+ khượt
2929
+ khướu
2930
+ khụt
2931
+ khưu
2932
+ khứu
2933
+ khuy
2934
+ khụy
2935
+ khuya
2936
+ khuyên
2937
+ khuyến
2938
+ khuyễn
2939
+ khuyển
2940
+ khuyết
2941
+ khuynh
2942
+ khuỳnh
2943
+ khuỷnh
2944
+ khuýp
2945
+ khuỷu
2946
+ khuỵu
2947
+ ki
2948
+
2949
+
2950
+
2951
+ kỉ
2952
+ kị
2953
+ kia
2954
+ kìa
2955
+ kịa
2956
+ kích
2957
+ kịch
2958
+ kiêm
2959
+ kiếm
2960
+ kiềm
2961
+ kiểm
2962
+ kiệm
2963
+ kiên
2964
+ kiến
2965
+ kiền
2966
+ kiển
2967
+ kiện
2968
+ kiêng
2969
+ kiếng
2970
+ kiềng
2971
+ kiễng
2972
+ kiểng
2973
+ kiếp
2974
+ kiết
2975
+ kiệt
2976
+ kiêu
2977
+ kiếu
2978
+ kiều
2979
+ kiểu
2980
+ kiệu
2981
+ kim
2982
+ kìm
2983
+ kin
2984
+ kín
2985
+ kìn
2986
+ kĩn
2987
+ kinh
2988
+ kính
2989
+ kình
2990
+ kỉnh
2991
+ kíp
2992
+ kịp
2993
+ kít
2994
+ kịt
2995
+ kiu
2996
+ kĩu
2997
+ kon
2998
+ kôn
2999
+ kông
3000
+ ky
3001
+
3002
+ kỳ
3003
+ kỹ
3004
+ kỷ
3005
+ kỵ
3006
+ la
3007
+
3008
+
3009
+
3010
+ lả
3011
+ lạ
3012
+ lác
3013
+ lắc
3014
+ lặc
3015
+ lấc
3016
+ lạc
3017
+ lách
3018
+ lạch
3019
+ lai
3020
+ lái
3021
+ lài
3022
+ lãi
3023
+ lải
3024
+ lại
3025
+ lắk
3026
+ lam
3027
+ làm
3028
+ lăm
3029
+ lắm
3030
+ lằm
3031
+ lẳm
3032
+ lặm
3033
+ lâm
3034
+ lấm
3035
+ lầm
3036
+ lẫm
3037
+ lẩm
3038
+ lãm
3039
+ lảm
3040
+ lạm
3041
+ lan
3042
+ lán
3043
+ làn
3044
+ lăn
3045
+ lằn
3046
+ lẳn
3047
+ lặn
3048
+ lân
3049
+ lấn
3050
+ lần
3051
+ lẫn
3052
+ lẩn
3053
+ lận
3054
+ lãn
3055
+ lạn
3056
+ lang
3057
+ láng
3058
+ làng
3059
+ lăng
3060
+ lắng
3061
+ lằng
3062
+ lẵng
3063
+ lẳng
3064
+ lặng
3065
+ lâng
3066
+ lãng
3067
+ lảng
3068
+ lạng
3069
+ lanh
3070
+ lánh
3071
+ lành
3072
+ lãnh
3073
+ lảnh
3074
+ lạnh
3075
+ lao
3076
+ láo
3077
+ lào
3078
+ lão
3079
+ lảo
3080
+ lạo
3081
+ láp
3082
+ lắp
3083
+ lặp
3084
+ lấp
3085
+ lập
3086
+ lạp
3087
+ lát
3088
+ lắt
3089
+ lặt
3090
+ lất
3091
+ lật
3092
+ lạt
3093
+ lau
3094
+ láu
3095
+ làu
3096
+ lâu
3097
+ lấu
3098
+ lầu
3099
+ lẩu
3100
+ lậu
3101
+ lảu
3102
+ lạu
3103
+ lay
3104
+ láy
3105
+ lày
3106
+ lây
3107
+ lấy
3108
+ lầy
3109
+ lẫy
3110
+ lẩy
3111
+ lậy
3112
+ lảy
3113
+ lạy
3114
+ le
3115
+
3116
+
3117
+
3118
+ lề
3119
+ lễ
3120
+ lể
3121
+ lệ
3122
+ lẽ
3123
+ lẻ
3124
+ lẹ
3125
+ léc
3126
+ lếc
3127
+ lếch
3128
+ lệch
3129
+ lem
3130
+ lém
3131
+ lèm
3132
+ lêm
3133
+ lẻm
3134
+ lẹm
3135
+ len
3136
+ lén
3137
+ lèn
3138
+ lên
3139
+ lến
3140
+ lẽn
3141
+ lẻn
3142
+ lẹn
3143
+ leng
3144
+ léng
3145
+ lèng
3146
+ lẻng
3147
+ lênh
3148
+ lềnh
3149
+ lệnh
3150
+ leo
3151
+ léo
3152
+ lèo
3153
+ lẽo
3154
+ lẻo
3155
+ lẹo
3156
+ lép
3157
+ lếp
3158
+ lẹp
3159
+ lét
3160
+ lết
3161
+ lệt
3162
+ lẹt
3163
+ lêu
3164
+ lếu
3165
+ lều
3166
+ lễu
3167
+ lểu
3168
+ li
3169
+
3170
+
3171
+
3172
+ lị
3173
+ lia
3174
+ lìa
3175
+ lỉa
3176
+ lịa
3177
+ lích
3178
+ lịch
3179
+ liếc
3180
+ liệc
3181
+ liêm
3182
+ liếm
3183
+ liềm
3184
+ liễm
3185
+ liệm
3186
+ liên
3187
+ liến
3188
+ liền
3189
+ liễn
3190
+ liêng
3191
+ liếng
3192
+ liềng
3193
+ liểng
3194
+ liệng
3195
+ liếp
3196
+ liệp
3197
+ liệt
3198
+ liêu
3199
+ liếu
3200
+ liều
3201
+ liễu
3202
+ liệu
3203
+ lim
3204
+ lìm
3205
+ lỉm
3206
+ lịm
3207
+ lin
3208
+ linh
3209
+ lính
3210
+ lình
3211
+ lĩnh
3212
+ lỉnh
3213
+ lịnh
3214
+ líp
3215
+ lít
3216
+ liu
3217
+ líu
3218
+ lìu
3219
+ lỉu
3220
+ lịu
3221
+ lo
3222
+
3223
+
3224
+
3225
+ lố
3226
+ lồ
3227
+ lỗ
3228
+ lổ
3229
+ lộ
3230
+
3231
+ lỏ
3232
+ lọ
3233
+
3234
+ lớ
3235
+ lờ
3236
+ lỡ
3237
+ lở
3238
+ lợ
3239
+ loa
3240
+ lóa
3241
+ lòa
3242
+ lõa
3243
+ lỏa
3244
+ loạc
3245
+ loạch
3246
+ loài
3247
+ loại
3248
+ loan
3249
+ loán
3250
+ loàn
3251
+ loăn
3252
+ loắn
3253
+ loằn
3254
+ loẳn
3255
+ loãn
3256
+ loạn
3257
+ loang
3258
+ loáng
3259
+ loàng
3260
+ loăng
3261
+ loằng
3262
+ loãng
3263
+ loảng
3264
+ loạng
3265
+ loanh
3266
+ loáo
3267
+ loát
3268
+ loắt
3269
+ loạt
3270
+ loay
3271
+ loáy
3272
+ lóc
3273
+ lốc
3274
+ lộc
3275
+ lọc
3276
+ loe
3277
+ lóe
3278
+ lòe
3279
+ lỏe
3280
+ loé
3281
+ loen
3282
+ loẻng
3283
+ loẻo
3284
+ loét
3285
+ loẹt
3286
+ loi
3287
+ lói
3288
+ lòi
3289
+ lôi
3290
+ lối
3291
+ lồi
3292
+ lỗi
3293
+ lội
3294
+ lõi
3295
+ lỏi
3296
+ lọi
3297
+ lơi
3298
+ lới
3299
+ lời
3300
+ lỡi
3301
+ lởi
3302
+ lợi
3303
+ lom
3304
+ lóm
3305
+ lòm
3306
+ lôm
3307
+ lốm
3308
+ lồm
3309
+ lỗm
3310
+ lổm
3311
+ lộm
3312
+ lõm
3313
+ lỏm
3314
+ lọm
3315
+ lơm
3316
+ lờm
3317
+ lỡm
3318
+ lởm
3319
+ lợm
3320
+ lon
3321
+ lòn
3322
+ lôn
3323
+ lốn
3324
+ lồn
3325
+ lổn
3326
+ lộn
3327
+ lỏn
3328
+ lọn
3329
+ lơn
3330
+ lớn
3331
+ lờn
3332
+ lởn
3333
+ lợn
3334
+ long
3335
+ lóng
3336
+ lòng
3337
+ lông
3338
+ lồng
3339
+ lổng
3340
+ lộng
3341
+ lõng
3342
+ lỏng
3343
+ lọng
3344
+ lóp
3345
+ lốp
3346
+ lộp
3347
+ lọp
3348
+ lớp
3349
+ lợp
3350
+ lót
3351
+ lốt
3352
+ lột
3353
+ lọt
3354
+ lớt
3355
+ lợt
3356
+ lu
3357
+
3358
+
3359
+
3360
+ lủ
3361
+ lụ
3362
+
3363
+ lừ
3364
+ lữ
3365
+ lử
3366
+ lự
3367
+ lua
3368
+ lúa
3369
+ lùa
3370
+ lũa
3371
+ lủa
3372
+ lụa
3373
+ lưa
3374
+ lứa
3375
+ lừa
3376
+ lữa
3377
+ lửa
3378
+ lựa
3379
+ luân
3380
+ luấn
3381
+ luẩn
3382
+ luận
3383
+ luật
3384
+ lúc
3385
+ lục
3386
+ lức
3387
+ lực
3388
+ luềnh
3389
+ lui
3390
+ lúi
3391
+ lùi
3392
+ lũi
3393
+ lủi
3394
+ lụi
3395
+ lum
3396
+ lúm
3397
+ lùm
3398
+ lũm
3399
+ lủm
3400
+ lụm
3401
+ lun
3402
+ lún
3403
+ lùn
3404
+ lũn
3405
+ lủn
3406
+ lụn
3407
+ lung
3408
+ lúng
3409
+ lùng
3410
+ lũng
3411
+ lủng
3412
+ lụng
3413
+ lưng
3414
+ lừng
3415
+ lững
3416
+ lửng
3417
+ lựng
3418
+ luốc
3419
+ luộc
3420
+ lược
3421
+ luồi
3422
+ lưới
3423
+ lười
3424
+ lưỡi
3425
+ lưởi
3426
+ luôm
3427
+ luộm
3428
+ lươm
3429
+ lườm
3430
+ lượm
3431
+ luôn
3432
+ luồn
3433
+ lươn
3434
+ lườn
3435
+ lượn
3436
+ luông
3437
+ luống
3438
+ luồng
3439
+ luỗng
3440
+ lương
3441
+ lướng
3442
+ lường
3443
+ lưỡng
3444
+ lưởng
3445
+ lượng
3446
+ lướp
3447
+ luốt
3448
+ lướt
3449
+ lượt
3450
+ lướu
3451
+ lúp
3452
+ lụp
3453
+ lút
3454
+ lụt
3455
+ lứt
3456
+ lưu
3457
+ lựu
3458
+ luy
3459
+ lúy
3460
+ lũy
3461
+ lụy
3462
+ luya
3463
+ luých
3464
+ luyên
3465
+ luyến
3466
+ luyện
3467
+ luyn
3468
+ luynh
3469
+ luýnh
3470
+ luỳnh
3471
+ luýt
3472
+ ly
3473
+
3474
+ lỳ
3475
+ lỵ
3476
+ ma
3477
+
3478
+
3479
+
3480
+ mả
3481
+ mạ
3482
+ mác
3483
+ mắc
3484
+ mặc
3485
+ mạc
3486
+ mách
3487
+ mạch
3488
+ mai
3489
+ mái
3490
+ mài
3491
+ mãi
3492
+ mải
3493
+ mại
3494
+ mam
3495
+ mám
3496
+ măm
3497
+ mắm
3498
+ mẵm
3499
+ mâm
3500
+ mấm
3501
+ mầm
3502
+ mẫm
3503
+ mẩm
3504
+ mậm
3505
+ man
3506
+ mán
3507
+ màn
3508
+ măn
3509
+ mắn
3510
+ mằn
3511
+ mẳn
3512
+ mặn
3513
+ mân
3514
+ mấn
3515
+ mần
3516
+ mẫn
3517
+ mẩn
3518
+ mận
3519
+ mãn
3520
+ mạn
3521
+ mang
3522
+ máng
3523
+ màng
3524
+ măng
3525
+ mắng
3526
+ mâng
3527
+ mầng
3528
+ mãng
3529
+ mảng
3530
+ mạng
3531
+ manh
3532
+ mánh
3533
+ mành
3534
+ mãnh
3535
+ mảnh
3536
+ mạnh
3537
+ mao
3538
+ máo
3539
+ mào
3540
+ mão
3541
+ mảo
3542
+ mạo
3543
+ mấp
3544
+ mập
3545
+ mạp
3546
+ mat
3547
+ mát
3548
+ mắt
3549
+ mặt
3550
+ mất
3551
+ mật
3552
+ mạt
3553
+ mau
3554
+ máu
3555
+ màu
3556
+ mâu
3557
+ mấu
3558
+ mầu
3559
+ mẫu
3560
+ mẩu
3561
+ mậu
3562
+ may
3563
+ máy
3564
+ mày
3565
+ mây
3566
+ mấy
3567
+ mầy
3568
+ mẩy
3569
+ mậy
3570
+ mảy
3571
+ mạy
3572
+ me
3573
+
3574
+
3575
+
3576
+ mế
3577
+ mề
3578
+ mễ
3579
+ mệ
3580
+ mẽ
3581
+ mẻ
3582
+ mẹ
3583
+ méc
3584
+ mẹc
3585
+ mếch
3586
+ mem
3587
+ mém
3588
+ mèm
3589
+ mềm
3590
+ men
3591
+ mén
3592
+ mèn
3593
+ mên
3594
+ mến
3595
+ mền
3596
+ mèng
3597
+ mẻng
3598
+ mênh
3599
+ mệnh
3600
+ meo
3601
+ méo
3602
+ mèo
3603
+ mẻo
3604
+ mẹo
3605
+ mép
3606
+ mẹp
3607
+ mét
3608
+ mết
3609
+ mệt
3610
+ mẹt
3611
+ mếu
3612
+ mi
3613
+
3614
+
3615
+
3616
+ mỉ
3617
+ mị
3618
+ mia
3619
+ mía
3620
+ mỉa
3621
+ míc
3622
+ mích
3623
+ mịch
3624
+ miên
3625
+ miến
3626
+ miền
3627
+ miễn
3628
+ miện
3629
+ miếng
3630
+ miềng
3631
+ miểng
3632
+ miệng
3633
+ miết
3634
+ miệt
3635
+ miêu
3636
+ miếu
3637
+ miều
3638
+ miễu
3639
+ miểu
3640
+ mim
3641
+ mím
3642
+ mĩm
3643
+ mỉm
3644
+ min
3645
+ mín
3646
+ mìn
3647
+ mịn
3648
+ minh
3649
+ mình
3650
+ mịnh
3651
+ míp
3652
+ mít
3653
+ mịt
3654
+ miu
3655
+ míu
3656
+ mìu
3657
+ mỉu
3658
+ mo
3659
+
3660
+
3661
+
3662
+ mố
3663
+ mồ
3664
+ mỗ
3665
+ mổ
3666
+ mộ
3667
+
3668
+ mỏ
3669
+ mọ
3670
+
3671
+ mớ
3672
+ mờ
3673
+ mỡ
3674
+ mở
3675
+ mợ
3676
+ moa
3677
+ móc
3678
+ mốc
3679
+ mộc
3680
+ mọc
3681
+ moi
3682
+ mói
3683
+ mòi
3684
+ môi
3685
+ mối
3686
+ mồi
3687
+ mỗi
3688
+ mõi
3689
+ mỏi
3690
+ mọi
3691
+ mới
3692
+ mời
3693
+ mom
3694
+ móm
3695
+ mòm
3696
+ môm
3697
+ mồm
3698
+ mõm
3699
+ mỏm
3700
+ mơm
3701
+ mớm
3702
+ mờm
3703
+ mon
3704
+ món
3705
+ mòn
3706
+ môn
3707
+ mồn
3708
+ mọn
3709
+ mơn
3710
+ mớn
3711
+ mởn
3712
+ mong
3713
+ móng
3714
+ mòng
3715
+ mông
3716
+ mống
3717
+ mồng
3718
+ mổng
3719
+ mộng
3720
+ mỏng
3721
+ mọng
3722
+ móp
3723
+ mọp
3724
+ mớp
3725
+ mợp
3726
+ mót
3727
+ mốt
3728
+ một
3729
+ mọt
3730
+ mớt
3731
+ mu
3732
+
3733
+
3734
+
3735
+ mủ
3736
+ mụ
3737
+ mự
3738
+ mua
3739
+ múa
3740
+ mùa
3741
+ mủa
3742
+ mưa
3743
+ mứa
3744
+ mừa
3745
+ mửa
3746
+ mựa
3747
+ múc
3748
+ mục
3749
+ mức
3750
+ mực
3751
+ mui
3752
+ múi
3753
+ mùi
3754
+ mũi
3755
+ mủi
3756
+ mụi
3757
+ mum
3758
+ múm
3759
+ mũm
3760
+ mủm
3761
+ mun
3762
+ mún
3763
+ mùn
3764
+ mũn
3765
+ mủn
3766
+ mụn
3767
+ mung
3768
+ múng
3769
+ mùng
3770
+ mủng
3771
+ mưng
3772
+ mừng
3773
+ mửng
3774
+ mược
3775
+ muôi
3776
+ muối
3777
+ muồi
3778
+ muỗi
3779
+ muội
3780
+ mươi
3781
+ mười
3782
+ mưởi
3783
+ muồm
3784
+ muỗm
3785
+ muôn
3786
+ muốn
3787
+ muộn
3788
+ mươn
3789
+ mướn
3790
+ mườn
3791
+ mượn
3792
+ muông
3793
+ muống
3794
+ muồng
3795
+ muỗng
3796
+ mương
3797
+ mường
3798
+ mướp
3799
+ muốt
3800
+ mướt
3801
+ mượt
3802
+ mưỡu
3803
+ múp
3804
+ mụp
3805
+ mút
3806
+ mụt
3807
+ mứt
3808
+ mưu
3809
+ mứu
3810
+ muy
3811
+ my
3812
+ mỳ
3813
+ mỹ
3814
+ mỵ
3815
+ na
3816
+
3817
+
3818
+
3819
+ nả
3820
+ nạ
3821
+ nác
3822
+ nắc
3823
+ nặc
3824
+ nấc
3825
+ nạc
3826
+ nách
3827
+ nai
3828
+ nái
3829
+ nài
3830
+ nải
3831
+ nại
3832
+ nam
3833
+ nám
3834
+ năm
3835
+ nắm
3836
+ nằm
3837
+ nặm
3838
+ nâm
3839
+ nấm
3840
+ nầm
3841
+ nẫm
3842
+ nẩm
3843
+ nậm
3844
+ nạm
3845
+ nan
3846
+ nán
3847
+ nàn
3848
+ năn
3849
+ nắn
3850
+ nằn
3851
+ nặn
3852
+ nân
3853
+ nấn
3854
+ nần
3855
+ nẫn
3856
+ nản
3857
+ nạn
3858
+ nang
3859
+ náng
3860
+ nàng
3861
+ năng
3862
+ nắng
3863
+ nằng
3864
+ nẵng
3865
+ nặng
3866
+ nâng
3867
+ nấng
3868
+ nẫng
3869
+ nậng
3870
+ nạng
3871
+ nanh
3872
+ nánh
3873
+ nành
3874
+ nạnh
3875
+ nao
3876
+ náo
3877
+ nào
3878
+ não
3879
+ nảo
3880
+ nạo
3881
+ náp
3882
+ nắp
3883
+ nấp
3884
+ nập
3885
+ nạp
3886
+ nát
3887
+ nạt
3888
+ nau
3889
+ náu
3890
+ nâu
3891
+ nấu
3892
+ nẫu
3893
+ nậu
3894
+ nay
3895
+ náy
3896
+ này
3897
+ nây
3898
+ nấy
3899
+ nầy
3900
+ nẫy
3901
+ nẩy
3902
+ nậy
3903
+ nãy
3904
+ nảy
3905
+ nạy
3906
+ ne
3907
+
3908
+
3909
+
3910
+ nề
3911
+ nể
3912
+ nệ
3913
+ nẻ
3914
+ nẹ
3915
+ nem
3916
+ ném
3917
+ nêm
3918
+ nếm
3919
+ nềm
3920
+ nệm
3921
+ nen
3922
+ nén
3923
+ nên
3924
+ nến
3925
+ nền
3926
+ nện
3927
+ nênh
3928
+ neo
3929
+ néo
3930
+ nèo
3931
+ nẻo
3932
+ nép
3933
+ nếp
3934
+ nệp
3935
+ nẹp
3936
+ nét
3937
+ nết
3938
+ nẹt
3939
+ nêu
3940
+ nếu
3941
+ nga
3942
+ ngà
3943
+ ngã
3944
+ ngả
3945
+ ngác
3946
+ ngắc
3947
+ ngấc
3948
+ ngạc
3949
+ ngách
3950
+ ngạch
3951
+ ngai
3952
+ ngái
3953
+ ngài
3954
+ ngãi
3955
+ ngải
3956
+ ngại
3957
+ ngàm
3958
+ ngăm
3959
+ ngắm
3960
+ ngằm
3961
+ ngâm
3962
+ ngấm
3963
+ ngầm
3964
+ ngẫm
3965
+ ngẩm
3966
+ ngậm
3967
+ ngan
3968
+ ngán
3969
+ ngàn
3970
+ ngăn
3971
+ ngắn
3972
+ ngằn
3973
+ ngẵn
3974
+ ngẳn
3975
+ ngân
3976
+ ngấn
3977
+ ngần
3978
+ ngẫn
3979
+ ngẩn
3980
+ ngận
3981
+ ngạn
3982
+ ngang
3983
+ ngáng
3984
+ ngàng
3985
+ ngẵng
3986
+ ngẳng
3987
+ ngẩng
3988
+ ngãng
3989
+ ngảng
3990
+ ngành
3991
+ ngảnh
3992
+ ngạnh
3993
+ ngao
3994
+ ngáo
3995
+ ngào
3996
+ ngão
3997
+ ngạo
3998
+ ngáp
3999
+ ngấp
4000
+ ngập
4001
+ ngát
4002
+ ngắt
4003
+ ngặt
4004
+ ngất
4005
+ ngật
4006
+ ngạt
4007
+ ngau
4008
+ ngáu
4009
+ ngâu
4010
+ ngấu
4011
+ ngầu
4012
+ ngẫu
4013
+ ngậu
4014
+ ngay
4015
+ ngáy
4016
+ ngày
4017
+ ngây
4018
+ ngấy
4019
+ ngầy
4020
+ ngẩy
4021
+ ngậy
4022
+ ngét
4023
+ ngễu
4024
+ nghe
4025
+ nghé
4026
+ nghè
4027
+ nghê
4028
+ nghề
4029
+ nghễ
4030
+ nghể
4031
+ nghệ
4032
+ nghẹ
4033
+ nghếch
4034
+ nghệch
4035
+ nghen
4036
+ nghén
4037
+ nghèn
4038
+ nghến
4039
+ nghền
4040
+ nghển
4041
+ nghện
4042
+ nghẽn
4043
+ nghẻn
4044
+ nghẹn
4045
+ nghêng
4046
+ nghênh
4047
+ nghềnh
4048
+ nghễnh
4049
+ nghểnh
4050
+ ngheo
4051
+ nghèo
4052
+ nghẽo
4053
+ nghẻo
4054
+ nghẹo
4055
+ nghét
4056
+ nghệt
4057
+ nghẹt
4058
+ nghêu
4059
+ nghều
4060
+ nghễu
4061
+ nghểu
4062
+ nghệu
4063
+ nghi
4064
+ nghí
4065
+ nghì
4066
+ nghĩ
4067
+ nghỉ
4068
+ nghị
4069
+ nghia
4070
+ nghía
4071
+ nghĩa
4072
+ nghịch
4073
+ nghiêm
4074
+ nghiễm
4075
+ nghiệm
4076
+ nghiên
4077
+ nghiến
4078
+ nghiền
4079
+ nghiện
4080
+ nghiêng
4081
+ nghiệp
4082
+ nghiệt
4083
+ nghiêu
4084
+ nghiễu
4085
+ nghiểu
4086
+ nghim
4087
+ nghỉm
4088
+ nghìn
4089
+ nghỉn
4090
+ nghinh
4091
+ nghĩnh
4092
+ nghỉnh
4093
+ nghít
4094
+ nghịt
4095
+ nghiu
4096
+ nghỉu
4097
+ nghịu
4098
+ nghoèo
4099
+ ngía
4100
+ ngịu
4101
+ ngó
4102
+ ngò
4103
+ ngô
4104
+ ngố
4105
+ ngồ
4106
+ ngỗ
4107
+ ngổ
4108
+ ngộ
4109
+ ngõ
4110
+ ngỏ
4111
+ ngọ
4112
+ ngơ
4113
+ ngớ
4114
+ ngờ
4115
+ ngỡ
4116
+ ngợ
4117
+ ngoa
4118
+ ngõa
4119
+ ngọa
4120
+ ngoác
4121
+ ngoắc
4122
+ ngoặc
4123
+ ngoạc
4124
+ ngoách
4125
+ ngoạch
4126
+ ngoai
4127
+ ngoái
4128
+ ngoài
4129
+ ngoải
4130
+ ngoại
4131
+ ngoam
4132
+ ngoàm
4133
+ ngoằm
4134
+ ngoặm
4135
+ ngoảm
4136
+ ngoạm
4137
+ ngoan
4138
+ ngoăn
4139
+ ngoằn
4140
+ ngoẳn
4141
+ ngoãn
4142
+ ngoạn
4143
+ ngoang
4144
+ ngoăng
4145
+ ngoằng
4146
+ ngoẵng
4147
+ ngoẳng
4148
+ ngoảng
4149
+ ngoảnh
4150
+ ngoáo
4151
+ ngoào
4152
+ ngoáp
4153
+ ngoạp
4154
+ ngoắt
4155
+ ngoặt
4156
+ ngoay
4157
+ ngoáy
4158
+ ngoẩy
4159
+ ngoảy
4160
+ ngoạy
4161
+ ngóc
4162
+ ngốc
4163
+ ngộc
4164
+ ngọc
4165
+ ngoe
4166
+ ngóe
4167
+ ngoem
4168
+ ngoém
4169
+ ngoẻm
4170
+ ngoen
4171
+ ngoén
4172
+ ngoẻn
4173
+ ngoeo
4174
+ ngoéo
4175
+ ngoèo
4176
+ ngoẻo
4177
+ ngoẹo
4178
+ ngoét
4179
+ ngoi
4180
+ ngói
4181
+ ngòi
4182
+ ngôi
4183
+ ngồi
4184
+ ngõi
4185
+ ngơi
4186
+ ngời
4187
+ ngỡi
4188
+ ngởi
4189
+ ngợi
4190
+ ngóm
4191
+ ngòm
4192
+ ngồm
4193
+ ngổm
4194
+ ngỏm
4195
+ ngơm
4196
+ ngờm
4197
+ ngợm
4198
+ ngon
4199
+ ngón
4200
+ ngòn
4201
+ ngôn
4202
+ ngốn
4203
+ ngồn
4204
+ ngỗn
4205
+ ngổn
4206
+ ngộn
4207
+ ngỏn
4208
+ ngọn
4209
+ ngơn
4210
+ ngớn
4211
+ ngỡn
4212
+ ngởn
4213
+ ngong
4214
+ ngóng
4215
+ ngòng
4216
+ ngông
4217
+ ngồng
4218
+ ngỗng
4219
+ ngổng
4220
+ ngõng
4221
+ ngỏng
4222
+ ngọng
4223
+ ngóp
4224
+ ngộp
4225
+ ngớp
4226
+ ngợp
4227
+ ngót
4228
+ ngốt
4229
+ ngột
4230
+ ngọt
4231
+ ngớt
4232
+ ngu
4233
+ ngú
4234
+ ngù
4235
+ ngũ
4236
+ ngủ
4237
+ ngụ
4238
+ ngư
4239
+ ngứ
4240
+ ngừ
4241
+ ngữ
4242
+ ngự
4243
+ ngụa
4244
+ ngưa
4245
+ ngứa
4246
+ ngừa
4247
+ ngửa
4248
+ ngựa
4249
+ nguây
4250
+ nguầy
4251
+ nguẩy
4252
+ nguậy
4253
+ ngúc
4254
+ ngục
4255
+ ngực
4256
+ nguếch
4257
+ nguệch
4258
+ ngùi
4259
+ ngủi
4260
+ ngửi
4261
+ ngúm
4262
+ ngủm
4263
+ ngụm
4264
+ ngun
4265
+ ngún
4266
+ ngùn
4267
+ ngũn
4268
+ ngủn
4269
+ ngụn
4270
+ ngúng
4271
+ ngùng
4272
+ ngũng
4273
+ ngủng
4274
+ ngưng
4275
+ ngứng
4276
+ ngừng
4277
+ ngửng
4278
+ ngước
4279
+ ngược
4280
+ nguôi
4281
+ nguồi
4282
+ nguội
4283
+ ngươi
4284
+ người
4285
+ ngưỡi
4286
+ nguồn
4287
+ ngường
4288
+ ngưỡng
4289
+ ngưởng
4290
+ ngượng
4291
+ ngụp
4292
+ ngút
4293
+ ngụt
4294
+ ngưu
4295
+ nguy
4296
+ ngụy
4297
+ nguých
4298
+ nguyên
4299
+ nguyến
4300
+ nguyền
4301
+ nguyễn
4302
+ nguyện
4303
+ nguyệt
4304
+ nguýt
4305
+ nguỷu
4306
+ nha
4307
+ nhá
4308
+ nhà
4309
+ nhã
4310
+ nhả
4311
+ nhạ
4312
+ nhác
4313
+ nhắc
4314
+ nhấc
4315
+ nhạc
4316
+ nhách
4317
+ nhai
4318
+ nhái
4319
+ nhài
4320
+ nhãi
4321
+ nhải
4322
+ nhại
4323
+ nham
4324
+ nhám
4325
+ nhàm
4326
+ nhăm
4327
+ nhắm
4328
+ nhằm
4329
+ nhặm
4330
+ nhâm
4331
+ nhấm
4332
+ nhầm
4333
+ nhẫm
4334
+ nhẩm
4335
+ nhậm
4336
+ nhảm
4337
+ nhan
4338
+ nhàn
4339
+ nhăn
4340
+ nhắn
4341
+ nhằn
4342
+ nhẵn
4343
+ nh���n
4344
+ nhặn
4345
+ nhân
4346
+ nhấn
4347
+ nhần
4348
+ nhẫn
4349
+ nhẩn
4350
+ nhận
4351
+ nhãn
4352
+ nhản
4353
+ nhạn
4354
+ nhang
4355
+ nháng
4356
+ nhàng
4357
+ nhăng
4358
+ nhắng
4359
+ nhằng
4360
+ nhẵng
4361
+ nhẳng
4362
+ nhặng
4363
+ nhâng
4364
+ nhãng
4365
+ nhạng
4366
+ nhanh
4367
+ nhánh
4368
+ nhành
4369
+ nhảnh
4370
+ nhạnh
4371
+ nhao
4372
+ nháo
4373
+ nhào
4374
+ nhão
4375
+ nhạo
4376
+ nháp
4377
+ nhắp
4378
+ nhấp
4379
+ nhập
4380
+ nhạp
4381
+ nhát
4382
+ nhắt
4383
+ nhặt
4384
+ nhất
4385
+ nhật
4386
+ nhạt
4387
+ nhau
4388
+ nháu
4389
+ nhàu
4390
+ nhâu
4391
+ nhầu
4392
+ nhẩu
4393
+ nhậu
4394
+ nhảu
4395
+ nhay
4396
+ nháy
4397
+ nhày
4398
+ nhây
4399
+ nhấy
4400
+ nhầy
4401
+ nhẫy
4402
+ nhẩy
4403
+ nhậy
4404
+ nhảy
4405
+ nhạy
4406
+ nhe
4407
+ nhé
4408
+ nhè
4409
+ nhê
4410
+ nhễ
4411
+ nhể
4412
+ nhẽ
4413
+ nhẹ
4414
+ nhếch
4415
+ nhệch
4416
+ nhem
4417
+ nhém
4418
+ nhèm
4419
+ nhẻm
4420
+ nhẹm
4421
+ nhen
4422
+ nhén
4423
+ nhèn
4424
+ nhện
4425
+ nhẹn
4426
+ nhênh
4427
+ nhếnh
4428
+ nhềnh
4429
+ nheo
4430
+ nhéo
4431
+ nhèo
4432
+ nhẽo
4433
+ nhẻo
4434
+ nhẹo
4435
+ nhép
4436
+ nhẹp
4437
+ nhét
4438
+ nhết
4439
+ nhệt
4440
+ nhẹt
4441
+ nhếu
4442
+ nhểu
4443
+ nhệu
4444
+ nhi
4445
+ nhí
4446
+ nhì
4447
+ nhĩ
4448
+ nhỉ
4449
+ nhị
4450
+ nhía
4451
+ nhích
4452
+ nhiếc
4453
+ nhiễm
4454
+ nhiệm
4455
+ nhiên
4456
+ nhiễn
4457
+ nhiếp
4458
+ nhiệt
4459
+ nhiêu
4460
+ nhiều
4461
+ nhiễu
4462
+ nhiệu
4463
+ nhím
4464
+ nhín
4465
+ nhìn
4466
+ nhịn
4467
+ nhinh
4468
+ nhính
4469
+ nhỉnh
4470
+ nhíp
4471
+ nhịp
4472
+ nhít
4473
+ nhịt
4474
+ nhiu
4475
+ nhíu
4476
+ nhỉu
4477
+ nhịu
4478
+ nho
4479
+ nhó
4480
+ nhò
4481
+ nhô
4482
+ nhố
4483
+ nhổ
4484
+ nhõ
4485
+ nhỏ
4486
+ nhọ
4487
+ nhơ
4488
+ nhớ
4489
+ nhờ
4490
+ nhỡ
4491
+ nhở
4492
+ nhợ
4493
+ nhóa
4494
+ nhòa
4495
+ nhoai
4496
+ nhoài
4497
+ nhoàm
4498
+ nhoang
4499
+ nhoáng
4500
+ nhoàng
4501
+ nhoằng
4502
+ nhoạng
4503
+ nhoay
4504
+ nhoáy
4505
+ nhóc
4506
+ nhốc
4507
+ nhọc
4508
+ nhoe
4509
+ nhóe
4510
+ nhòe
4511
+ nhoen
4512
+ nhoèn
4513
+ nhoẻn
4514
+ nhoét
4515
+ nhoẹt
4516
+ nhoi
4517
+ nhói
4518
+ nhòi
4519
+ nhôi
4520
+ nhối
4521
+ nhồi
4522
+ nhội
4523
+ nhõi
4524
+ nhơi
4525
+ nhời
4526
+ nhởi
4527
+ nhom
4528
+ nhóm
4529
+ nhòm
4530
+ nhôm
4531
+ nhồm
4532
+ nhổm
4533
+ nhộm
4534
+ nhõm
4535
+ nhỏm
4536
+ nhơm
4537
+ nhớm
4538
+ nhờm
4539
+ nhởm
4540
+ nhon
4541
+ nhón
4542
+ nhôn
4543
+ nhốn
4544
+ nhồn
4545
+ nhổn
4546
+ nhộn
4547
+ nhõn
4548
+ nhỏn
4549
+ nhọn
4550
+ nhơn
4551
+ nhớn
4552
+ nhờn
4553
+ nhỡn
4554
+ nhởn
4555
+ nhợn
4556
+ nhong
4557
+ nhóng
4558
+ nhòng
4559
+ nhông
4560
+ nhồng
4561
+ nhổng
4562
+ nhộng
4563
+ nhõng
4564
+ nhỏng
4565
+ nhóp
4566
+ nhốp
4567
+ nhớp
4568
+ nhợp
4569
+ nhót
4570
+ nhốt
4571
+ nhột
4572
+ nhọt
4573
+ nhớt
4574
+ nhợt
4575
+ nhu
4576
+ nhú
4577
+ nhù
4578
+ nhũ
4579
+ nhủ
4580
+ nhụ
4581
+ như
4582
+ nhứ
4583
+ nhừ
4584
+ nhữ
4585
+ nhử
4586
+ nhự
4587
+ nhúa
4588
+ nhụa
4589
+ nhựa
4590
+ nhuần
4591
+ nhuận
4592
+ nhúc
4593
+ nhục
4594
+ nhức
4595
+ nhuế
4596
+ nhuệ
4597
+ nhui
4598
+ nhúi
4599
+ nhùi
4600
+ nhủi
4601
+ nhụi
4602
+ nhum
4603
+ nhúm
4604
+ nhũm
4605
+ nhun
4606
+ nhún
4607
+ nhùn
4608
+ nhũn
4609
+ nhủn
4610
+ nhưn
4611
+ nhung
4612
+ nhúng
4613
+ nhùng
4614
+ nhũng
4615
+ nhủng
4616
+ nhụng
4617
+ nhưng
4618
+ những
4619
+ nhuốc
4620
+ nhược
4621
+ nhuôm
4622
+ nhuốm
4623
+ nhuồm
4624
+ nhuộm
4625
+ nhuôn
4626
+ nhuồn
4627
+ nhuộn
4628
+ nhướn
4629
+ nhương
4630
+ nhướng
4631
+ nhường
4632
+ nhưỡng
4633
+ nhượng
4634
+ nhướp
4635
+ nhuốt
4636
+ nhút
4637
+ nhụt
4638
+ nhứt
4639
+ nhựt
4640
+ nhụy
4641
+ nhuyễn
4642
+ ni
4643
+
4644
+
4645
+ nỉ
4646
+ nị
4647
+ nia
4648
+ nĩa
4649
+ ních
4650
+ nịch
4651
+ niêm
4652
+ niềm
4653
+ niệm
4654
+ niên
4655
+ niền
4656
+ niếng
4657
+ niềng
4658
+ niễng
4659
+ niết
4660
+ niêu
4661
+ niệu
4662
+ nin
4663
+ nín
4664
+ ninh
4665
+ nính
4666
+ nình
4667
+ nịnh
4668
+ níp
4669
+ nít
4670
+ nịt
4671
+ niu
4672
+ níu
4673
+ nịu
4674
+ no
4675
+
4676
+
4677
+
4678
+ nố
4679
+ nồ
4680
+ nỗ
4681
+ nổ
4682
+ nộ
4683
+
4684
+ nỏ
4685
+ nọ
4686
+
4687
+ nớ
4688
+ nờ
4689
+ nỡ
4690
+ nở
4691
+ nợ
4692
+ noãn
4693
+ noạn
4694
+ nóc
4695
+ nốc
4696
+ nộc
4697
+ nọc
4698
+ noi
4699
+ nói
4700
+ nòi
4701
+ nôi
4702
+ nối
4703
+ nồi
4704
+ nỗi
4705
+ nổi
4706
+ nội
4707
+ nỏi
4708
+ nơi
4709
+ nới
4710
+ nởi
4711
+ nom
4712
+ nòm
4713
+ nôm
4714
+ nồm
4715
+ nộm
4716
+ nỏm
4717
+ nơm
4718
+ nờm
4719
+ nỡm
4720
+ non
4721
+ nón
4722
+ nôn
4723
+ nộn
4724
+ nõn
4725
+ nọn
4726
+ nong
4727
+ nóng
4728
+ nòng
4729
+ nông
4730
+ nống
4731
+ nồng
4732
+ nỗng
4733
+ nổng
4734
+ nọng
4735
+ nóp
4736
+ nốp
4737
+ nộp
4738
+ nớp
4739
+ nợp
4740
+ nót
4741
+ nốt
4742
+ nột
4743
+ nọt
4744
+ nớt
4745
+ nu
4746
+
4747
+ nụ
4748
+
4749
+ nữ
4750
+ nự
4751
+ nua
4752
+ nủa
4753
+ nưa
4754
+ nứa
4755
+ nữa
4756
+ nửa
4757
+ nựa
4758
+ núc
4759
+ nục
4760
+ nức
4761
+ nực
4762
+ nuê
4763
+ nui
4764
+ núi
4765
+ nùi
4766
+ num
4767
+ núm
4768
+ nùn
4769
+ nung
4770
+ núng
4771
+ nùng
4772
+ nũng
4773
+ nưng
4774
+ nứng
4775
+ nừng
4776
+ nững
4777
+ nựng
4778
+ nuốc
4779
+ nuộc
4780
+ nước
4781
+ nược
4782
+ nuôi
4783
+ nuối
4784
+ nươi
4785
+ nuốm
4786
+ nườm
4787
+ nuông
4788
+ nương
4789
+ nướng
4790
+ nường
4791
+ nượp
4792
+ nuốt
4793
+ nuột
4794
+ nướu
4795
+ núp
4796
+ nút
4797
+ nụt
4798
+ nứt
4799
+ nuy
4800
+ ny
4801
+ nỷ
4802
+ o
4803
+ ó
4804
+ ò
4805
+ ô
4806
+
4807
+
4808
+
4809
+
4810
+ ơ
4811
+
4812
+
4813
+
4814
+
4815
+ oa
4816
+ òa
4817
+ oác
4818
+ oạc
4819
+ oách
4820
+ oạch
4821
+ oai
4822
+ oái
4823
+ oài
4824
+ oải
4825
+ oại
4826
+ oàm
4827
+ oăm
4828
+ oan
4829
+ oán
4830
+ oăn
4831
+ oằn
4832
+ oẳn
4833
+ oản
4834
+ oang
4835
+ oàng
4836
+ oăng
4837
+ oẳng
4838
+ oặng
4839
+ oanh
4840
+ oánh
4841
+ oành
4842
+ oảnh
4843
+ oáp
4844
+ oạp
4845
+ oát
4846
+ oắt
4847
+ oặt
4848
+ óc
4849
+ ốc
4850
+ ộc
4851
+ ọc
4852
+ oe
4853
+ óe
4854
+ ỏe
4855
+ ọe
4856
+ oéc
4857
+ oeng
4858
+ oeo
4859
+ oèo
4860
+ oét
4861
+ oi
4862
+ ói
4863
+ òi
4864
+ ôi
4865
+ ối
4866
+ ồi
4867
+ ổi
4868
+ ỏi
4869
+ ọi
4870
+ ơi
4871
+ ới
4872
+ ời
4873
+ ợi
4874
+ om
4875
+ òm
4876
+ ôm
4877
+ ốm
4878
+ ồm
4879
+ ỏm
4880
+ ớm
4881
+ ỡm
4882
+ on
4883
+ òn
4884
+ ôn
4885
+ ồn
4886
+ ổn
4887
+ ộn
4888
+ ỏn
4889
+ ơn
4890
+ ớn
4891
+ ong
4892
+ óng
4893
+ òng
4894
+ ông
4895
+ ống
4896
+ ồng
4897
+ ổng
4898
+ õng
4899
+ ỏng
4900
+ óp
4901
+ ốp
4902
+ ộp
4903
+ ọp
4904
+ ớp
4905
+ ót
4906
+ ốt
4907
+ ọt
4908
+ ớt
4909
+ ợt
4910
+ ơu
4911
+ pa
4912
+
4913
+ pả
4914
+ pác
4915
+ pắc
4916
+ pan
4917
+ păng
4918
+ panh
4919
+ pành
4920
+ pao
4921
+ páp
4922
+ pát
4923
+ pẩu
4924
+
4925
+ pen
4926
+ pềnh
4927
+ peo
4928
+ pết
4929
+ pha
4930
+ phá
4931
+ phà
4932
+ phả
4933
+ phác
4934
+ phắc
4935
+ phạc
4936
+ phách
4937
+ phạch
4938
+ phai
4939
+ phái
4940
+ phải
4941
+ pham
4942
+ phàm
4943
+ phăm
4944
+ phầm
4945
+ phẩm
4946
+ phạm
4947
+ phan
4948
+ phán
4949
+ phàn
4950
+ phăn
4951
+ phắn
4952
+ phân
4953
+ phấn
4954
+ phần
4955
+ phẫn
4956
+ phẩn
4957
+ phận
4958
+ phản
4959
+ phạn
4960
+ phang
4961
+ phàng
4962
+ phăng
4963
+ phẳng
4964
+ phảng
4965
+ phạng
4966
+ phanh
4967
+ phành
4968
+ phao
4969
+ pháo
4970
+ phào
4971
+ phạo
4972
+ pháp
4973
+ phắp
4974
+ phấp
4975
+ phập
4976
+ phát
4977
+ phắt
4978
+ phất
4979
+ phật
4980
+ phạt
4981
+ phau
4982
+ phẫu
4983
+ phay
4984
+ pháy
4985
+ phây
4986
+ phẫy
4987
+ phẩy
4988
+ phảy
4989
+ phe
4990
+ phé
4991
+ phè
4992
+ phê
4993
+ phế
4994
+ phề
4995
+ phệ
4996
+ phéc
4997
+ phẹc
4998
+ phếch
4999
+ phen
5000
+ phèn
5001
+ phên
5002
+ phền
5003
+ phễn
5004
+ pheng
5005
+ phéng
5006
+ phèng
5007
+ phênh
5008
+ phềnh
5009
+ phệnh
5010
+ pheo
5011
+ phèo
5012
+ phép
5013
+ phét
5014
+ phết
5015
+ phệt
5016
+ phẹt
5017
+ phêu
5018
+ phều
5019
+ phễu
5020
+ phệu
5021
+ phi
5022
+ phí
5023
+ phì
5024
+ phĩ
5025
+ phỉ
5026
+ phị
5027
+ phía
5028
+ phìa
5029
+ phịa
5030
+ phích
5031
+ phịch
5032
+ phiếm
5033
+ phiên
5034
+ phiến
5035
+ phiền
5036
+ phiện
5037
+ phiêng
5038
+ phiết
5039
+ phiệt
5040
+ phiêu
5041
+ phiếu
5042
+ phiệu
5043
+ phim
5044
+ phím
5045
+ phin
5046
+ phìn
5047
+ phinh
5048
+ phính
5049
+ phình
5050
+ phĩnh
5051
+ phỉnh
5052
+ phít
5053
+ phịt
5054
+ phiu
5055
+ phíu
5056
+ phịu
5057
+ pho
5058
+ phó
5059
+ phò
5060
+ phô
5061
+ phố
5062
+ phồ
5063
+ phổ
5064
+ phõ
5065
+ phơ
5066
+ phớ
5067
+ phờ
5068
+ phở
5069
+ phóc
5070
+ phốc
5071
+ phọc
5072
+ phoi
5073
+ phòi
5074
+ phôi
5075
+ phối
5076
+ phổi
5077
+ phơi
5078
+ phới
5079
+ phởi
5080
+ phom
5081
+ phòm
5082
+ phôm
5083
+ phồm
5084
+ phôn
5085
+ phồn
5086
+ phơn
5087
+ phớn
5088
+ phỡn
5089
+ phởn
5090
+ phong
5091
+ phóng
5092
+ phòng
5093
+ phông
5094
+ phồng
5095
+ phỗng
5096
+ phổng
5097
+ phộng
5098
+ phỏng
5099
+ phọng
5100
+ phóp
5101
+ phốp
5102
+ phọp
5103
+ phót
5104
+ phốt
5105
+ phọt
5106
+ phớt
5107
+ phu
5108
+ phú
5109
+ phù
5110
+ phũ
5111
+ phủ
5112
+ phụ
5113
+ phua
5114
+ phùa
5115
+ phứa
5116
+ phựa
5117
+ phúc
5118
+ phục
5119
+ phức
5120
+ phực
5121
+ phui
5122
+ phủi
5123
+ phun
5124
+ phún
5125
+ phùn
5126
+ phừn
5127
+ phung
5128
+ phúng
5129
+ phùng
5130
+ phủng
5131
+ phụng
5132
+ phưng
5133
+ phừng
5134
+ phước
5135
+ phược
5136
+ phướn
5137
+ phưỡn
5138
+ phương
5139
+ phướng
5140
+ phường
5141
+ phượng
5142
+ phuốt
5143
+ phượt
5144
+ phượu
5145
+ phụp
5146
+ phút
5147
+ phụt
5148
+ phứt
5149
+ phựt
5150
+ phuy
5151
+ pi
5152
+
5153
+ pia
5154
+ pía
5155
+ pích
5156
+ piêu
5157
+ pin
5158
+ pín
5159
+ po
5160
+
5161
+
5162
+
5163
+ pôn
5164
+ pu
5165
+
5166
+ pua
5167
+ pùa
5168
+ pứa
5169
+ pung
5170
+ qua
5171
+ quá
5172
+ quà
5173
+ quả
5174
+ quạ
5175
+ quác
5176
+ quắc
5177
+ quặc
5178
+ quấc
5179
+ quạc
5180
+ quách
5181
+ quạch
5182
+ quai
5183
+ quái
5184
+ quài
5185
+ quải
5186
+ quại
5187
+ quăm
5188
+ quắm
5189
+ quằm
5190
+ quẳm
5191
+ quặm
5192
+ quan
5193
+ quán
5194
+ quàn
5195
+ quăn
5196
+ quắn
5197
+ quằn
5198
+ quặn
5199
+ quân
5200
+ quấn
5201
+ quần
5202
+ quẫn
5203
+ quẩn
5204
+ quận
5205
+ quản
5206
+ quang
5207
+ quáng
5208
+ quàng
5209
+ quăng
5210
+ quẳng
5211
+ quặng
5212
+ quâng
5213
+ quầng
5214
+ quẩng
5215
+ quãng
5216
+ quảng
5217
+ quạng
5218
+ quanh
5219
+ quánh
5220
+ quành
5221
+ quạnh
5222
+ quao
5223
+ quáo
5224
+ quào
5225
+ quạo
5226
+ quắp
5227
+ quặp
5228
+ quát
5229
+ quắt
5230
+ quặt
5231
+ quất
5232
+ quật
5233
+ quạt
5234
+ quau
5235
+ quáu
5236
+ quàu
5237
+ quạu
5238
+ quay
5239
+ quáy
5240
+ quày
5241
+ quây
5242
+ quấy
5243
+ quầy
5244
+ quẫy
5245
+ quẩy
5246
+ quậy
5247
+ quảy
5248
+ quạy
5249
+ que
5250
+ qué
5251
+ què
5252
+ quê
5253
+ quế
5254
+ quề
5255
+ quệ
5256
+ quẽ
5257
+ quẻ
5258
+ quéc
5259
+ quếch
5260
+ quệch
5261
+ quen
5262
+ quén
5263
+ quèn
5264
+ quên
5265
+ quến
5266
+ quện
5267
+ quẹn
5268
+ queng
5269
+ quềnh
5270
+ quệnh
5271
+ queo
5272
+ quéo
5273
+ quèo
5274
+ quẹo
5275
+ quép
5276
+ quét
5277
+ quết
5278
+ quệt
5279
+ quẹt
5280
+ quếu
5281
+ quều
5282
+ qui
5283
+ quí
5284
+ quì
5285
+ quĩ
5286
+ quỉ
5287
+ quị
5288
+ quin
5289
+ quít
5290
+ quíu
5291
+ quô
5292
+ quọ
5293
+ quơ
5294
+ quớ
5295
+ quờ
5296
+ quở
5297
+ quoạng
5298
+ quoắt
5299
+ quốc
5300
+ quộc
5301
+ quợc
5302
+ quới
5303
+ quôm
5304
+ quon
5305
+ quôn
5306
+ quơn
5307
+ quờn
5308
+ quớt
5309
+ quy
5310
+ quý
5311
+ quỳ
5312
+ quỹ
5313
+ quỷ
5314
+ quỵ
5315
+ quyên
5316
+ quyến
5317
+ quyền
5318
+ quyển
5319
+ quyện
5320
+ quyềnh
5321
+ quyết
5322
+ quyệt
5323
+ quýnh
5324
+ quỳnh
5325
+ quỷnh
5326
+ quýt
5327
+ quỵt
5328
+ quýu
5329
+ ra
5330
+
5331
+
5332
+
5333
+ rả
5334
+ rạ
5335
+ rác
5336
+ rắc
5337
+ rặc
5338
+ rạc
5339
+ rách
5340
+ rạch
5341
+ rai
5342
+ rái
5343
+ rài
5344
+ rãi
5345
+ rải
5346
+ ram
5347
+ rám
5348
+ ràm
5349
+ răm
5350
+ rắm
5351
+ rằm
5352
+ rặm
5353
+ râm
5354
+ rấm
5355
+ rầm
5356
+ rẫm
5357
+ rẩm
5358
+ rậm
5359
+ rạm
5360
+ ran
5361
+ rán
5362
+ ràn
5363
+ răn
5364
+ rắn
5365
+ rằn
5366
+ rặn
5367
+ rân
5368
+ rấn
5369
+ rần
5370
+ rận
5371
+ rãn
5372
+ rạn
5373
+ rang
5374
+ ráng
5375
+ ràng
5376
+ răng
5377
+ rằng
5378
+ rặng
5379
+ rảng
5380
+ rạng
5381
+ ranh
5382
+ rành
5383
+ rãnh
5384
+ rảnh
5385
+ rao
5386
+ ráo
5387
+ rào
5388
+ rão
5389
+ rảo
5390
+ rạo
5391
+ ráp
5392
+ rắp
5393
+ rấp
5394
+ rập
5395
+ rạp
5396
+ rát
5397
+ rắt
5398
+ rặt
5399
+ rất
5400
+ rật
5401
+ rạt
5402
+ rau
5403
+ ráu
5404
+ râu
5405
+ rầu
5406
+ rậu
5407
+ rảu
5408
+ ray
5409
+ ráy
5410
+ rày
5411
+ rây
5412
+ rấy
5413
+ rầy
5414
+ rẫy
5415
+ rẩy
5416
+ rãy
5417
+ rảy
5418
+ rạy
5419
+ re
5420
+
5421
+
5422
+
5423
+ rế
5424
+ rề
5425
+ rễ
5426
+ rể
5427
+ rệ
5428
+ rẽ
5429
+ rẻ
5430
+ réc
5431
+ rếch
5432
+ rệch
5433
+ rem
5434
+ rèm
5435
+ rêm
5436
+ ren
5437
+ rén
5438
+ rèn
5439
+ rên
5440
+ rến
5441
+ rền
5442
+ rện
5443
+ rẻn
5444
+ reng
5445
+ rèng
5446
+ rẻng
5447
+ rềnh
5448
+ rểnh
5449
+ reo
5450
+ réo
5451
+ rèo
5452
+ rẻo
5453
+ rẹo
5454
+ rếp
5455
+ rệp
5456
+ rét
5457
+ rết
5458
+ rệt
5459
+ rẹt
5460
+ rêu
5461
+ rều
5462
+ rệu
5463
+ ri
5464
+
5465
+
5466
+
5467
+ rỉ
5468
+ rị
5469
+ ria
5470
+ rìa
5471
+ rỉa
5472
+ rịa
5473
+ rích
5474
+ rịch
5475
+ riềm
5476
+ riễn
5477
+ riêng
5478
+ riềng
5479
+ riếp
5480
+ riết
5481
+ riệt
5482
+ riêu
5483
+ riếu
5484
+ riều
5485
+ riễu
5486
+ riệu
5487
+ rim
5488
+ rím
5489
+ rin
5490
+ rĩn
5491
+ rỉn
5492
+ rịn
5493
+ rinh
5494
+ rình
5495
+ rỉnh
5496
+ ríp
5497
+ rịp
5498
+ rít
5499
+ rịt
5500
+ riu
5501
+ ríu
5502
+ rìu
5503
+ ro
5504
+
5505
+
5506
+
5507
+ rồ
5508
+ rỗ
5509
+ rổ
5510
+ rộ
5511
+
5512
+ rỏ
5513
+ rọ
5514
+
5515
+ rớ
5516
+ rờ
5517
+ rỡ
5518
+ rở
5519
+ rợ
5520
+ roa
5521
+ roai
5522
+ roạt
5523
+ róc
5524
+ rốc
5525
+ rộc
5526
+ rọc
5527
+ roi
5528
+ rói
5529
+ ròi
5530
+ rôi
5531
+ rối
5532
+ rồi
5533
+ rỗi
5534
+ rổi
5535
+ rội
5536
+ rõi
5537
+ rỏi
5538
+ rọi
5539
+ rơi
5540
+ rời
5541
+ rợi
5542
+ rom
5543
+ róm
5544
+ ròm
5545
+ rôm
5546
+ rồm
5547
+ rộm
5548
+ rỏm
5549
+ rọm
5550
+ rơm
5551
+ rớm
5552
+ rờm
5553
+ rởm
5554
+ rợm
5555
+ ron
5556
+ rón
5557
+ ròn
5558
+ rôn
5559
+ rốn
5560
+ rồn
5561
+ rổn
5562
+ rộn
5563
+ rỏn
5564
+ rọn
5565
+ rơn
5566
+ rờn
5567
+ rỡn
5568
+ rởn
5569
+ rợn
5570
+ rong
5571
+ róng
5572
+ ròng
5573
+ rông
5574
+ rống
5575
+ rồng
5576
+ rỗng
5577
+ rộng
5578
+ rỏng
5579
+ róp
5580
+ rốp
5581
+ rộp
5582
+ rọp
5583
+ rớp
5584
+ rợp
5585
+ rót
5586
+ rốt
5587
+ rột
5588
+ rọt
5589
+ rớt
5590
+ rợt
5591
+ ru
5592
+
5593
+
5594
+
5595
+ rủ
5596
+
5597
+ rừ
5598
+ rua
5599
+ rùa
5600
+ rũa
5601
+ rủa
5602
+ rụa
5603
+ rưa
5604
+ rứa
5605
+ rữa
5606
+ rửa
5607
+ rựa
5608
+ rúc
5609
+ rục
5610
+ rức
5611
+ rực
5612
+ ruê
5613
+ rui
5614
+ rúi
5615
+ rủi
5616
+ rụi
5617
+ rum
5618
+ rúm
5619
+ rùm
5620
+ rụm
5621
+ run
5622
+ rún
5623
+ rùn
5624
+ rủn
5625
+ rung
5626
+ rúng
5627
+ rùng
5628
+ rủng
5629
+ rụng
5630
+ rưng
5631
+ rừng
5632
+ rững
5633
+ rửng
5634
+ rựng
5635
+ ruốc
5636
+ rước
5637
+ ruối
5638
+ ruồi
5639
+ ruỗi
5640
+ ruổi
5641
+ ruội
5642
+ rươi
5643
+ rưới
5644
+ rười
5645
+ rưỡi
5646
+ rưởi
5647
+ rượi
5648
+ ruộm
5649
+ rươm
5650
+ rướm
5651
+ rườm
5652
+ ruôn
5653
+ rướn
5654
+ rườn
5655
+ rượn
5656
+ ruồng
5657
+ ruỗng
5658
+ ruộng
5659
+ rương
5660
+ rường
5661
+ rượng
5662
+ ruốt
5663
+ ruột
5664
+ rượt
5665
+ rượu
5666
+ rúp
5667
+ rụp
5668
+ rút
5669
+ rụt
5670
+ rứt
5671
+ ruy
5672
+ ry
5673
+ rỳ
5674
+ sa
5675
+
5676
+
5677
+
5678
+ sả
5679
+ sạ
5680
+ sác
5681
+ sắc
5682
+ sặc
5683
+ sạc
5684
+ sách
5685
+ sạch
5686
+ sai
5687
+ sái
5688
+ sài
5689
+ sãi
5690
+ sải
5691
+ sam
5692
+ sám
5693
+ sàm
5694
+ săm
5695
+ sắm
5696
+ sặm
5697
+ sâm
5698
+ sấm
5699
+ sầm
5700
+ sẫm
5701
+ sẩm
5702
+ sậm
5703
+ sạm
5704
+ san
5705
+ sán
5706
+ sàn
5707
+ săn
5708
+ sắn
5709
+ sẵn
5710
+ sẳn
5711
+ sân
5712
+ sấn
5713
+ sần
5714
+ sẩn
5715
+ sản
5716
+ sạn
5717
+ sang
5718
+ sáng
5719
+ sàng
5720
+ săng
5721
+ sắng
5722
+ sằng
5723
+ sẵng
5724
+ sâng
5725
+ sảng
5726
+ sanh
5727
+ sánh
5728
+ sành
5729
+ sảnh
5730
+ sao
5731
+ sáo
5732
+ sào
5733
+ sảo
5734
+ sạo
5735
+ sáp
5736
+ sắp
5737
+ sấp
5738
+ sập
5739
+ sạp
5740
+ sát
5741
+ sắt
5742
+ sặt
5743
+ sất
5744
+ sật
5745
+ sạt
5746
+ sau
5747
+ sáu
5748
+ sâu
5749
+ sấu
5750
+ sầu
5751
+ sậu
5752
+ say
5753
+ sây
5754
+ sấy
5755
+ sầy
5756
+ sẩy
5757
+ sậy
5758
+ sảy
5759
+ se
5760
+
5761
+
5762
+ sế
5763
+ sề
5764
+ sễ
5765
+ sể
5766
+ sệ
5767
+ sẽ
5768
+ sẻ
5769
+ sẹ
5770
+ séc
5771
+ sếch
5772
+ sệch
5773
+ sem
5774
+ sém
5775
+ sẹm
5776
+ sen
5777
+ sên
5778
+ sến
5779
+ sền
5780
+ sển
5781
+ sẻn
5782
+ seng
5783
+ sênh
5784
+ sềnh
5785
+ sểnh
5786
+ seo
5787
+ séo
5788
+ sèo
5789
+ sẹo
5790
+ sép
5791
+ sếp
5792
+ sẹp
5793
+ sét
5794
+ sệt
5795
+ sẹt
5796
+ sêu
5797
+ sếu
5798
+ sều
5799
+ sệu
5800
+ si
5801
+
5802
+
5803
+
5804
+ sỉ
5805
+ sia
5806
+ sỉa
5807
+ sịa
5808
+ síc
5809
+ sích
5810
+ sịch
5811
+ siếc
5812
+ siếm
5813
+ siểm
5814
+ siên
5815
+ siễn
5816
+ siển
5817
+ siêng
5818
+ siểng
5819
+ siệng
5820
+ siết
5821
+ siêu
5822
+ sim
5823
+ sin
5824
+ sìn
5825
+ sỉn
5826
+ sinh
5827
+ sính
5828
+ sình
5829
+ sỉnh
5830
+ síp
5831
+ sịp
5832
+ sít
5833
+ sịt
5834
+ siu
5835
+ síu
5836
+ so
5837
+
5838
+
5839
+ số
5840
+ sồ
5841
+ sỗ
5842
+ sổ
5843
+ sộ
5844
+ sỏ
5845
+ sọ
5846
+
5847
+ sớ
5848
+ sờ
5849
+ sỡ
5850
+ sở
5851
+ sợ
5852
+ soa
5853
+ sòa
5854
+ soạch
5855
+ soái
5856
+ soài
5857
+ soải
5858
+ soàm
5859
+ soán
5860
+ soàn
5861
+ soắn
5862
+ soạn
5863
+ soảng
5864
+ soạng
5865
+ soạp
5866
+ soát
5867
+ soạt
5868
+ soay
5869
+ sóc
5870
+ sốc
5871
+ sộc
5872
+ sọc
5873
+ soẹt
5874
+ soi
5875
+ sói
5876
+ sòi
5877
+ sôi
5878
+ sồi
5879
+ sổi
5880
+ sõi
5881
+ sỏi
5882
+ sơi
5883
+ sới
5884
+ sởi
5885
+ sợi
5886
+ som
5887
+ sóm
5888
+ sòm
5889
+ sốm
5890
+ sổm
5891
+ sỏm
5892
+ sọm
5893
+ sơm
5894
+ sớm
5895
+ sờm
5896
+ sởm
5897
+ son
5898
+ són
5899
+ sòn
5900
+ sôn
5901
+ sồn
5902
+ sơn
5903
+ sớn
5904
+ sờn
5905
+ sởn
5906
+ song
5907
+ sóng
5908
+ sòng
5909
+ sông
5910
+ sống
5911
+ sồng
5912
+ sổng
5913
+ sõng
5914
+ sóp
5915
+ sốp
5916
+ sộp
5917
+ sót
5918
+ sốt
5919
+ sột
5920
+ sọt
5921
+ sớt
5922
+ sợt
5923
+ su
5924
+
5925
+
5926
+ sủ
5927
+ sụ
5928
+
5929
+ sứ
5930
+ sừ
5931
+ sử
5932
+ sự
5933
+ súa
5934
+ sủa
5935
+ sụa
5936
+ sưa
5937
+ sứa
5938
+ sừa
5939
+ sữa
5940
+ sửa
5941
+ suất
5942
+ súc
5943
+ sục
5944
+ sức
5945
+ sực
5946
+ suê
5947
+ suề
5948
+ sui
5949
+ sùi
5950
+ sủi
5951
+ sum
5952
+ sùm
5953
+ sụm
5954
+ sun
5955
+ sún
5956
+ sụn
5957
+ sừn
5958
+ sung
5959
+ súng
5960
+ sùng
5961
+ sũng
5962
+ sủng
5963
+ sưng
5964
+ sừng
5965
+ sững
5966
+ sửng
5967
+ sựng
5968
+ suối
5969
+ sươi
5970
+ sưởi
5971
+ suôn
5972
+ sườn
5973
+ suông
5974
+ suồng
5975
+ sương
5976
+ sướng
5977
+ sường
5978
+ sượng
5979
+ suốt
5980
+ sướt
5981
+ sượt
5982
+ súp
5983
+ sụp
5984
+ sút
5985
+ sụt
5986
+ sứt
5987
+ sựt
5988
+ sưu
5989
+ sữu
5990
+ sửu
5991
+ suy
5992
+ súy
5993
+ suyễn
5994
+ suyển
5995
+ suýt
5996
+ suỵt
5997
+ sy
5998
+ sỹ
5999
+ t
6000
+ ta
6001
+
6002
+
6003
+
6004
+ tả
6005
+ tạ
6006
+ tác
6007
+ tắc
6008
+ tặc
6009
+ tấc
6010
+ tạc
6011
+ tách
6012
+ tạch
6013
+ tai
6014
+ tái
6015
+ tài
6016
+ tãi
6017
+ tải
6018
+ tại
6019
+ tam
6020
+ tám
6021
+ tàm
6022
+ tăm
6023
+ tắm
6024
+ tằm
6025
+ tâm
6026
+ tấm
6027
+ tầm
6028
+ tẩm
6029
+ tậm
6030
+ tạm
6031
+ tan
6032
+ tán
6033
+ tàn
6034
+ tăn
6035
+ tắn
6036
+ tằn
6037
+ tẳn
6038
+ tặn
6039
+ tân
6040
+ tấn
6041
+ tần
6042
+ tẩn
6043
+ tận
6044
+ tản
6045
+ tang
6046
+ táng
6047
+ tàng
6048
+ tăng
6049
+ tằng
6050
+ tặng
6051
+ tâng
6052
+ tầng
6053
+ tảng
6054
+ tạng
6055
+ tanh
6056
+ tánh
6057
+ tành
6058
+ tạnh
6059
+ tao
6060
+ táo
6061
+ tào
6062
+ tảo
6063
+ tạo
6064
+ táp
6065
+ tắp
6066
+ tấp
6067
+ tập
6068
+ tạp
6069
+ tát
6070
+ tắt
6071
+ tất
6072
+ tật
6073
+ tạt
6074
+ tau
6075
+ táu
6076
+ tàu
6077
+ tâu
6078
+ tấu
6079
+ tầu
6080
+ tẩu
6081
+ tậu
6082
+ tay
6083
+ táy
6084
+ tày
6085
+ tây
6086
+ tấy
6087
+ tầy
6088
+ tẩy
6089
+ te
6090
+
6091
+
6092
+
6093
+ tế
6094
+ tề
6095
+ tễ
6096
+ tể
6097
+ tệ
6098
+ tẽ
6099
+ tẻ
6100
+ téc
6101
+ tếch
6102
+ tem
6103
+ tém
6104
+ tèm
6105
+ têm
6106
+ tẻm
6107
+ ten
6108
+ tén
6109
+ tèn
6110
+ tên
6111
+ tẽn
6112
+ teng
6113
+ tèng
6114
+ tênh
6115
+ tềnh
6116
+ tễnh
6117
+ tểnh
6118
+ teo
6119
+ téo
6120
+ tèo
6121
+ tẻo
6122
+ tẹo
6123
+ tép
6124
+ tệp
6125
+ tẹp
6126
+ tét
6127
+ tết
6128
+ tẹt
6129
+ têu
6130
+ tếu
6131
+ tễu
6132
+ tha
6133
+ thá
6134
+ thà
6135
+ thả
6136
+ thác
6137
+ thắc
6138
+ thạc
6139
+ thách
6140
+ thạch
6141
+ thai
6142
+ thái
6143
+ thài
6144
+ thãi
6145
+ thải
6146
+ tham
6147
+ thám
6148
+ thàm
6149
+ thăm
6150
+ thắm
6151
+ thẳm
6152
+ thâm
6153
+ thấm
6154
+ thầm
6155
+ thẫm
6156
+ thẩm
6157
+ thậm
6158
+ thảm
6159
+ than
6160
+ thán
6161
+ thăn
6162
+ thắn
6163
+ thằn
6164
+ thân
6165
+ thần
6166
+ thẫn
6167
+ thẩn
6168
+ thận
6169
+ thản
6170
+ thang
6171
+ tháng
6172
+ thàng
6173
+ thăng
6174
+ thắng
6175
+ thằng
6176
+ thẳng
6177
+ thặng
6178
+ thảng
6179
+ thanh
6180
+ thánh
6181
+ thành
6182
+ thảnh
6183
+ thạnh
6184
+ thao
6185
+ tháo
6186
+ thào
6187
+ thảo
6188
+ thạo
6189
+ tháp
6190
+ thắp
6191
+ thấp
6192
+ thập
6193
+ thát
6194
+ thắt
6195
+ thất
6196
+ thật
6197
+ thạt
6198
+ thau
6199
+ tháu
6200
+ thâu
6201
+ thấu
6202
+ thầu
6203
+ thẩu
6204
+ thay
6205
+ tháy
6206
+ thây
6207
+ thấy
6208
+ thầy
6209
+ thẩy
6210
+ thảy
6211
+ the
6212
+ thé
6213
+ thè
6214
+ thê
6215
+ thế
6216
+ thề
6217
+ thể
6218
+ thệ
6219
+ thẽ
6220
+ thẻ
6221
+ thếch
6222
+ thèm
6223
+ thêm
6224
+ thềm
6225
+ then
6226
+ thèn
6227
+ thện
6228
+ thẻn
6229
+ thẹn
6230
+ thênh
6231
+ thếnh
6232
+ theo
6233
+ thèo
6234
+ thẻo
6235
+ thẹo
6236
+ thép
6237
+ thếp
6238
+ thẹp
6239
+ thét
6240
+ thết
6241
+ thêu
6242
+ thều
6243
+ thểu
6244
+ thi
6245
+ thí
6246
+ thì
6247
+ thĩ
6248
+ thỉ
6249
+ thị
6250
+ thia
6251
+ thía
6252
+ thìa
6253
+ thích
6254
+ thịch
6255
+ thiếc
6256
+ thiệc
6257
+ thiêm
6258
+ thiềm
6259
+ thiểm
6260
+ thiên
6261
+ thiến
6262
+ thiền
6263
+ thiển
6264
+ thiện
6265
+ thiêng
6266
+ thiềng
6267
+ thiếp
6268
+ thiệp
6269
+ thiết
6270
+ thiệt
6271
+ thiêu
6272
+ thiếu
6273
+ thiều
6274
+ thiểu
6275
+ thiệu
6276
+ thím
6277
+ thin
6278
+ thín
6279
+ thìn
6280
+ thinh
6281
+ thính
6282
+ thình
6283
+ thỉnh
6284
+ thịnh
6285
+ thíp
6286
+ thít
6287
+ thịt
6288
+ thiu
6289
+ thìu
6290
+ thỉu
6291
+ thịu
6292
+ tho
6293
+ thó
6294
+ thò
6295
+ thô
6296
+ thố
6297
+ thồ
6298
+ thỗ
6299
+ thổ
6300
+ thỏ
6301
+ thọ
6302
+ thơ
6303
+ thớ
6304
+ thờ
6305
+ thở
6306
+ thợ
6307
+ thoa
6308
+ thóa
6309
+ thòa
6310
+ thõa
6311
+ thỏa
6312
+ thoai
6313
+ thoái
6314
+ thoải
6315
+ thoại
6316
+ thoán
6317
+ thoàn
6318
+ thoăn
6319
+ thoang
6320
+ thoáng
6321
+ thoắng
6322
+ thoảng
6323
+ thoát
6324
+ thoắt
6325
+ thoạt
6326
+ thóc
6327
+ thốc
6328
+ thộc
6329
+ thọc
6330
+ thoi
6331
+ thói
6332
+ thòi
6333
+ thôi
6334
+ thối
6335
+ thồi
6336
+ thổi
6337
+ thỏi
6338
+ thơi
6339
+ thới
6340
+ thời
6341
+ thởi
6342
+ thom
6343
+ thóm
6344
+ thòm
6345
+ thồm
6346
+ thỏm
6347
+ thơm
6348
+ thớm
6349
+ thờm
6350
+ thon
6351
+ thòn
6352
+ thôn
6353
+ thốn
6354
+ thồn
6355
+ thỗn
6356
+ thổn
6357
+ thộn
6358
+ thơn
6359
+ thờn
6360
+ thong
6361
+ thòng
6362
+ thông
6363
+ thống
6364
+ thổng
6365
+ thõng
6366
+ thỏng
6367
+ thóp
6368
+ thộp
6369
+ thót
6370
+ thốt
6371
+ thột
6372
+ thọt
6373
+ thớt
6374
+ thợt
6375
+ thu
6376
+ thú
6377
+ thù
6378
+ thủ
6379
+ thụ
6380
+ thư
6381
+ thứ
6382
+ thừ
6383
+ thử
6384
+ thự
6385
+ thua
6386
+ thùa
6387
+ thủa
6388
+ thưa
6389
+ thừa
6390
+ thửa
6391
+ thuấn
6392
+ thuần
6393
+ thuẫn
6394
+ thuẩn
6395
+ thuận
6396
+ thuất
6397
+ thuật
6398
+ thúc
6399
+ thục
6400
+ thức
6401
+ thực
6402
+ thuê
6403
+ thuế
6404
+ thuể
6405
+ thui
6406
+ thúi
6407
+ thùi
6408
+ thủi
6409
+ thụi
6410
+ thum
6411
+ thùm
6412
+ thủm
6413
+ thun
6414
+ thùn
6415
+ thung
6416
+ thúng
6417
+ thùng
6418
+ thũng
6419
+ thủng
6420
+ thụng
6421
+ thưng
6422
+ thừng
6423
+ thững
6424
+ thửng
6425
+ thuở
6426
+ thuốc
6427
+ thuộc
6428
+ thước
6429
+ thược
6430
+ thuồi
6431
+ thuội
6432
+ thười
6433
+ thưỡi
6434
+ thuộm
6435
+ thuôn
6436
+ thuốn
6437
+ thuồn
6438
+ thuỗn
6439
+ thườn
6440
+ thưỡn
6441
+ thuông
6442
+ thuồng
6443
+ thuổng
6444
+ thương
6445
+ thướng
6446
+ thường
6447
+ thưởng
6448
+ thượng
6449
+ thuột
6450
+ thướt
6451
+ thượt
6452
+ thúp
6453
+ thụp
6454
+ thút
6455
+ thụt
6456
+ thúy
6457
+ thùy
6458
+ thủy
6459
+ thụy
6460
+ thuyên
6461
+ thuyền
6462
+ thuyển
6463
+ thuyết
6464
+ thuýt
6465
+ thy
6466
+ ti
6467
+
6468
+
6469
+
6470
+ tỉ
6471
+ tị
6472
+ tia
6473
+ tía
6474
+ tỉa
6475
+ tíc
6476
+ tích
6477
+ tịch
6478
+ tiếc
6479
+ tiệc
6480
+ tiêm
6481
+ tiếm
6482
+ tiềm
6483
+ tiệm
6484
+ tiên
6485
+ tiến
6486
+ tiền
6487
+ tiễn
6488
+ tiển
6489
+ tiện
6490
+ tiêng
6491
+ tiếng
6492
+ tiểng
6493
+ tiếp
6494
+ tiệp
6495
+ tiết
6496
+ tiệt
6497
+ tiêu
6498
+ tiếu
6499
+ tiều
6500
+ tiễu
6501
+ tiểu
6502
+ tim
6503
+ tím
6504
+ tìm
6505
+ tỉm
6506
+ tin
6507
+ tín
6508
+ tĩn
6509
+ tinh
6510
+ tính
6511
+ tình
6512
+ tĩnh
6513
+ tỉnh
6514
+ tịnh
6515
+ t��p
6516
+ tít
6517
+ tịt
6518
+ tiu
6519
+ tíu
6520
+ tĩu
6521
+ tịu
6522
+ to
6523
+
6524
+
6525
+
6526
+ tố
6527
+ tồ
6528
+ tổ
6529
+ tộ
6530
+ tỏ
6531
+ tọ
6532
+
6533
+ tớ
6534
+ tờ
6535
+ tở
6536
+ tợ
6537
+ toa
6538
+ tòa
6539
+ tỏa
6540
+ tọa
6541
+ toác
6542
+ toạc
6543
+ toái
6544
+ toài
6545
+ toại
6546
+ toan
6547
+ toán
6548
+ toàn
6549
+ toản
6550
+ toang
6551
+ toáng
6552
+ toàng
6553
+ toanh
6554
+ toát
6555
+ toáy
6556
+ tóc
6557
+ tốc
6558
+ tộc
6559
+ tọc
6560
+ toe
6561
+ tóe
6562
+ tòe
6563
+ tõe
6564
+ tỏe
6565
+ toè
6566
+ toen
6567
+ toèn
6568
+ toét
6569
+ toẹt
6570
+ toi
6571
+ tói
6572
+ tòi
6573
+ tôi
6574
+ tối
6575
+ tồi
6576
+ tội
6577
+ tỏi
6578
+ tơi
6579
+ tới
6580
+ tời
6581
+ tom
6582
+ tóm
6583
+ tòm
6584
+ tôm
6585
+ tồm
6586
+ tõm
6587
+ tỏm
6588
+ tởm
6589
+ ton
6590
+ tòn
6591
+ tôn
6592
+ tốn
6593
+ tồn
6594
+ tổn
6595
+ tơn
6596
+ tớn
6597
+ tởn
6598
+ tợn
6599
+ tong
6600
+ tòng
6601
+ tông
6602
+ tống
6603
+ tồng
6604
+ tổng
6605
+ tỏng
6606
+ tọng
6607
+ top
6608
+ tóp
6609
+ tốp
6610
+ tộp
6611
+ tọp
6612
+ tớp
6613
+ tợp
6614
+ tót
6615
+ tốt
6616
+ tột
6617
+ tọt
6618
+ tớt
6619
+ tra
6620
+ trá
6621
+ trà
6622
+ trã
6623
+ trả
6624
+ trác
6625
+ trắc
6626
+ trặc
6627
+ trạc
6628
+ trách
6629
+ trạch
6630
+ trai
6631
+ trái
6632
+ trài
6633
+ trãi
6634
+ trải
6635
+ trại
6636
+ trám
6637
+ tràm
6638
+ trăm
6639
+ trắm
6640
+ trằm
6641
+ trâm
6642
+ trầm
6643
+ trẫm
6644
+ trẩm
6645
+ trậm
6646
+ trảm
6647
+ trạm
6648
+ tran
6649
+ trán
6650
+ tràn
6651
+ trăn
6652
+ trằn
6653
+ trặn
6654
+ trân
6655
+ trấn
6656
+ trần
6657
+ trẩn
6658
+ trận
6659
+ trản
6660
+ trạn
6661
+ trang
6662
+ tráng
6663
+ tràng
6664
+ trăng
6665
+ trắng
6666
+ trẳng
6667
+ trâng
6668
+ trảng
6669
+ trạng
6670
+ tranh
6671
+ tránh
6672
+ trành
6673
+ trảnh
6674
+ trạnh
6675
+ trao
6676
+ tráo
6677
+ trào
6678
+ trảo
6679
+ trạo
6680
+ tráp
6681
+ trấp
6682
+ trập
6683
+ trát
6684
+ trắt
6685
+ trặt
6686
+ trất
6687
+ trật
6688
+ trạt
6689
+ trau
6690
+ tràu
6691
+ trâu
6692
+ trấu
6693
+ trầu
6694
+ trẩu
6695
+ trảu
6696
+ tray
6697
+ trày
6698
+ trây
6699
+ trầy
6700
+ trẩy
6701
+ trảy
6702
+ trạy
6703
+ tre
6704
+ tré
6705
+ trè
6706
+ trê
6707
+ trề
6708
+ trễ
6709
+ trể
6710
+ trệ
6711
+ trẽ
6712
+ trẻ
6713
+ trẹ
6714
+ tréc
6715
+ trếch
6716
+ trệch
6717
+ trém
6718
+ trèm
6719
+ trẹm
6720
+ trèn
6721
+ trên
6722
+ trển
6723
+ trẽn
6724
+ treng
6725
+ trếnh
6726
+ treo
6727
+ tréo
6728
+ trèo
6729
+ trẽo
6730
+ trẻo
6731
+ trẹo
6732
+ trét
6733
+ trết
6734
+ trệt
6735
+ trẹt
6736
+ trêu
6737
+ trếu
6738
+ trệu
6739
+ tri
6740
+ trí
6741
+ trì
6742
+ trĩ
6743
+ trị
6744
+ tría
6745
+ trỉa
6746
+ trịa
6747
+ trích
6748
+ trịch
6749
+ triến
6750
+ triền
6751
+ triễn
6752
+ triển
6753
+ triện
6754
+ triêng
6755
+ triềng
6756
+ triệng
6757
+ triết
6758
+ triệt
6759
+ triều
6760
+ triểu
6761
+ triệu
6762
+ trinh
6763
+ trình
6764
+ trĩnh
6765
+ trỉnh
6766
+ trịnh
6767
+ tríp
6768
+ trít
6769
+ trịt
6770
+ tríu
6771
+ trìu
6772
+ trĩu
6773
+ tro
6774
+ trò
6775
+ trô
6776
+ trố
6777
+ trồ
6778
+ trỗ
6779
+ trổ
6780
+ trộ
6781
+ trõ
6782
+ trỏ
6783
+ trọ
6784
+ trơ
6785
+ trớ
6786
+ trờ
6787
+ trở
6788
+ trợ
6789
+ tróc
6790
+ trốc
6791
+ trộc
6792
+ trọc
6793
+ troi
6794
+ trói
6795
+ tròi
6796
+ trôi
6797
+ trối
6798
+ trồi
6799
+ trỗi
6800
+ trổi
6801
+ trội
6802
+ trỏi
6803
+ trọi
6804
+ trơi
6805
+ trới
6806
+ trời
6807
+ tróm
6808
+ tròm
6809
+ trôm
6810
+ trộm
6811
+ trõm
6812
+ tron
6813
+ tròn
6814
+ trôn
6815
+ trốn
6816
+ trộn
6817
+ trõn
6818
+ trọn
6819
+ trơn
6820
+ trớn
6821
+ trờn
6822
+ trợn
6823
+ trong
6824
+ tróng
6825
+ tròng
6826
+ trông
6827
+ trống
6828
+ trồng
6829
+ trổng
6830
+ trộng
6831
+ trỏng
6832
+ trọng
6833
+ trớp
6834
+ trót
6835
+ trốt
6836
+ trọt
6837
+ trớt
6838
+ trợt
6839
+ tru
6840
+ trú
6841
+ trù
6842
+ trủ
6843
+ trụ
6844
+ trư
6845
+ trứ
6846
+ trừ
6847
+ trữ
6848
+ trụa
6849
+ trưa
6850
+ truân
6851
+ truất
6852
+ truật
6853
+ trúc
6854
+ trục
6855
+ trực
6856
+ truệ
6857
+ trui
6858
+ trùi
6859
+ trũi
6860
+ trụi
6861
+ trúm
6862
+ trùm
6863
+ trụm
6864
+ trun
6865
+ trùn
6866
+ trụn
6867
+ trung
6868
+ trúng
6869
+ trùng
6870
+ trũng
6871
+ trủng
6872
+ trụng
6873
+ trưng
6874
+ trứng
6875
+ trừng
6876
+ trửng
6877
+ trước
6878
+ truồi
6879
+ trườn
6880
+ truông
6881
+ truồng
6882
+ trương
6883
+ trướng
6884
+ trường
6885
+ trưỡng
6886
+ trưởng
6887
+ trượng
6888
+ truột
6889
+ trượt
6890
+ trụp
6891
+ trút
6892
+ trụt
6893
+ trừu
6894
+ truy
6895
+ trụy
6896
+ truyền
6897
+ truyện
6898
+ tu
6899
+
6900
+
6901
+ tủ
6902
+ tụ
6903
+
6904
+ tứ
6905
+ từ
6906
+ tử
6907
+ tự
6908
+ tua
6909
+ túa
6910
+ tùa
6911
+ tủa
6912
+ tưa
6913
+ tứa
6914
+ từa
6915
+ tửa
6916
+ tựa
6917
+ tuân
6918
+ tuấn
6919
+ tuần
6920
+ tuẫn
6921
+ tuất
6922
+ túc
6923
+ tục
6924
+ tức
6925
+ tuế
6926
+ tuệ
6927
+ tuếch
6928
+ tuệch
6929
+ tuềnh
6930
+ tui
6931
+ túi
6932
+ tủi
6933
+ tụi
6934
+ tum
6935
+ túm
6936
+ tùm
6937
+ tũm
6938
+ tủm
6939
+ tụm
6940
+ tũn
6941
+ tủn
6942
+ tung
6943
+ túng
6944
+ tùng
6945
+ tụng
6946
+ tưng
6947
+ từng
6948
+ tửng
6949
+ tuốc
6950
+ tuộc
6951
+ tước
6952
+ tược
6953
+ tuôi
6954
+ tuồi
6955
+ tuổi
6956
+ tươi
6957
+ tưới
6958
+ tưởi
6959
+ tươm
6960
+ tườm
6961
+ tuôn
6962
+ tuốn
6963
+ tuồn
6964
+ tướn
6965
+ tuông
6966
+ tuồng
6967
+ tương
6968
+ tướng
6969
+ tường
6970
+ tưởng
6971
+ tượng
6972
+ tướp
6973
+ tượp
6974
+ tuốt
6975
+ tuột
6976
+ tướt
6977
+ tượt
6978
+ tườu
6979
+ túp
6980
+ tút
6981
+ tụt
6982
+ tửu
6983
+ tựu
6984
+ tuy
6985
+ túy
6986
+ tùy
6987
+ tủy
6988
+ tụy
6989
+ tuya
6990
+ tuyên
6991
+ tuyến
6992
+ tuyền
6993
+ tuyển
6994
+ tuyết
6995
+ tuyệt
6996
+ tuyn
6997
+ tuýp
6998
+ tuýt
6999
+ ty
7000
+
7001
+ tỳ
7002
+ tỷ
7003
+ tỵ
7004
+ u
7005
+ ú
7006
+ ù
7007
+
7008
+
7009
+ ư
7010
+
7011
+
7012
+ ua
7013
+ úa
7014
+ ùa
7015
+ ủa
7016
+ ụa
7017
+ ưa
7018
+ ứa
7019
+ ựa
7020
+ uẩn
7021
+ uất
7022
+ uẩy
7023
+ úc
7024
+ ục
7025
+ ức
7026
+ ực
7027
+
7028
+ uế
7029
+ uể
7030
+ ui
7031
+ úi
7032
+ ủi
7033
+ ưi
7034
+ um
7035
+ úm
7036
+ ùm
7037
+ un
7038
+ ún
7039
+ ùn
7040
+ ủn
7041
+ ụn
7042
+ ung
7043
+ úng
7044
+ ùng
7045
+ ủng
7046
+ ưng
7047
+ ứng
7048
+ ừng
7049
+ ửng
7050
+
7051
+ ươ
7052
+ ước
7053
+ uôi
7054
+ ươi
7055
+ uôm
7056
+ ươm
7057
+ ướm
7058
+ uôn
7059
+ uốn
7060
+ ươn
7061
+ ướn
7062
+ ườn
7063
+ ưỡn
7064
+ uông
7065
+ uống
7066
+ uổng
7067
+ ương
7068
+ ướp
7069
+ uốt
7070
+ uột
7071
+ ướt
7072
+ ươu
7073
+ úp
7074
+ ụp
7075
+ út
7076
+ ụt
7077
+ ưu
7078
+ uy
7079
+ úy
7080
+ ủy
7081
+ uỷ
7082
+ uỵch
7083
+ uyên
7084
+ uyển
7085
+ uyn
7086
+ uỳnh
7087
+ va
7088
+
7089
+
7090
+
7091
+ vả
7092
+ vạ
7093
+ vác
7094
+ vắc
7095
+ vặc
7096
+ vạc
7097
+ vách
7098
+ vạch
7099
+ vai
7100
+ vái
7101
+ vài
7102
+ vãi
7103
+ vải
7104
+ vại
7105
+ vàm
7106
+ vằm
7107
+ vâm
7108
+ vầm
7109
+ vậm
7110
+ vạm
7111
+ van
7112
+ ván
7113
+ vàn
7114
+ văn
7115
+ vắn
7116
+ vằn
7117
+ vặn
7118
+ vân
7119
+ vấn
7120
+ vần
7121
+ vẫn
7122
+ vẩn
7123
+ vận
7124
+ vãn
7125
+ vạn
7126
+ vang
7127
+ váng
7128
+ vàng
7129
+ văng
7130
+ vắng
7131
+ vằng
7132
+ vẳng
7133
+ vâng
7134
+ vầng
7135
+ vãng
7136
+ vảng
7137
+ vạng
7138
+ vanh
7139
+ vánh
7140
+ vành
7141
+ vãnh
7142
+ vảnh
7143
+ vạnh
7144
+ vao
7145
+ váo
7146
+ vào
7147
+ váp
7148
+ vắp
7149
+ vấp
7150
+ vập
7151
+ vạp
7152
+ vát
7153
+ vắt
7154
+ vặt
7155
+ vất
7156
+ vật
7157
+ vạt
7158
+ vàu
7159
+ vấu
7160
+ vầu
7161
+ vẩu
7162
+ vay
7163
+ váy
7164
+ vày
7165
+ vây
7166
+ vấy
7167
+ vầy
7168
+ vẫy
7169
+ vẩy
7170
+ vậy
7171
+ vảy
7172
+ vạy
7173
+ ve
7174
+
7175
+
7176
+
7177
+ vế
7178
+ về
7179
+ vệ
7180
+ vẽ
7181
+ vẻ
7182
+ véc
7183
+ vẹc
7184
+ vếch
7185
+ vẹm
7186
+ ven
7187
+ vén
7188
+ vên
7189
+ vền
7190
+ vện
7191
+ vẻn
7192
+ vẹn
7193
+ vênh
7194
+ vểnh
7195
+ veo
7196
+ véo
7197
+ vèo
7198
+ vẻo
7199
+ vẹo
7200
+ vép
7201
+ vét
7202
+ vết
7203
+ vệt
7204
+ vẹt
7205
+ vêu
7206
+ vếu
7207
+ vều
7208
+ vi
7209
+
7210
+
7211
+
7212
+ vỉ
7213
+ vị
7214
+ via
7215
+ vía
7216
+ vỉa
7217
+ vích
7218
+ việc
7219
+ viêm
7220
+ viên
7221
+ viền
7222
+ viễn
7223
+ viển
7224
+ viện
7225
+ viếng
7226
+ viễng
7227
+ viết
7228
+ việt
7229
+ vim
7230
+ vịm
7231
+ vin
7232
+ vịn
7233
+ vinh
7234
+ vính
7235
+ vĩnh
7236
+ vịnh
7237
+ víp
7238
+ vít
7239
+ vịt
7240
+ víu
7241
+ vo
7242
+
7243
+
7244
+ v��
7245
+ vố
7246
+ vồ
7247
+ vỗ
7248
+ vổ
7249
+
7250
+ vỏ
7251
+ vọ
7252
+
7253
+ vớ
7254
+ vờ
7255
+ vỡ
7256
+ vở
7257
+ vợ
7258
+ voan
7259
+ vóc
7260
+ vốc
7261
+ vộc
7262
+ vọc
7263
+ voi
7264
+ vói
7265
+ vòi
7266
+ vôi
7267
+ vối
7268
+ vồi
7269
+ vội
7270
+ vọi
7271
+ vơi
7272
+ với
7273
+ vời
7274
+ vợi
7275
+ vom
7276
+ vòm
7277
+ von
7278
+ vón
7279
+ vòn
7280
+ vôn
7281
+ vốn
7282
+ vồn
7283
+ vỏn
7284
+ vơn
7285
+ vờn
7286
+ vởn
7287
+ vong
7288
+ vóng
7289
+ vòng
7290
+ vông
7291
+ vống
7292
+ vồng
7293
+ vổng
7294
+ võng
7295
+ vỏng
7296
+ vọng
7297
+ vọp
7298
+ vót
7299
+ vốt
7300
+ vọt
7301
+ vớt
7302
+ vợt
7303
+ vu
7304
+
7305
+
7306
+
7307
+ vụ
7308
+ vừ
7309
+ vua
7310
+ vùa
7311
+ vừa
7312
+ vữa
7313
+ vựa
7314
+ vúc
7315
+ vức
7316
+ vực
7317
+ vui
7318
+ vùi
7319
+ vũm
7320
+ vun
7321
+ vùn
7322
+ vủn
7323
+ vụn
7324
+ vung
7325
+ vùng
7326
+ vũng
7327
+ vụng
7328
+ vưng
7329
+ vừng
7330
+ vững
7331
+ vửng
7332
+ vựng
7333
+ vược
7334
+ vươn
7335
+ vườn
7336
+ vượn
7337
+ vuông
7338
+ vương
7339
+ vướng
7340
+ vưởng
7341
+ vượng
7342
+ vuốt
7343
+ vuột
7344
+ vượt
7345
+ vút
7346
+ vụt
7347
+ vứt
7348
+ vưu
7349
+ vy
7350
+ vỹ
7351
+ x
7352
+ xa
7353
+
7354
+
7355
+
7356
+ xả
7357
+ xạ
7358
+ xác
7359
+ xắc
7360
+ xấc
7361
+ xạc
7362
+ xách
7363
+ xạch
7364
+ xai
7365
+ xái
7366
+ xài
7367
+ xải
7368
+ xại
7369
+ xam
7370
+ xám
7371
+ xàm
7372
+ xăm
7373
+ xắm
7374
+ xâm
7375
+ xầm
7376
+ xẩm
7377
+ xậm
7378
+ xảm
7379
+ xạm
7380
+ xan
7381
+ xán
7382
+ xăn
7383
+ xắn
7384
+ xân
7385
+ xẩn
7386
+ xang
7387
+ xáng
7388
+ xàng
7389
+ xăng
7390
+ xắng
7391
+ xằng
7392
+ xẵng
7393
+ xảng
7394
+ xanh
7395
+ xành
7396
+ xảnh
7397
+ xao
7398
+ xáo
7399
+ xào
7400
+ xảo
7401
+ xạo
7402
+ xáp
7403
+ xắp
7404
+ xấp
7405
+ xập
7406
+ xạp
7407
+ xát
7408
+ xắt
7409
+ xạt
7410
+ xáu
7411
+ xàu
7412
+ xâu
7413
+ xấu
7414
+ xầu
7415
+ xẩu
7416
+ xảu
7417
+ xạu
7418
+ xay
7419
+ xáy
7420
+ xây
7421
+ xẩy
7422
+ xảy
7423
+ xe
7424
+
7425
+
7426
+
7427
+ xế
7428
+ xề
7429
+ xể
7430
+ xệ
7431
+ xẻ
7432
+ xẹ
7433
+ xéc
7434
+ xẹc
7435
+ xếch
7436
+ xệch
7437
+ xem
7438
+ xém
7439
+ xềm
7440
+ xen
7441
+ xén
7442
+ xèn
7443
+ xên
7444
+ xẻn
7445
+ xèng
7446
+ xẻng
7447
+ xênh
7448
+ xềnh
7449
+ xểnh
7450
+ xeo
7451
+ xéo
7452
+ xèo
7453
+ xẽo
7454
+ xẻo
7455
+ xẹo
7456
+ xép
7457
+ xếp
7458
+ xệp
7459
+ xẹp
7460
+ xét
7461
+ xệt
7462
+ xẹt
7463
+ xêu
7464
+ xều
7465
+ xệu
7466
+ xi
7467
+
7468
+
7469
+ xỉ
7470
+ xị
7471
+ xia
7472
+ xía
7473
+ xìa
7474
+ xỉa
7475
+ xích
7476
+ xịch
7477
+ xiếc
7478
+ xiêm
7479
+ xiểm
7480
+ xiên
7481
+ xiêng
7482
+ xiềng
7483
+ xiểng
7484
+ xiết
7485
+ xiêu
7486
+ xim
7487
+ xin
7488
+ xín
7489
+ xìn
7490
+ xĩn
7491
+ xỉn
7492
+ xịn
7493
+ xinh
7494
+ xính
7495
+ xình
7496
+ xĩnh
7497
+ xỉnh
7498
+ xít
7499
+ xịt
7500
+ xíu
7501
+ xìu
7502
+ xỉu
7503
+ xịu
7504
+ xo
7505
+
7506
+
7507
+ xố
7508
+ xồ
7509
+ xổ
7510
+ xỏ
7511
+ xọ
7512
+
7513
+ xớ
7514
+ xờ
7515
+ xỡ
7516
+ xở
7517
+ xoa
7518
+ xóa
7519
+ xòa
7520
+ xõa
7521
+ xỏa
7522
+ xoã
7523
+ xoác
7524
+ xoạc
7525
+ xoạch
7526
+ xoai
7527
+ xoài
7528
+ xoải
7529
+ xoàm
7530
+ xoan
7531
+ xoán
7532
+ xoàn
7533
+ xoăn
7534
+ xoắn
7535
+ xoẳn
7536
+ xoang
7537
+ xoàng
7538
+ xoảng
7539
+ xoạng
7540
+ xoành
7541
+ xoát
7542
+ xoạt
7543
+ xoay
7544
+ xoáy
7545
+ xóc
7546
+ xốc
7547
+ xộc
7548
+ xọc
7549
+ xoe
7550
+ xòe
7551
+ xọe
7552
+ xoen
7553
+ xoèn
7554
+ xoẻng
7555
+ xoét
7556
+ xoẹt
7557
+ xoi
7558
+ xói
7559
+ xôi
7560
+ xối
7561
+ xổi
7562
+ xơi
7563
+ xới
7564
+ xởi
7565
+ xom
7566
+ xóm
7567
+ xòm
7568
+ xôm
7569
+ xồm
7570
+ xổm
7571
+ xõm
7572
+ xơm
7573
+ xờm
7574
+ xon
7575
+ xón
7576
+ xôn
7577
+ xốn
7578
+ xồn
7579
+ xổn
7580
+ xộn
7581
+ xơn
7582
+ xớn
7583
+ xởn
7584
+ xong
7585
+ xóng
7586
+ xòng
7587
+ xông
7588
+ xống
7589
+ xồng
7590
+ xổng
7591
+ xõng
7592
+ xỏng
7593
+ xóp
7594
+ xốp
7595
+ xộp
7596
+ xọp
7597
+ xớp
7598
+ xợp
7599
+ xót
7600
+ xốt
7601
+ xớt
7602
+ xợt
7603
+ xu
7604
+
7605
+
7606
+
7607
+ xủ
7608
+ xụ
7609
+
7610
+ xứ
7611
+ xừ
7612
+ xử
7613
+ xự
7614
+ xua
7615
+ xúa
7616
+ xưa
7617
+ xửa
7618
+ xuân
7619
+ xuẩn
7620
+ xuất
7621
+ xuây
7622
+ xúc
7623
+ xục
7624
+ xức
7625
+ xực
7626
+ xuê
7627
+ xuề
7628
+ xuể
7629
+ xuệch
7630
+ xuềnh
7631
+ xui
7632
+ xúi
7633
+ xùi
7634
+ xụi
7635
+ xum
7636
+ xúm
7637
+ xùm
7638
+ xun
7639
+ xung
7640
+ xúng
7641
+ xùng
7642
+ xủng
7643
+ xụng
7644
+ xưng
7645
+ xứng
7646
+ xừng
7647
+ xửng
7648
+ xước
7649
+ xược
7650
+ xuôi
7651
+ xười
7652
+ xượi
7653
+ xuôm
7654
+ xuộm
7655
+ xuông
7656
+ xuống
7657
+ xuồng
7658
+ xuổng
7659
+ xương
7660
+ xướng
7661
+ xường
7662
+ xưởng
7663
+ xượt
7664
+ xúp
7665
+ xụp
7666
+ xút
7667
+ xụt
7668
+ xuy
7669
+ xúy
7670
+ xùy
7671
+ xuyên
7672
+ xuyến
7673
+ xuyền
7674
+ xuyết
7675
+ xuyệt
7676
+ xuýt
7677
+ xuỵt
7678
+ xy
7679
+ y
7680
+ ý
7681
+
7682
+
7683
+
7684
+ yêm
7685
+ yếm
7686
+ yểm
7687
+ yên
7688
+ yến
7689
+ yêng
7690
+ yểng
7691
+ yết
7692
+ yêu
7693
+ yếu
7694
+ yểu
7695
+ oắm
7696
+ phưu
7697
+ bềm
7698
+
viphoneme/T2IPA.py ADDED
@@ -0,0 +1,1189 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #Grapheme
2
+ Rime_tone=[ "a","ă","â","e","ê","i","o","ô","ơ","u","ư","y","iê","oa","oă","oe","oo","uâ","uê","uô","uơ","uy","ươ","uyê","yê", #blank
3
+ "á","ắ","ấ","é","ế","í","ó","ố","ớ","ú","ứ","ý","iế","óa","oắ","óe","oó","uấ","uế","uố","ướ","úy","ướ","uyế","yế", #grave
4
+ "oá", "oé","óo", "uý",
5
+ "à","ằ","ầ","è","ề","ì","ò","ồ","ờ","ù","ừ","ỳ","iề","òa","oằ","òe","oò","uầ","uề","uồ","ườ","ùy","ườ","uyề","yề", #acute
6
+ "oà", "oè","òo", "uỳ",
7
+ "ả","ẳ","ẩ","ẻ","ể","ỉ","ỏ","ổ","ở","ủ","ử","ỷ","iể","ỏa","oẳ","ỏe","oỏ","uẩ","uể","uổ","ưở","ủy","ưở","uyể","yể", #hook
8
+ "oả", "oẻ","ỏo", "uỷ",
9
+ "ã","ẵ","ẫ","ẽ","ễ","ĩ","õ","ỗ","ỡ","ũ","ữ","ỹ","iễ","õa","oẵ","õe","oõ","uẫ","uễ","uỗ","ưỡ","ũy","ưỡ","uyễ","yễ", #tilde
10
+ "oã", "oẽ","õo", "uỹ",
11
+ "ạ","ặ","ậ","ẹ","ệ","ị","ọ","ộ","ợ","ụ","ự","ỵ","iệ","ọa","oặ","ọe","oọ","uậ","uệ","uệ","ượ","ụy","ượ","uyệ","yệ", #dot
12
+ "oạ", "oẹ","ọo", "uỵ"]
13
+
14
+ Onset=["b","d","h","l","m","n","p","r","s","t","v","x","đ","p",
15
+ "tr", "th", "ch", "ph","nh","kh","gi","qu",
16
+ "ngh","ng","gh","g","k","c"]
17
+ #coding: utf-8
18
+ #Custom phoneme follow the https://vi.wikipedia.org/wiki/%C3%82m_v%E1%BB%8B_h%E1%BB%8Dc_ti%E1%BA%BFng_Vi%E1%BB%87t
19
+ #Improve pronoune between N C S
20
+
21
+ Cus_onsets = { u'b' : u'b', u't' : u't', u'th' : u'tʰ', u'đ' : u'd', u'ch' : u'c',
22
+ u'kh' : u'x', u'g' : u'ɣ', u'l' : u'l', u'm' : u'm', u'n': u'n',
23
+ u'ngh': u'ŋ', u'nh' : u'ɲ', u'ng' : u'ŋ', u'ph' : u'f', u'v' : u'v',
24
+ u'x' : u's', u'd' : u'z', u'h' : u'h', u'p' : u'p', u'qu' : u'kw',
25
+ u'gi' : u'j', u'tr' : u'ʈ', u'k' : u'k', u'c' : u'k', u'gh' : u'ɣ',
26
+ u'r' : u'ʐ', u's' : u'ʂ', u'gi': u'j'}
27
+
28
+
29
+ Cus_nuclei = { u'a' : u'a', u'á' : u'a', u'à' : u'a', u'ả' : u'a', u'ã' : u'a', u'ạ' : u'a',
30
+ u'â' : u'ɤ̆', u'ấ' : u'ɤ̆', u'ầ' : u'ɤ̆', u'ẩ' : u'ɤ̆', u'ẫ' : u'ɤ̆', u'ậ' : u'ɤ̆',
31
+ u'ă' : u'ă', u'ắ' : u'ă', u'ằ' : u'ă', u'ẳ' : u'ă', u'ẵ' : u'ă', u'ặ' : u'ă',
32
+ u'e' : u'ɛ', u'é' : u'ɛ', u'è' : u'ɛ', u'ẻ' : u'ɛ', u'ẽ' : u'ɛ', u'ẹ' : u'ɛ',
33
+ u'ê' : u'e', u'ế' : u'e', u'ề' : u'e', u'ể' : u'e', u'ễ' : u'e', u'ệ' : u'e',
34
+ u'i' : u'i', u'í' : u'i', u'ì' : u'i', u'ỉ' : u'i', u'ĩ' : u'i', u'ị' : u'i',
35
+ u'o' : u'ɔ', u'ó' : u'ɔ', u'ò' : u'ɔ', u'ỏ' : u'ɔ', u'õ' : u'ɔ', u'ọ' : u'ɔ',
36
+ u'ô' : u'o', u'ố' : u'o', u'ồ' : u'o', u'ổ' : u'o', u'ỗ' : u'o', u'ộ' : u'o',
37
+ u'ơ' : u'ɤ', u'ớ' : u'ɤ', u'ờ' : u'ɤ', u'ở' : u'ɤ', u'ỡ' : u'ɤ', u'ợ' : u'ɤ',
38
+ u'u' : u'u', u'ú' : u'u', u'ù' : u'u', u'ủ' : u'u', u'ũ' : u'u', u'ụ' : u'u',
39
+ u'ư' : u'ɯ', u'ứ' : u'ɯ', u'ừ' : u'ɯ', u'ử' : u'ɯ', u'ữ' : u'ɯ', u'ự' : u'ɯ',
40
+ u'y' : u'i', u'ý' : u'i', u'ỳ' : u'i', u'ỷ' : u'i', u'ỹ' : u'i', u'ỵ' : u'i',
41
+
42
+ u'eo' : u'eo', u'éo' : u'eo', u'èo' : u'eo', u'ẻo' : u'eo', u'ẽo': u'eo', u'ẹo' : u'eo',
43
+ u'êu' : u'ɛu', u'ếu' : u'ɛu', u'ều' : u'ɛu', u'ểu' : u'ɛu', u'ễu': u'ɛu', u'ệu' : u'ɛu',
44
+ u'ia' : u'iə', u'ía' : u'iə', u'ìa' : u'iə', u'ỉa' : u'iə', u'ĩa' : u'iə', u'ịa' : u'iə',
45
+ u'ia' : u'iə', u'iá' : u'iə', u'ià' : u'iə', u'iả' : u'iə', u'iã' : u'iə', u'iạ' : u'iə',
46
+ u'iê' : u'iə', u'iế' : u'iə', u'iề' : u'iə', u'iể' : u'iə', u'iễ' : u'iə', u'iệ' : u'iə',
47
+ u'oo' : u'ɔ', u'óo' : u'ɔ', u'òo' : u'ɔ', u'ỏo' : u'ɔ', u'õo' : u'ɔ', u'ọo' : u'ɔ',
48
+ u'oo' : u'ɔ', u'oó' : u'ɔ', u'oò' : u'ɔ', u'oỏ' : u'ɔ', u'oõ' : u'ɔ', u'oọ' : u'ɔ',
49
+ u'ôô' : u'o', u'ốô' : u'o', u'ồô' : u'o', u'ổô' : u'o', u'ỗô' : u'o', u'ộô' : u'o',
50
+ u'ôô' : u'o', u'ôố' : u'o', u'ôồ' : u'o', u'ôổ' : u'o', u'ôỗ' : u'o', u'ôộ' : u'o',
51
+ u'ua' : u'uə', u'úa' : u'uə', u'ùa' : u'uə', u'ủa' : u'uə', u'ũa' : u'uə', u'ụa' : u'uə',
52
+ u'uô' : u'uə', u'uố' : u'uə', u'uồ' : u'uə', u'uổ' : u'uə', u'uỗ' : u'uə', u'uộ' : u'uə',
53
+ u'ưa' : u'ɯə', u'ứa' : u'ɯə', u'ừa' : u'ɯə', u'ửa' : u'ɯə', u'ữa' : u'ɯə', u'ựa' : u'ɯə',
54
+ u'ươ' : u'ɯə', u'ướ' : u'ɯə', u'ườ' : u'ɯə', u'ưở' : u'ɯə', u'ưỡ' : u'ɯə', u'ượ' : u'ɯə',
55
+ u'yê' : u'iɛ', u'yế' : u'iɛ', u'yề' : u'iɛ', u'yể' : u'iɛ', u'yễ' : u'iɛ', u'yệ' : u'iɛ',
56
+ u'uơ' : u'uə', u'uở' : u'uə', u'uờ': u'uə', u'uở' : u'uə', u'uỡ' : u'uə', u'uợ' : u'uə',
57
+ }
58
+
59
+
60
+ Cus_offglides = { u'ai' : u'aj', u'ái' : u'aj', u'ài' : u'aj', u'ải' : u'aj', u'ãi' : u'aj', u'ại' : u'aj',
61
+ u'ay' : u'ăj', u'áy' : u'ăj', u'ày' : u'ăj', u'ảy' : u'ăj', u'ãy' : u'ăj', u'ạy' : u'ăj',
62
+ u'ao' : u'aw', u'áo' : u'aw', u'ào' : u'aw', u'ảo' : u'aw', u'ão' : u'aw', u'ạo' : u'aw',
63
+ u'au' : u'ăw', u'áu' : u'ăw', u'àu' : u'ăw', u'ảu' : u'ăw', u'ãu' : u'ăw', u'ạu' : u'ăw',
64
+ u'ây' : u'ɤ̆j', u'ấy' : u'ɤ̆j', u'ầy' : u'ɤ̆j', u'ẩy' : u'ɤ̆j', u'ẫy' : u'ɤ̆j', u'ậy' : u'ɤ̆j',
65
+ u'âu' : u'ɤ̆w', u'ấu' : u'ɤ̆w', u'ầu': u'ɤ̆w', u'ẩu' : u'ɤ̆w', u'ẫu' : u'ɤ̆w', u'ậu' : u'ɤ̆w',
66
+ u'eo' : u'ew', u'éo' : u'ew', u'èo' : u'ew', u'ẻo' : u'ew', u'ẽo' : u'ew', u'ẹo' : u'ew',
67
+ u'iu' : u'iw', u'íu' : u'iw', u'ìu' : u'iw', u'ỉu' : u'iw', u'ĩu' : u'iw', u'ịu' : u'iw',
68
+ u'oi' : u'ɔj', u'ói' : u'ɔj', u'òi' : u'ɔj', u'ỏi' : u'ɔj', u'õi' : u'ɔj', u'ọi' : u'ɔj',
69
+ u'ôi' : u'oj', u'ối' : u'oj', u'ồi' : u'oj', u'ổi' : u'oj', u'ỗi' : u'oj', u'ội' : u'oj',
70
+ u'ui' : u'uj', u'úi' : u'uj', u'ùi' : u'uj', u'ủi' : u'uj', u'ũi' : u'uj', u'ụi' : u'uj',
71
+
72
+ #u'uy' : u'uj', u'úy' : u'uj', u'ùy' : u'uj', u'ủy' : u'uj', u'ũy' : u'uj', u'ụy' : u'uj',
73
+ u'uy' : u'ʷi', u'úy' : u'uj', u'ùy' : u'uj', u'ủy' : u'uj', u'ũy' : u'uj', u'ụy' : u'uj',
74
+ #thay để hạn chế trùng âm
75
+ u'uy' : u'ʷi', u'uý' : u'ʷi', u'uỳ' : u'ʷi', u'uỷ' : u'ʷi', u'uỹ' : u'ʷi', u'uỵ' : u'ʷi',
76
+
77
+ u'ơi' : u'ɤj', u'ới' : u'ɤj', u'ời' : u'ɤj', u'ởi' : u'ɤj', u'ỡi' : u'ɤj', u'ợi' : u'ɤj',
78
+ u'ưi' : u'ɯj', u'ứi' : u'ɯj', u'ừi' : u'ɯj', u'ửi' : u'ɯj', u'ữi' : u'ɯj', u'ựi' : u'ɯj',
79
+ u'ưu' : u'ɯw', u'ứu' : u'ɯw', u'ừu' : u'ɯw', u'ửu' : u'ɯw', u'ữu' : u'ɯw', u'ựu' : u'ɯw',
80
+
81
+ u'iêu' : u'iəw', u'iếu' : u'iəw', u'iều' : u'iəw', u'iểu' : u'iəw', u'iễu' : u'iəw', u'iệu' : u'iəw',
82
+ u'yêu' : u'iəw', u'yếu' : u'iəw', u'yều' : u'iəw', u'yểu' : u'iəw', u'yễu' : u'iəw', u'yệu' : u'iəw',
83
+ u'uôi' : u'uəj', u'uối' : u'uəj', u'uồi' : u'uəj', u'uổi' : u'uəj', u'uỗi' : u'uəj', u'uội' : u'uəj',
84
+ u'ươi' : u'ɯəj', u'ưới' : u'ɯəj', u'ười' : u'ɯəj', u'ưởi' : u'ɯəj', u'ưỡi' : u'ɯəj', u'ượi' : u'ɯəj',
85
+ u'ươu' : u'ɯəw', u'ướu' : u'ɯəw', u'ườu' : u'ɯəw', u'ưởu' : u'ɯəw', 'ưỡu' : u'ɯəw', u'ượu' : u'ɯəw'
86
+ }
87
+ #Các âm vòng ở đây i chang không vòm: không có w ở trước => Try to add ʷ
88
+ Cus_onglides = { u'oa' : u'ʷa', u'oá' : u'ʷa', u'oà' : u'ʷa', u'oả' : u'ʷa', u'oã' : u'ʷa', u'oạ' : u'ʷa',
89
+ u'óa' : u'ʷa', u'òa' : u'ʷa', u'ỏa' : u'ʷa', u'õa' : u'ʷa', u'ọa' : u'ʷa',
90
+ u'oă' : u'ʷă', u'oắ' : u'ʷă', u'oằ' : u'ʷă', u'oẳ' : u'ʷă', u'oẵ' : u'ʷă', u'oặ' : u'ʷă',
91
+ u'oe' : u'ʷɛ', u'oé' : u'ʷɛ', u'oè' : u'ʷɛ', u'oẻ' : u'ʷɛ', u'oẽ' : u'ʷɛ', u'oẹ' : u'ʷɛ',
92
+ u'oe' : u'ʷɛ', u'óe' : u'ʷɛ', u'òe' : u'ʷɛ', u'ỏe' : u'ʷɛ', u'õe' : u'ʷɛ', u'ọe' : u'ʷɛ',
93
+ u'ua' : u'ʷa', u'uá' : u'ʷa', u'uà' : u'ʷa', u'uả' : u'ʷa', u'uã' : u'ʷa', u'uạ' : u'ʷa',
94
+ u'uă' : u'ʷă', u'uắ' : u'ʷă', u'uằ' : u'ʷă', u'uẳ' : u'ʷă', u'uẵ' : u'ʷă', u'uặ' : u'ʷă',
95
+ u'uâ' : u'ʷɤ̆', u'uấ' : u'ʷɤ̆', u'uầ' : u'ʷɤ̆', u'uẩ' : u'ʷɤ̆', u'uẫ' : u'ʷɤ̆', u'uậ' : u'ʷɤ̆',
96
+ u'ue' : u'ʷɛ', u'ué' : u'ʷɛ', u'uè' : u'ʷɛ', u'uẻ' : u'ʷɛ', u'uẽ' : u'ʷɛ', u'uẹ' : u'ʷɛ',
97
+ u'uê' : u'ʷe', u'uế' : u'ʷe', u'uề' : u'ʷe', u'uể' : u'ʷe', u'uễ' : u'ʷe', u'uệ' : u'ʷe',
98
+ u'uơ' : u'ʷɤ', u'uớ' : u'ʷɤ', u'uờ' : u'ʷɤ', u'uở' : u'ʷɤ', u'uỡ' : u'ʷɤ', u'uợ' : u'ʷɤ',
99
+ u'uy' : u'ʷi', u'uý' : u'ʷi', u'uỳ' : u'ʷi', u'uỷ' : u'ʷi', u'uỹ' : u'ʷi', u'uỵ' : u'ʷi',
100
+ u'uya' : u'ʷiə', u'uyá' : u'ʷiə', u'uyà' : u'ʷiə', u'uyả' : u'ʷiə', u'uyã' : u'ʷiə', u'uyạ' : u'ʷiə',
101
+ u'uyê' : u'ʷiə', u'uyế' : u'ʷiə', u'uyề' : u'ʷiə', u'uyể' : u'ʷiə', u'uyễ' : u'ʷiə', u'uyệ' : u'ʷiə',
102
+ u'uyu' : u'ʷiu', u'uyú' : u'ʷiu', u'uyù' : u'ʷiu', u'uyủ' : u'ʷiu', u'uyũ' : u'ʷiu', u'uyụ' : u'ʷiu',
103
+ u'uyu' : u'ʷiu', u'uýu' : u'ʷiu', u'uỳu' : u'ʷiu', u'uỷu' : u'ʷiu', u'uỹu' : u'ʷiu', u'uỵu' : u'ʷiu',
104
+ u'oen' : u'ʷen', u'oén' : u'ʷen', u'oèn' : u'ʷen', u'oẻn' : u'ʷen', u'oẽn' : u'ʷen', u'oẹn' : u'ʷen',
105
+ u'oet' : u'ʷet', u'oét' : u'ʷet', u'oèt' : u'ʷet', u'oẻt' : u'ʷet', u'oẽt' : u'ʷet', u'oẹt' : u'ʷet'
106
+ }
107
+
108
+ Cus_onoffglides = { u'oe' : u'ɛj', u'oé' : u'ɛj', u'oè' : u'ɛj', u'oẻ' : u'ɛj', u'oẽ' : u'ɛj', u'oẹ' : u'ɛj',
109
+ u'oai' : u'aj', u'oái' : u'aj', u'oài' : u'aj', u'oải' : u'aj', u'oãi' : u'aj', u'oại' : u'aj',
110
+ u'oay' : u'ăj', u'oáy' : u'ăj', u'oày' : u'ăj', u'oảy' : u'ăj', u'oãy' : u'ăj', u'oạy' : u'ăj',
111
+ u'oao' : u'aw', u'oáo' : u'aw', u'oào' : u'aw', u'oảo' : u'aw', u'oão' : u'aw', u'oạo' : u'aw',
112
+ u'oeo' : u'ew', u'oéo' : u'ew', u'oèo' : u'ew', u'oẻo' : u'ew', u'oẽo' : u'ew', u'oẹo' : u'ew',
113
+ u'oeo' : u'ew', u'óeo' : u'ew', u'òeo' : u'ew', u'ỏeo' : u'ew', u'õeo' : u'ew', u'ọeo' : u'ew',
114
+ u'ueo' : u'ew', u'uéo' : u'ew', u'uèo' : u'ew', u'uẻo' : u'ew', u'uẽo' : u'ew', u'uẹo' : u'ew',
115
+ u'uai' : u'aj', u'uái' : u'aj', u'uài' : u'aj', u'uải' : u'aj', u'uãi' : u'aj', u'uại' : u'aj',
116
+ u'uay' : u'ăj', u'uáy' : u'ăj', u'uày' : u'ăj', u'uảy' : u'ăj', u'uãy' : u'ăj', u'uạy' : u'ăj',
117
+ u'uây' : u'ɤ̆j', u'uấy' : u'ɤ̆j', u'uầy' : u'ɤ̆j', u'uẩy' : u'ɤ̆j', u'uẫy' : u'ɤ̆j', u'uậy' : u'ɤ̆j'
118
+ }
119
+
120
+ Cus_codas = { u'p' : u'p', u't' : u't', u'c' : u'k', u'm' : u'm', u'n' : u'n', u'ng' : u'ŋ', u'nh' : u'ɲ', u'ch' : u'tʃ' }
121
+
122
+ Cus_tones_p = { u'á' : 5, u'à' : 2, u'ả' : 4, u'ã' : 3, u'ạ' : 6,
123
+ u'ấ' : 5, u'ầ' : 2, u'ẩ' : 4, u'ẫ' : 3, u'ậ' : 6,
124
+ u'ắ' : 5, u'ằ' : 2, u'ẳ' : 4, u'ẵ' : 3, u'ặ' : 6,
125
+ u'é' : 5, u'è' : 2, u'ẻ' : 4, u'ẽ' : 3, u'ẹ' : 6,
126
+ u'ế' : 5, u'ề' : 2, u'ể' : 4, u'ễ' : 3, u'ệ' : 6,
127
+ u'í' : 5, u'ì' : 2, u'ỉ' : 4, u'ĩ' : 3, u'ị' : 6,
128
+ u'ó' : 5, u'ò' : 2, u'ỏ' : 4, u'õ' : 3, u'ọ' : 6,
129
+ u'ố' : 5, u'ồ' : 2, u'ổ' : 4, u'ỗ' : 3, u'ộ' : 6,
130
+ u'ớ' : 5, u'ờ' : 2, u'ở' : 4, u'ỡ' : 3, u'ợ' : 6,
131
+ u'ú' : 5, u'ù' : 2, u'ủ' : 4, u'ũ' : 3, u'ụ' : 6,
132
+ u'ứ' : 5, u'ừ' : 2, u'ử' : 4, u'ữ' : 3, u'ự' : 6,
133
+ u'ý' : 5, u'ỳ' : 2, u'ỷ' : 4, u'ỹ' : 3, u'ỵ' : 6,
134
+ }
135
+
136
+ Cus_gi = { u'gi' : u'zi', u'gí': u'zi', u'gì' : u'zi', u'gì' : u'zi', u'gĩ' : u'zi', u'gị' : u'zi'}
137
+
138
+ Cus_qu = {u'quy' : u'kwi', u'qúy' : u'kwi', u'qùy' : u'kwi', u'qủy' : u'kwi', u'qũy' : u'kwi', u'qụy' : u'kwi'}
139
+
140
+
141
+ #######################################################
142
+ # North
143
+ # #coding: utf-8
144
+
145
+ N_onsets = { u'b' : u'b', u't' : u't', u'th' : u'tʰ', u'đ' : u'd', u'ch' : u'c',
146
+ u'kh' : u'x', u'g' : u'ɣ', u'l' : u'l', u'm' : u'm', u'n': u'n',
147
+ u'ngh': u'ŋ', u'nh' : u'ɲ', u'ng' : u'ŋ', u'ph' : u'f', u'v' : u'v',
148
+ u'x' : u's', u'd' : u'z', u'h' : u'h', u'p' : u'p', u'qu' : u'kw',
149
+ u'gi' : u'z', u'tr' : u'c', u'k' : u'k', u'c' : u'k', u'gh' : u'ɣ',
150
+ u'r' : u'z', u's' : u's', u'gi': u'z'}
151
+
152
+
153
+ N_nuclei = { u'a' : u'a', u'á' : u'a', u'à' : u'a', u'ả' : u'a', u'ã' : u'a', u'ạ' : u'a',
154
+ u'â' : u'ɤ̆', u'ấ' : u'ɤ̆', u'ầ' : u'ɤ̆', u'ẩ' : u'ɤ̆', u'ẫ' : u'ɤ̆', u'ậ' : u'ɤ̆',
155
+ u'ă' : u'ă', u'ắ' : u'ă', u'ằ' : u'ă', u'ẳ' : u'ă', u'ẵ' : u'ă', u'ặ' : u'ă',
156
+ u'e' : u'ɛ', u'é' : u'ɛ', u'è' : u'ɛ', u'ẻ' : u'ɛ', u'ẽ' : u'ɛ', u'ẹ' : u'ɛ',
157
+ u'ê' : u'e', u'ế' : u'e', u'ề' : u'e', u'ể' : u'e', u'ễ' : u'e', u'ệ' : u'e',
158
+ u'i' : u'i', u'í' : u'i', u'ì' : u'i', u'ỉ' : u'i', u'ĩ' : u'i', u'ị' : u'i',
159
+ u'o' : u'ɔ', u'ó' : u'ɔ', u'ò' : u'ɔ', u'ỏ' : u'ɔ', u'õ' : u'ɔ', u'ọ' : u'ɔ',
160
+ u'ô' : u'o', u'ố' : u'o', u'ồ' : u'o', u'ổ' : u'o', u'ỗ' : u'o', u'ộ' : u'o',
161
+ u'ơ' : u'ɤ', u'ớ' : u'ɤ', u'ờ' : u'ɤ', u'ở' : u'ɤ', u'ỡ' : u'ɤ', u'ợ' : u'ɤ',
162
+ u'u' : u'u', u'ú' : u'u', u'ù' : u'u', u'ủ' : u'u', u'ũ' : u'u', u'ụ' : u'u',
163
+ u'ư' : u'ɯ', u'ứ' : u'ɯ', u'ừ' : u'ɯ', u'ử' : u'ɯ', u'ữ' : u'ɯ', u'ự' : u'ɯ',
164
+ u'y' : u'i', u'ý' : u'i', u'ỳ' : u'i', u'ỷ' : u'i', u'ỹ' : u'i', u'ỵ' : u'i',
165
+
166
+ u'eo' : u'eo', u'éo' : u'eo', u'èo' : u'eo', u'ẻo' : u'eo', u'ẽo': u'eo', u'ẹo' : u'eo',
167
+ u'êu' : u'ɛu', u'ếu' : u'ɛu', u'ều' : u'ɛu', u'ểu' : u'ɛu', u'ễu': u'ɛu', u'ệu' : u'ɛu',
168
+ u'ia' : u'iə', u'ía' : u'iə', u'ìa' : u'iə', u'ỉa' : u'iə', u'ĩa' : u'iə', u'ịa' : u'iə',
169
+ u'ia' : u'iə', u'iá' : u'iə', u'ià' : u'iə', u'iả' : u'iə', u'iã' : u'iə', u'iạ' : u'iə',
170
+ u'iê' : u'iə', u'iế' : u'iə', u'iề' : u'iə', u'iể' : u'iə', u'iễ' : u'iə', u'iệ' : u'iə',
171
+ u'oo' : u'ɔ', u'óo' : u'ɔ', u'òo' : u'ɔ', u'ỏo' : u'ɔ', u'õo' : u'ɔ', u'ọo' : u'ɔ',
172
+ u'oo' : u'ɔ', u'oó' : u'ɔ', u'oò' : u'ɔ', u'oỏ' : u'ɔ', u'oõ' : u'ɔ', u'oọ' : u'ɔ',
173
+ u'ôô' : u'o', u'ốô' : u'o', u'ồô' : u'o', u'ổô' : u'o', u'ỗô' : u'o', u'ộô' : u'o',
174
+ u'ôô' : u'o', u'ôố' : u'o', u'ôồ' : u'o', u'ôổ' : u'o', u'��ỗ' : u'o', u'ôộ' : u'o',
175
+ u'ua' : u'uə', u'úa' : u'uə', u'ùa' : u'uə', u'ủa' : u'uə', u'ũa' : u'uə', u'ụa' : u'uə',
176
+ u'uô' : u'uə', u'uố' : u'uə', u'uồ' : u'uə', u'uổ' : u'uə', u'uỗ' : u'uə', u'uộ' : u'uə',
177
+ u'ưa' : u'ɯə', u'ứa' : u'ɯə', u'ừa' : u'ɯə', u'ửa' : u'ɯə', u'ữa' : u'ɯə', u'ựa' : u'ɯə',
178
+ u'ươ' : u'ɯə', u'ướ' : u'ɯə', u'ườ' : u'ɯə', u'ưở' : u'ɯə', u'ưỡ' : u'ɯə', u'ượ' : u'ɯə',
179
+ u'yê' : u'iɛ', u'yế' : u'iɛ', u'yề' : u'iɛ', u'yể' : u'iɛ', u'yễ' : u'iɛ', u'yệ' : u'iɛ',
180
+ u'uơ' : u'uə', u'uở' : u'uə', u'uờ': u'uə', u'uở' : u'uə', u'uỡ' : u'uə', u'uợ' : u'uə',
181
+ }
182
+
183
+
184
+ N_offglides = { u'ai' : u'aj', u'ái' : u'aj', u'ài' : u'aj', u'ải' : u'aj', u'ãi' : u'aj', u'ại' : u'aj',
185
+ u'ay' : u'ăj', u'áy' : u'ăj', u'ày' : u'ăj', u'ảy' : u'ăj', u'ãy' : u'ăj', u'ạy' : u'ăj',
186
+ u'ao' : u'aw', u'áo' : u'aw', u'ào' : u'aw', u'ảo' : u'aw', u'ão' : u'aw', u'ạo' : u'aw',
187
+ u'au' : u'ăw', u'áu' : u'ăw', u'àu' : u'ăw', u'ảu' : u'ăw', u'ãu' : u'ăw', u'ạu' : u'ăw',
188
+ u'ây' : u'ɤ̆j', u'ấy' : u'ɤ̆j', u'ầy' : u'ɤ̆j', u'ẩy' : u'ɤ̆j', u'ẫy' : u'ɤ̆j', u'ậy' : u'ɤ̆j',
189
+ u'âu' : u'ɤ̆w', u'ấu' : u'ɤ̆w', u'ầu': u'ɤ̆w', u'ẩu' : u'ɤ̆w', u'ẫu' : u'ɤ̆w', u'ậu' : u'ɤ̆w',
190
+ u'eo' : u'ew', u'éo' : u'ew', u'èo' : u'ew', u'ẻo' : u'ew', u'ẽo' : u'ew', u'ẹo' : u'ew',
191
+ u'iu' : u'iw', u'íu' : u'iw', u'ìu' : u'iw', u'ỉu' : u'iw', u'ĩu' : u'iw', u'ịu' : u'iw',
192
+ u'oi' : u'ɔj', u'ói' : u'ɔj', u'òi' : u'ɔj', u'ỏi' : u'ɔj', u'õi' : u'ɔj', u'ọi' : u'ɔj',
193
+ u'ôi' : u'oj', u'ối' : u'oj', u'ồi' : u'oj', u'ổi' : u'oj', u'ỗi' : u'oj', u'ội' : u'oj',
194
+ u'ui' : u'uj', u'úi' : u'uj', u'ùi' : u'uj', u'ủi' : u'uj', u'ũi' : u'uj', u'ụi' : u'uj',
195
+ u'uy' : u'uj', u'úy' : u'uj', u'ùy' : u'uj', u'ủy' : u'uj', u'ũy' : u'uj', u'ụy' : u'uj',
196
+ u'ơi' : u'ɤj', u'ới' : u'ɤj', u'ời' : u'ɤj', u'ởi' : u'ɤj', u'ỡi' : u'ɤj', u'ợi' : u'ɤj',
197
+ u'ưi' : u'ɯj', u'ứi' : u'ɯj', u'ừi' : u'ɯj', u'ửi' : u'ɯj', u'ữi' : u'ɯj', u'ựi' : u'ɯj',
198
+ u'ưu' : u'ɯw', u'ứu' : u'ɯw', u'ừu' : u'ɯw', u'ửu' : u'ɯw', u'ữu' : u'ɯw', u'ựu' : u'ɯw',
199
+
200
+ u'iêu' : u'iəw', u'iếu' : u'iəw', u'iều' : u'iəw', u'iểu' : u'iəw', u'iễu' : u'iəw', u'iệu' : u'iəw',
201
+ u'yêu' : u'iəw', u'yếu' : u'iəw', u'yều' : u'iəw', u'yểu' : u'iəw', u'yễu' : u'iəw', u'yệu' : u'iəw',
202
+ u'uôi' : u'uəj', u'uối' : u'uəj', u'uồi' : u'uəj', u'uổi' : u'uəj', u'uỗi' : u'uəj', u'uội' : u'uəj',
203
+ u'ươi' : u'ɯəj', u'ưới' : u'ɯəj', u'ười' : u'ɯəj', u'ưởi' : u'ɯəj', u'ưỡi' : u'ɯəj', u'ượi' : u'ɯəj',
204
+ u'ươu' : u'ɯəw', u'ướu' : u'ɯəw', u'ườu' : u'ɯəw', u'ưởu' : u'ɯəw', 'ưỡu' : u'ɯəw', u'ượu' : u'ɯəw'
205
+ }
206
+ N_onglides = { u'oa' : u'a', u'oá' : u'a', u'oà' : u'a', u'oả' : u'a', u'oã' : u'a', u'oạ' : u'a',
207
+ u'óa' : u'a', u'òa' : u'a', u'ỏa' : u'a', u'õa' : u'a', u'ọa' : u'a',
208
+ u'oă' : u'ă', u'oắ' : u'ă', u'oằ' : u'ă', u'oẳ' : u'ă', u'oẵ' : u'ă', u'oặ' : u'ă',
209
+ u'oe' : u'e', u'oé' : u'e', u'oè' : u'e', u'oẻ' : u'e', u'oẽ' : u'e', u'oẹ' : u'e',
210
+ u'oe' : u'e', u'óe' : u'e', u'òe' : u'e', u'ỏe' : u'e', u'õe' : u'e', u'ọe' : u'e',
211
+ u'ua' : u'a', u'uá' : u'a', u'uà' : u'a', u'uả' : u'a', u'uã' : u'a', u'uạ' : u'a',
212
+ u'uă' : u'ă', u'uắ' : u'ă', u'uằ' : u'ă', u'uẳ' : u'ă', u'uẵ' : u'ă', u'uặ' : u'ă',
213
+ u'uâ' : u'ɤ̆', u'uấ' : u'ɤ̆', u'uầ' : u'ɤ̆', u'uẩ' : u'ɤ̆', u'uẫ' : u'ɤ̆', u'uậ' : u'ɤ̆',
214
+ u'ue' : u'ɛ', u'ué' : u'ɛ', u'uè' : u'ɛ', u'uẻ' : u'ɛ', u'uẽ' : u'ɛ', u'uẹ' : u'ɛ',
215
+ u'uê' : u'e', u'uế' : u'e', u'uề' : u'e', u'uể' : u'e', u'uễ' : u'e', u'uệ' : u'e',
216
+ u'uơ' : u'ɤ', u'uớ' : u'ɤ', u'uờ' : u'ɤ', u'uở' : u'ɤ', u'uỡ' : u'ɤ', u'uợ' : u'ɤ',
217
+ u'uy' : u'i', u'uý' : u'i', u'uỳ' : u'i', u'uỷ' : u'i', u'uỹ' : u'i', u'uỵ' : u'i',
218
+ u'uya' : u'iə', u'uyá' : u'iə', u'uyà' : u'iə', u'uyả' : u'iə', u'uyã' : u'iə', u'uyạ' : u'iə',
219
+ u'uyê' : u'iə', u'uyế' : u'iə', u'uyề' : u'iə', u'uyể' : u'iə', u'uyễ' : u'iə', u'uyệ' : u'iə',
220
+ u'uyu' : u'iu', u'uyú' : u'iu', u'uyù' : u'iu', u'uyủ' : u'iu', u'uyũ' : u'iu', u'uyụ' : u'iu',
221
+ u'uyu' : u'iu', u'uýu' : u'iu', u'uỳu' : u'iu', u'uỷu' : u'iu', u'uỹu' : u'iu', u'uỵu' : u'iu',
222
+ u'oen' : u'en', u'oén' : u'en', u'oèn' : u'en', u'oẻn' : u'en', u'oẽn' : u'en', u'oẹn' : u'en',
223
+ u'oet' : u'et', u'oét' : u'et', u'oèt' : u'et', u'oẻt' : u'et', u'oẽt' : u'et', u'oẹt' : u'et'
224
+ }
225
+
226
+ N_onoffglides = { u'oe' : u'ej', u'oé' : u'ej', u'oè' : u'ej', u'oẻ' : u'ej', u'oẽ' : u'ej', u'oẹ' : u'ej',
227
+ u'oai' : u'aj', u'oái' : u'aj', u'oài' : u'aj', u'oải' : u'aj', u'oãi' : u'aj', u'oại' : u'aj',
228
+ u'oay' : u'ăj', u'oáy' : u'ăj', u'oày' : u'ăj', u'oảy' : u'ăj', u'oãy' : u'ăj', u'oạy' : u'ăj',
229
+ u'oao' : u'aw', u'oáo' : u'aw', u'oào' : u'aw', u'oảo' : u'aw', u'oão' : u'aw', u'oạo' : u'aw',
230
+ u'oeo' : u'ew', u'oéo' : u'ew', u'oèo' : u'ew', u'oẻo' : u'ew', u'oẽo' : u'ew', u'oẹo' : u'ew',
231
+ u'oeo' : u'ew', u'óeo' : u'ew', u'òeo' : u'ew', u'ỏeo' : u'ew', u'õeo' : u'ew', u'ọeo' : u'ew',
232
+ u'ueo' : u'ew', u'uéo' : u'ew', u'uèo' : u'ew', u'uẻo' : u'ew', u'uẽo' : u'ew', u'uẹo' : u'ew',
233
+ u'uai' : u'aj', u'uái' : u'aj', u'uài' : u'aj', u'uải' : u'aj', u'uãi' : u'aj', u'uại' : u'aj',
234
+ u'uay' : u'ăj', u'uáy' : u'ăj', u'uày' : u'ăj', u'uảy' : u'ăj', u'uãy' : u'ăj', u'uạy' : u'ăj',
235
+ u'uây' : u'ɤ̆j', u'uấy' : u'ɤ̆j', u'uầy' : u'ɤ̆j', u'uẩy' : u'ɤ̆j', u'uẫy' : u'ɤ̆j', u'uậy' : u'ɤ̆j'
236
+ }
237
+
238
+ N_codas = { u'p' : u'p', u't' : u't', u'c' : u'k', u'm' : u'm', u'n' : u'n', u'ng' : u'ŋ', u'nh' : u'ɲ', u'ch' : u'k' }
239
+
240
+
241
+ #tones = { u'a' : 33, u'á' : 24, u'à' : 32, u'ả' : 312, u'ã' : u'35g', u'ạ' : u'21g',
242
+ # u'â' : 33, u'ấ' : 24, u'ầ' : 32, u'ẩ' : 312, u'ẫ' : u'35g', u'ậ' : u'21g',
243
+ # u'ă' : 33, u'ắ' : 24, u'ằ' : 32, u'ẳ' : 312, u'ẵ' : u'35g', u'ặ' : u'21g',
244
+ # u'e' : 33, u'é' : 24, u'è' : 32, u'ẻ' : 312, u'ẽ' : u'35g', u'ẹ' : u'21g',
245
+ # u'ê' : 33, u'ế' : 24, u'ề' : 32, u'ể' : 312, u'ễ' : u'35g', u'ệ' : u'21g',
246
+ # u'i' : 33, u'í' : 24, u'ì' : 32, u'ỉ' : 312, u'ĩ' : u'35g', u'ị' : u'21g',
247
+ # u'o' : 33, u'ó' : 24, u'ò' : 32, u'ỏ' : 312, u'õ' : u'35g', u'ọ' : u'21g',
248
+ # u'ô' : 33, u'ố' : 24, u'ồ' : 32, u'ổ' : 312, u'ỗ' : u'35g', u'ộ' : u'21g',
249
+ # u'ơ' : 33, u'ớ' : 24, u'ờ' : 32, u'ở' : 312, u'ỡ' : u'35g', u'ợ' : u'21g',
250
+ # u'u' : 33, u'ú' : 24, u'ù' : 32, u'ủ' : 312, u'ũ' : u'35g', u'ụ' : u'21g',
251
+ # u'ư' : 33, u'ứ' : 24, u'ừ' : 32, u'ử' : 312, u'ữ' : u'35g', u'ự' : u'21g',
252
+ # u'y' : 33, u'ý' : 24, u'ỳ' : 32, u'ỷ' : 312, u'ỹ' : u'35g', u'ỵ' : u'21g',
253
+ # }
254
+
255
+ N_tones = { u'á' : 24, u'à' : 32, u'ả' : 312, u'ã' : u'35g', u'ạ' : u'21g',
256
+ u'ấ' : 24, u'ầ' : 32, u'ẩ' : 312, u'ẫ' : u'35g', u'ậ' : u'21g',
257
+ u'ắ' : 24, u'ằ' : 32, u'ẳ' : 312, u'ẵ' : u'35g', u'ặ' : u'21g',
258
+ u'é' : 24, u'è' : 32, u'ẻ' : 312, u'ẽ' : u'35g', u'ẹ' : u'21g',
259
+ u'ế' : 24, u'ề' : 32, u'ể' : 312, u'ễ' : u'35g', u'ệ' : u'21g',
260
+ u'í' : 24, u'ì' : 32, u'ỉ' : 312, u'ĩ' : u'35g', u'ị' : u'21g',
261
+ u'ó' : 24, u'ò' : 32, u'ỏ' : 312, u'õ' : u'35g', u'ọ' : u'21g',
262
+ u'ố' : 24, u'ồ' : 32, u'ổ' : 312, u'ỗ' : u'35g', u'ộ' : u'21g',
263
+ u'ớ' : 24, u'ờ' : 32, u'ở' : 312, u'ỡ' : u'35g', u'ợ' : u'21g',
264
+ u'ú' : 24, u'ù' : 32, u'ủ' : 312, u'ũ' : u'35g', u'ụ' : u'21g',
265
+ u'ứ' : 24, u'ừ' : 32, u'ử' : 312, u'ữ' : u'35g', u'ự' : u'21g',
266
+ u'ý' : 24, u'ỳ' : 32, u'ỷ' : 312, u'ỹ' : u'35g', u'ỵ' : u'21g',
267
+ }
268
+ # used to use \u02C0 for the unicode raised glottal character
269
+
270
+ N_tones_p = { u'á' : 5, u'à' : 2, u'ả' : 4, u'ã' : 3, u'ạ' : 6,
271
+ u'ấ' : 5, u'ầ' : 2, u'ẩ' : 4, u'ẫ' : 3, u'ậ' : 6,
272
+ u'ắ' : 5, u'ằ' : 2, u'ẳ' : 4, u'ẵ' : 3, u'ặ' : 6,
273
+ u'é' : 5, u'è' : 2, u'ẻ' : 4, u'ẽ' : 3, u'ẹ' : 6,
274
+ u'ế' : 5, u'ề' : 2, u'ể' : 4, u'ễ' : 3, u'ệ' : 6,
275
+ u'í' : 5, u'ì' : 2, u'ỉ' : 4, u'ĩ' : 3, u'ị' : 6,
276
+ u'ó' : 5, u'ò' : 2, u'ỏ' : 4, u'õ' : 3, u'ọ' : 6,
277
+ u'ố' : 5, u'ồ' : 2, u'ổ' : 4, u'ỗ' : 3, u'ộ' : 6,
278
+ u'ớ' : 5, u'ờ' : 2, u'ở' : 4, u'ỡ' : 3, u'ợ' : 6,
279
+ u'ú' : 5, u'ù' : 2, u'ủ' : 4, u'ũ' : 3, u'ụ' : 6,
280
+ u'ứ' : 5, u'ừ' : 2, u'ử' : 4, u'ữ' : 3, u'ự' : 6,
281
+ u'ý' : 5, u'ỳ' : 2, u'ỷ' : 4, u'ỹ' : 3, u'ỵ' : 6,
282
+ }
283
+
284
+ N_gi = { u'gi' : u'zi', u'gí': u'zi', u'gì' : u'zi', u'gì' : u'zi', u'gĩ' : u'zi', u'gị' : u'zi'}
285
+
286
+ N_qu = {u'quy' : u'kwi', u'qúy' : u'kwi', u'qùy' : u'kwi', u'qủy' : u'kwi', u'qũy' : u'kwi', u'qụy' : u'kwi'}
287
+ #######################################################
288
+ #central.py
289
+ #coding: utf-8
290
+
291
+ C_onsets = { u'b' : u'b', u't' : u't', u'th' : u'tʰ', u'đ' : u'd', u'ch' : u'c',
292
+ u'kh' : u'x', u'g' : u'ɣ', u'l' : u'l', u'm' : u'm', u'n': u'n',
293
+ u'ngh': u'ŋ', u'nh' : u'ɲ', u'ng' : u'ŋ', u'ph' : u'f', u'v' : u'j',
294
+ u'x' : u's', u'd' : u'j', u'h' : u'h', u'p' : u'p', u'qu' : u'w',
295
+ u'gi' : u'j', u'tr' : u'ʈ', u'k' : u'k', u'c' : u'k', u'gh' : u'ɣ',
296
+ u'r' : u'ʐ', u's' : u'ʂ', u'gi' : u'j'
297
+ }
298
+
299
+ C_nuclei = { u'a' : u'a', u'á' : u'a', u'à' : u'a', u'ả' : u'a', u'ã' : u'a', u'ạ' : u'a',
300
+ u'â' : u'��̆', u'ấ' : u'ɤ̆', u'ầ' : u'ɤ̆', u'ẩ' : u'ɤ̆', u'ẫ' : u'ɤ̆', u'ậ' : u'ɤ̆',
301
+ u'ă' : u'ă', u'ắ' : u'ă', u'ằ' : u'ă', u'ẳ' : u'ă', u'ẵ' : u'ă', u'ặ' : u'ă',
302
+ u'e' : u'ɛ', u'é' : u'ɛ', u'è' : u'ɛ', u'ẻ' : u'ɛ', u'ẽ' : u'ɛ', u'ẹ' : u'ɛ',
303
+ u'ê' : u'e', u'ế' : u'e', u'ề' : u'e', u'ể' : u'e', u'ễ' : u'e', u'ệ' : u'e',
304
+ u'i' : u'i', u'í' : u'i', u'ì' : u'i', u'ỉ' : u'i', u'ĩ' : u'i', u'ị' : u'i',
305
+ u'o' : u'ɔ', u'ó' : u'ɔ', u'ò' : u'ɔ', u'ỏ' : u'ɔ', u'õ' : u'ɔ', u'ọ' : u'ɔ',
306
+ u'ô' : u'o', u'ố' : u'o', u'ồ' : u'o', u'ổ' : u'o', u'ỗ' : u'o', u'ộ' : u'o',
307
+ u'ơ' : u'ɤ', u'ớ' : u'ɤ', u'ờ' : u'ɤ', u'ở' : u'ɤ', u'ỡ' : u'ɤ', u'ợ' : u'ɤ',
308
+ u'u' : u'u', u'ú' : u'u', u'ù' : u'u', u'ủ' : u'u', u'ũ' : u'u', u'ụ' : u'u',
309
+ u'ư' : u'ɯ', u'ứ' : u'ɯ', u'ừ' : u'ɯ', u'ử' : u'ɯ', u'ữ' : u'ɯ', u'ự' : u'ɯ',
310
+ u'y' : u'i', u'ý' : u'i', u'ỳ' : u'i', u'ỷ' : u'i', u'ỹ' : u'i', u'ỵ' : u'i',
311
+
312
+ u'eo' : u'eo', u'éo' : u'eo', u'èo' : u'eo', u'ẻo' : u'eo', u'ẽo': u'eo', u'ẹo' : u'eo',
313
+ u'êu' : u'ɛu', u'ếu' : u'ɛu', u'ều' : u'ɛu', u'ểu' : u'ɛu', u'ễu': u'ɛu', u'ệu' : u'ɛu',
314
+ u'ia' : u'iə', u'ía' : u'iə', u'ìa' : u'iə', u'ỉa' : u'iə', u'ĩa' : u'iə', u'ịa' : u'iə',
315
+ u'ia' : u'iə', u'iá' : u'iə', u'ià' : u'iə', u'iả' : u'iə', u'iã' : u'iə', u'iạ' : u'iə',
316
+ u'iê' : u'iə', u'iế' : u'iə', u'iề' : u'iə', u'iể' : u'iə', u'iễ' : u'iə', u'iệ' : u'iə',
317
+ u'oo' : u'ɔ', u'óo' : u'ɔ', u'òo' : u'ɔ', u'ỏo' : u'ɔ', u'õo' : u'ɔ', u'ọo' : u'ɔ',
318
+ u'oo' : u'ɔ', u'oó' : u'ɔ', u'oò' : u'ɔ', u'oỏ' : u'ɔ', u'oõ' : u'ɔ', u'oọ' : u'ɔ',
319
+ u'ôô' : u'o', u'ốô' : u'o', u'ồô' : u'o', u'ổô' : u'o', u'ỗô' : u'o', u'ộô' : u'o',
320
+ u'ôô' : u'o', u'ôố' : u'o', u'ôồ' : u'o', u'ôổ' : u'o', u'ôỗ' : u'o', u'ôộ' : u'o',
321
+ u'ua' : u'uə', u'úa' : u'uə', u'ùa' : u'uə', u'ủa' : u'uə', u'ũa' : u'uə', u'ụa' : u'uə',
322
+ u'uô' : u'uə', u'uố' : u'uə', u'uồ' : u'uə', u'uổ' : u'uə', u'uỗ' : u'uə', u'uộ' : u'uə',
323
+ u'ưa' : u'ɯə', u'ứa' : u'ɯə', u'ừa' : u'ɯə', u'ửa' : u'ɯə', u'ữa' : u'ɯə', u'ựa' : u'ɯə',
324
+ u'ươ' : u'ɯə', u'ướ' : u'ɯə', u'ườ' : u'ɯə', u'ưở' : u'ɯə', u'ưỡ' : u'ɯə', u'ượ' : u'ɯə',
325
+ u'yê' : u'iɛ', u'yế' : u'iɛ', u'yề' : u'iɛ', u'yể' : u'iɛ', u'yễ' : u'iɛ', u'yệ' : u'iɛ',
326
+ u'uơ' : u'uə', u'uở' : u'uə', u'uờ': u'uə', u'uở' : u'uə', u'uỡ' : u'uə', u'uợ' : u'uə',
327
+ }
328
+
329
+ C_offglides = { u'ai' : u'aj', u'ái' : u'aj', u'ài' : u'aj', u'ải' : u'aj', u'ãi' : u'aj', u'ại' : u'aj',
330
+ u'ay' : u'ăj', u'áy' : u'ăj', u'ày' : u'ăj', u'ảy' : u'ăj', u'ãy' : u'ăj', u'ạy' : u'ăj',
331
+ u'ao' : u'aw', u'áo' : u'aw', u'ào' : u'aw', u'ảo' : u'aw', u'ão' : u'aw', u'ạo' : u'aw',
332
+ u'au' : u'ăw', u'áu' : u'ăw', u'àu' : u'ăw', u'ảu' : u'ăw', u'ãu' : u'ăw', u'ạu' : u'ăw',
333
+ u'ây' : u'ɤ̆j', u'ấy' : u'ɤ̆j', u'ầy' : u'ɤ̆j', u'ẩy' : u'ɤ̆j', u'ẫy' : u'ɤ̆j', u'ậy' : u'ɤ̆j',
334
+ u'âu' : u'ɤ̆w', u'ấu' : u'ɤ̆w', u'ầu': u'ɤ̆w', u'ẩu' : u'ɤ̆w', u'ẫu' : u'ɤ̆w', u'ậu' : u'ɤ̆w',
335
+ u'eo' : u'ew', u'éo' : u'ew', u'èo' : u'ew', u'ẻo' : u'ew', u'ẽo' : u'ew', u'ẹo' : u'ew',
336
+ u'iu' : u'iw', u'íu' : u'iw', u'ìu' : u'iw', u'ỉu' : u'iw', u'ĩu' : u'iw', u'ịu' : u'iw',
337
+ u'oi' : u'ɔj', u'ói' : u'ɔj', u'òi' : u'ɔj', u'ỏi' : u'ɔj', u'õi' : u'ɔj', u'ọi' : u'ɔj',
338
+ u'ôi' : u'oj', u'ối' : u'oj', u'ồi' : u'oj', u'ổi' : u'oj', u'ỗi' : u'oj', u'ội' : u'oj',
339
+ u'ui' : u'uj', u'úi' : u'uj', u'ùi' : u'uj', u'ủi' : u'uj', u'ũi' : u'uj', u'ụi' : u'uj',
340
+ u'uy' : u'uj', u'úy' : u'uj', u'ùy' : u'uj', u'ủy' : u'uj', u'ũy' : u'uj', u'ụy' : u'uj',
341
+ u'ơi' : u'ɤj', u'ới' : u'ɤj', u'ời' : u'ɤj', u'ởi' : u'ɤj', u'ỡi' : u'ɤj', u'ợi' : u'ɤj',
342
+ u'ưi' : u'ɯj', u'ứi' : u'ɯj', u'ừi' : u'ɯj', u'ửi' : u'ɯj', u'ữi' : u'ɯj', u'ựi' : u'ɯj',
343
+ u'ưu' : u'ɯw', u'ứu' : u'ɯw', u'ừu' : u'ɯw', u'ửu' : u'ɯw', u'ữu' : u'ɯw', u'ựu' : u'ɯw',
344
+
345
+ u'iêu' : u'iəw', u'iếu' : u'iəw', u'iều' : u'iəw', u'iểu' : u'iəw', u'iễu' : u'iəw', u'iệu' : u'iəw',
346
+ u'yêu' : u'iəw', u'yếu' : u'iəw', u'yều' : u'iəw', u'yểu' : u'iəw', u'yễu' : u'iəw', u'yệu' : u'iəw',
347
+ u'uôi' : u'uəj', u'uối' : u'uəj', u'uồi' : u'uəj', u'uổi' : u'uəj', u'uỗi' : u'uəj', u'uội' : u'uəj',
348
+ u'ươi' : u'ɯəj', u'ưới' : u'ɯəj', u'ười' : u'ɯəj', u'ưởi' : u'ɯəj', u'ưỡi' : u'ɯəj', u'ượi' : u'ɯəj',
349
+ u'ươu' : u'ɯəw', u'ướu' : u'ɯəw', u'ườu' : u'ɯəw', u'ưởu' : u'ɯəw', 'ưỡu' : u'ɯəw', u'ượu' : u'ɯəw'
350
+ }
351
+
352
+ C_onglides = { u'oa' : u'a', u'oá' : u'a', u'oà' : u'a', u'oả' : u'a', u'oã' : u'a', u'oạ' : u'a',
353
+ u'óa' : u'a', u'òa' : u'a', u'ỏa' : u'a', u'õa' : u'a', u'ọa' : u'a',
354
+ u'oă' : u'ă', u'oắ' : u'ă', u'oằ' : u'ă', u'oẳ' : u'ă', u'oẵ' : u'ă', u'oặ' : u'ă',
355
+ u'oe' : u'e', u'oé' : u'e', u'oè' : u'e', u'oẻ' : u'e', u'oẽ' : u'e', u'oẹ' : u'e',
356
+ u'oe' : u'e', u'óe' : u'e', u'òe' : u'e', u'ỏe' : u'e', u'õe' : u'e', u'ọe' : u'e',
357
+ u'ua' : u'a', u'uá' : u'a', u'uà' : u'a', u'uả' : u'a', u'uã' : u'a', u'uạ' : u'a',
358
+ u'uă' : u'ă', u'uắ' : u'ă', u'uằ' : u'ă', u'uẳ' : u'ă', u'uẵ' : u'ă', u'uặ' : u'ă',
359
+ u'uâ' : u'ɤ̆', u'uấ' : u'ɤ̆', u'uầ' : u'ɤ̆', u'uẩ' : u'ɤ̆', u'uẫ' : u'ɤ̆', u'uậ' : u'ɤ̆',
360
+ u'ue' : u'ɛ', u'ué' : u'ɛ', u'uè' : u'ɛ', u'uẻ' : u'ɛ', u'uẽ' : u'ɛ', u'uẹ' : u'ɛ',
361
+ u'uê' : u'e', u'uế' : u'e', u'uề' : u'e', u'uể' : u'e', u'uễ' : u'e', u'uệ' : u'e',
362
+ u'uơ' : u'ɤ', u'uớ' : u'ɤ', u'uờ' : u'ɤ', u'uở' : u'ɤ', u'uỡ' : u'ɤ', u'uợ' : u'ɤ',
363
+ u'uy' : u'i', u'uý' : u'i', u'uỳ' : u'i', u'uỷ' : u'i', u'uỹ' : u'i', u'uỵ' : u'i',
364
+ u'uya' : u'iə', u'uyá' : u'iə', u'uyà' : u'iə', u'uyả' : u'iə', u'uyã' : u'iə', u'uyạ' : u'iə',
365
+ u'uyê' : u'iə', u'uyế' : u'iə', u'uyề' : u'iə', u'uyể' : u'iə', u'uyễ' : u'iə', u'uyệ' : u'iə',
366
+ u'uyu' : u'iu', u'uyú' : u'iu', u'uyù' : u'iu', u'uyủ' : u'iu', u'uyũ' : u'iu', u'uyụ' : u'iu',
367
+ u'uyu' : u'iu', u'uýu' : u'iu', u'uỳu' : u'iu', u'uỷu' : u'iu', u'uỹu' : u'iu', u'uỵu' : u'iu',
368
+ u'oen' : u'en', u'oén' : u'en', u'oèn' : u'en', u'oẻn' : u'en', u'oẽn' : u'en', u'oẹn' : u'en',
369
+ u'oet' : u'et', u'oét' : u'et', u'oèt' : u'et', u'oẻt' : u'et', u'oẽt' : u'et', u'oẹt' : u'et'
370
+ }
371
+
372
+ C_onoffglides = { u'oe' : u'ej', u'oé' : u'ej', u'oè' : u'ej', u'oẻ' : u'ej', u'oẽ' : u'ej', u'oẹ' : u'ej',
373
+ u'oai' : u'aj', u'oái' : u'aj', u'oài' : u'aj', u'oải' : u'aj', u'oãi' : u'aj', u'oại' : u'aj',
374
+ u'oay' : u'ăj', u'oáy' : u'ăj', u'oày' : u'ăj', u'oảy' : u'ăj', u'oãy' : u'ăj', u'oạy' : u'ăj',
375
+ u'oao' : u'aw', u'oáo' : u'aw', u'oào' : u'aw', u'oảo' : u'aw', u'oão' : u'aw', u'oạo' : u'aw',
376
+ u'oeo' : u'ew', u'oéo' : u'ew', u'oèo' : u'ew', u'oẻo' : u'ew', u'oẽo' : u'ew', u'oẹo' : u'ew',
377
+ u'oeo' : u'ew', u'óeo' : u'ew', u'òeo' : u'ew', u'ỏeo' : u'ew', u'õeo' : u'ew', u'ọeo' : u'ew',
378
+ u'ueo' : u'ew', u'uéo' : u'ew', u'uèo' : u'ew', u'uẻo' : u'ew', u'uẽo' : u'ew', u'uẹo' : u'ew',
379
+ u'uai' : u'aj', u'uái' : u'aj', u'uài' : u'aj', u'uải' : u'aj', u'uãi' : u'aj', u'uại' : u'aj',
380
+ u'uay' : u'ăj', u'uáy' : u'ăj', u'uày' : u'ăj', u'uảy' : u'ăj', u'uãy' : u'ăj', u'uạy' : u'ăj',
381
+ u'uây' : u'ɤ̆j', u'uấy' : u'ɤ̆j', u'uầy' : u'ɤ̆j', u'uẩy' : u'ɤ̆j', u'uẫy' : u'ɤ̆j', u'uậy' : u'ɤ̆j'
382
+ }
383
+
384
+ C_codas = { u'p' : u'p', u't' : u'k', u'c' : u'k', u'm' : u'm', u'n' : u'ŋ', u'ng' : u'ŋ', u'nh' : u'n', u'ch' : u'k' }
385
+
386
+ # See Alves 2007 (SEALS XII), Vũ 1982
387
+ C_tones = { u'á' : 13, u'à' : 42, u'ả' : 312, u'ã' : 312, u'ạ' : u'21g',
388
+ u'ấ' : 13, u'ầ' : 42, u'ẩ' : 312, u'ẫ' : 312, u'ậ' : u'21g',
389
+ u'ắ' : 13, u'ằ' : 42, u'ẳ' : 312, u'ẵ' : 312, u'ặ' : u'21g',
390
+ u'é' : 13, u'è' : 42, u'ẻ' : 312, u'ẽ' : 312, u'ẹ' : u'21g',
391
+ u'ế' : 13, u'ề' : 42, u'ể' : 312, u'ễ' : 312, u'ệ' : u'21g',
392
+ u'í' : 13, u'ì' : 42, u'ỉ' : 312, u'ĩ' : 312, u'ị' : u'21g',
393
+ u'ó' : 13, u'ò' : 42, u'ỏ' : 312, u'õ' : 312, u'ọ' : u'21g',
394
+ u'ố' : 13, u'ồ' : 42, u'ổ' : 312, u'ỗ' : 312, u'ộ' : u'21g',
395
+ u'ớ' : 13, u'ờ' : 42, u'ở' : 312, u'ỡ' : 312, u'ợ' : u'21g',
396
+ u'ú' : 13, u'ù' : 42, u'ủ' : 312, u'ũ' : 312, u'ụ' : u'21g',
397
+ u'ứ' : 13, u'ừ' : 42, u'ử' : 312, u'ữ' : 312, u'ự' : u'21g',
398
+ u'ý' : 13, u'ỳ' : 42, u'ỷ' : 312, u'ỹ' : 312, u'ỵ' : u'21g',
399
+ }
400
+
401
+ # used to use \u02C0 for raised glottal instead of g
402
+
403
+ C_tones_p = { u'á' : 5, u'à' : 2, u'ả' : 4, u'ã' : 4, u'ạ' : 6,
404
+ u'ấ' : 5, u'ầ' : 2, u'ẩ' : 4, u'ẫ' : 4, u'ậ' : 6,
405
+ u'ắ' : 5, u'ằ' : 2, u'ẳ' : 4, u'ẵ' : 4, u'ặ' : 6,
406
+ u'é' : 5, u'è' : 2, u'ẻ' : 4, u'ẽ' : 4, u'ẹ' : 6,
407
+ u'ế' : 5, u'ề' : 2, u'ể' : 4, u'ễ' : 4, u'ệ' : 6,
408
+ u'í' : 5, u'ì' : 2, u'ỉ' : 4, u'ĩ' : 4, u'ị' : 6,
409
+ u'ó' : 5, u'ò' : 2, u'ỏ' : 4, u'õ' : 4, u'ọ' : 6,
410
+ u'ố' : 5, u'ồ' : 2, u'ổ' : 4, u'ỗ' : 4, u'ộ' : 6,
411
+ u'ớ' : 5, u'ờ' : 2, u'ở' : 4, u'ỡ' : 4, u'ợ' : 6,
412
+ u'ú' : 5, u'ù' : 2, u'ủ' : 4, u'ũ' : 4, u'ụ' : 6,
413
+ u'ứ' : 5, u'ừ' : 2, u'ử' : 4, u'ữ' : 4, u'ự' : 6,
414
+ u'ý' : 5, u'ỳ' : 2, u'ỷ' : 4, u'ỹ' : 4, u'ỵ' : 6,
415
+ }
416
+
417
+ C_gi = { u'gi' : u'ji', u'gí': u'ji', u'gì' : u'ji', u'gì' : u'ji', u'gĩ' : u'ji', u'gị' : u'ji' }
418
+
419
+ C_qu = {u'quy' : u'wi', u'qúy' : u'wi', u'qùy' : u'wi', u'qủy' : u'wi', u'qũy' : u'wi', u'qụy' : u'wi'}
420
+ ############################################
421
+
422
+ #south.py
423
+ #coding: utf-8
424
+
425
+ S_onsets = { u'b' : u'b', u't' : u't', u'th' : u'tʰ', u'đ' : u'd', u'ch' : u'c',
426
+ u'kh' : u'x', u'g' : u'ɣ', u'l' : u'l', u'm' : u'm', u'n': u'n',
427
+ u'ngh': u'ŋ', u'nh' : u'ɲ', u'ng' : u'ŋ', u'ph' : u'f', u'v' : u'j',
428
+ u'x' : u's', u'd' : u'j', u'h' : u'h', u'p' : u'p', u'qu' : u'w',
429
+ u'gi' : u'j', u'tr' : u'ʈ', u'k' : u'k', u'c' : u'k', u'gh' : u'ɣ',
430
+ u'r' : u'ʐ', u's' : u'ʂ', u'gi' : u'j'
431
+ }
432
+
433
+
434
+ S_nuclei = { u'a' : u'a', u'á' : u'a', u'à' : u'a', u'ả' : u'a', u'ã' : u'a', u'ạ' : u'a',
435
+ u'â' : u'ɤ̆', u'ấ' : u'ɤ̆', u'ầ' : u'ɤ̆', u'ẩ' : u'ɤ̆', u'ẫ' : u'ɤ̆', u'ậ' : u'ɤ̆',
436
+ u'ă' : u'ă', u'ắ' : u'ă', u'ằ' : u'ă', u'ẳ' : u'ă', u'ẵ' : u'ă', u'ặ' : u'ă',
437
+ u'e' : u'ɛ', u'é' : u'ɛ', u'è' : u'ɛ', u'ẻ' : u'ɛ', u'ẽ' : u'ɛ', u'ẹ' : u'ɛ',
438
+ u'ê' : u'e', u'ế' : u'e', u'ề' : u'e', u'ể' : u'e', u'ễ' : u'e', u'ệ' : u'e',
439
+ u'i' : u'i', u'í' : u'i', u'ì' : u'i', u'ỉ' : u'i', u'ĩ' : u'i', u'ị' : u'i',
440
+ u'o' : u'ɔ', u'ó' : u'ɔ', u'ò' : u'ɔ', u'ỏ' : u'ɔ', u'õ' : u'ɔ', u'ọ' : u'ɔ',
441
+ u'ô' : u'o', u'ố' : u'o', u'ồ' : u'o', u'ổ' : u'o', u'ỗ' : u'o', u'ộ' : u'o',
442
+ u'ơ' : u'ɤ', u'ớ' : u'ɤ', u'ờ' : u'ɤ', u'ở' : u'ɤ', u'ỡ' : u'ɤ', u'ợ' : u'ɤ',
443
+ u'u' : u'u', u'ú' : u'u', u'ù' : u'u', u'ủ' : u'u', u'ũ' : u'u', u'ụ' : u'u',
444
+ u'ư' : u'ɯ', u'ứ' : u'ɯ', u'ừ' : u'ɯ', u'ử' : u'ɯ', u'ữ' : u'ɯ', u'ự' : u'ɯ',
445
+ u'y' : u'i', u'ý' : u'i', u'ỳ' : u'i', u'ỷ' : u'i', u'ỹ' : u'i', u'ỵ' : u'i',
446
+
447
+ u'eo' : u'eo', u'éo' : u'eo', u'èo' : u'eo', u'ẻo' : u'eo', u'ẽo': u'eo', u'ẹo' : u'eo',
448
+ u'êu' : u'ɛu', u'ếu' : u'ɛu', u'ều' : u'ɛu', u'ểu' : u'ɛu', u'ễu': u'ɛu', u'ệu' : u'ɛu',
449
+ u'ia' : u'iə', u'ía' : u'iə', u'ìa' : u'iə', u'ỉa' : u'iə', u'ĩa' : u'iə', u'ịa' : u'iə',
450
+ u'ia' : u'iə', u'iá' : u'iə', u'ià' : u'iə', u'iả' : u'iə', u'iã' : u'iə', u'iạ' : u'iə',
451
+ u'iê' : u'iə', u'iế' : u'iə', u'iề' : u'iə', u'iể' : u'iə', u'iễ' : u'iə', u'iệ' : u'iə',
452
+ u'oo' : u'ɔ', u'óo' : u'ɔ', u'òo' : u'ɔ', u'ỏo' : u'ɔ', u'õo' : u'ɔ', u'ọo' : u'ɔ',
453
+ u'oo' : u'ɔ', u'oó' : u'ɔ', u'oò' : u'ɔ', u'oỏ' : u'ɔ', u'oõ' : u'ɔ', u'oọ' : u'ɔ',
454
+ u'ôô' : u'o', u'ốô' : u'o', u'ồô' : u'o', u'ổô' : u'o', u'ỗô' : u'o', u'ộô' : u'o', u'ôô' : u'o', u'ôố' : u'o', u'ôồ' : u'o', u'ôổ' : u'o', u'ôỗ' : u'o', u'ôộ' : u'o', u'ua' : u'uə', u'úa' : u'uə', u'ùa' : u'uə', u'ủa' : u'uə', u'ũa' : u'uə', u'ụa' : u'uə',
455
+ u'uô' : u'uə', u'uố' : u'uə', u'uồ' : u'uə', u'uổ' : u'uə', u'uỗ' : u'uə', u'uộ' : u'uə',
456
+ u'ưa' : u'ɯə', u'ứa' : u'ɯə', u'ừa' : u'ɯə', u'ửa' : u'ɯə', u'ữa' : u'ɯə', u'ựa' : u'ɯə',
457
+ u'ươ' : u'ɯə', u'ướ' : u'ɯə', u'ườ' : u'ɯə', u'ưở' : u'ɯə', u'ưỡ' : u'ɯə', u'ượ' : u'ɯə',
458
+ u'yê' : u'iɛ', u'yế' : u'iɛ', u'yề' : u'iɛ', u'yể' : u'iɛ', u'yễ' : u'iɛ', u'yệ' : u'iɛ',
459
+ u'uơ' : u'uə', u'uở' : u'uə', u'uờ': u'uə', u'uở' : u'uə', u'uỡ' : u'uə', u'uợ' : u'uə',
460
+ }
461
+
462
+
463
+ S_offglides = { u'ai' : u'aj', u'ái' : u'aj', u'ài' : u'aj', u'ải' : u'aj', u'ãi' : u'aj', u'ại' : u'aj',
464
+ u'ay' : u'ăj', u'áy' : u'ăj', u'ày' : u'ăj', u'ảy' : u'ăj', u'ãy' : u'ăj', u'ạy' : u'ăj',
465
+ u'ao' : u'aw', u'áo' : u'aw', u'ào' : u'aw', u'ảo' : u'aw', u'ão' : u'aw', u'ạo' : u'aw',
466
+ u'au' : u'ăw', u'áu' : u'ăw', u'àu' : u'ăw', u'ảu' : u'ăw', u'ãu' : u'ăw', u'ạu' : u'ăw',
467
+ u'ây' : u'ɤ̆j', u'ấy' : u'ɤ̆j', u'ầy' : u'ɤ̆j', u'ẩy' : u'ɤ̆j', u'ẫy' : u'ɤ̆j', u'ậy' : u'ɤ̆j',
468
+ u'âu' : u'ɤ̆w', u'ấu' : u'ɤ̆w', u'ầu': u'ɤ̆w', u'ẩu' : u'ɤ̆w', u'ẫu' : u'ɤ̆w', u'ậu' : u'ɤ̆w',
469
+ u'eo' : u'ew', u'éo' : u'ew', u'èo' : u'ew', u'ẻo' : u'ew', u'ẽo' : u'ew', u'ẹo' : u'ew',
470
+ u'iu' : u'iw', u'íu' : u'iw', u'ìu' : u'iw', u'ỉu' : u'iw', u'ĩu' : u'iw', u'ịu' : u'iw',
471
+ u'oi' : u'ɔj', u'ói' : u'ɔj', u'òi' : u'ɔj', u'ỏi' : u'ɔj', u'õi' : u'ɔj', u'ọi' : u'ɔj',
472
+ u'ôi' : u'oj', u'ối' : u'oj', u'ồi' : u'oj', u'ổi' : u'oj', u'ỗi' : u'oj', u'ội' : u'oj',
473
+ u'ui' : u'uj', u'úi' : u'uj', u'ùi' : u'uj', u'ủi' : u'uj', u'ũi' : u'uj', u'ụi' : u'uj',
474
+ u'uy' : u'uj', u'úy' : u'uj', u'ùy' : u'uj', u'ủy' : u'uj', u'ũy' : u'uj', u'ụy' : u'uj',
475
+ u'ơi' : u'ɤj', u'ới' : u'ɤj', u'ời' : u'ɤj', u'ởi' : u'ɤj', u'ỡi' : u'ɤj', u'ợi' : u'ɤj',
476
+ u'ưi' : u'ɯj', u'ứi' : u'ɯj', u'ừi' : u'ɯj', u'ửi' : u'ɯj', u'ữi' : u'ɯj', u'ựi' : u'ɯj',
477
+ u'ưu' : u'ɯw', u'ứu' : u'ɯw', u'ừu' : u'ɯw', u'ửu' : u'ɯw', u'ữu' : u'ɯw', u'ựu' : u'ɯw',
478
+
479
+ u'iêu' : u'iəw', u'iếu' : u'iəw', u'iều' : u'iəw', u'iểu' : u'iəw', u'iễu' : u'iəw', u'iệu' : u'iəw',
480
+ u'yêu' : u'iəw', u'yếu' : u'iəw', u'yều' : u'iəw', u'yểu' : u'iəw', u'yễu' : u'iəw', u'y���u' : u'iəw',
481
+ u'uôi' : u'uəj', u'uối' : u'uəj', u'uồi' : u'uəj', u'uổi' : u'uəj', u'uỗi' : u'uəj', u'uội' : u'uəj',
482
+ u'ươi' : u'ɯəj', u'ưới' : u'ɯəj', u'ười' : u'ɯəj', u'ưởi' : u'ɯəj', u'ưỡi' : u'ɯəj', u'ượi' : u'ɯəj',
483
+ u'ươu' : u'ɯəw', u'ướu' : u'ɯəw', u'ườu' : u'ɯəw', u'ưởu' : u'ɯəw', 'ưỡu' : u'ɯəw', u'ượu' : u'ɯəw'
484
+ }
485
+
486
+ S_onglides = { u'oa' : u'a', u'oá' : u'a', u'oà' : u'a', u'oả' : u'a', u'oã' : u'a', u'oạ' : u'a',
487
+ u'óa' : u'a', u'òa' : u'a', u'ỏa' : u'a', u'õa' : u'a', u'ọa' : u'a',
488
+ u'oă' : u'ă', u'oắ' : u'ă', u'oằ' : u'ă', u'oẳ' : u'ă', u'oẵ' : u'ă', u'oặ' : u'ă',
489
+ u'oe' : u'e', u'oé' : u'e', u'oè' : u'e', u'oẻ' : u'e', u'oẽ' : u'e', u'oẹ' : u'e',
490
+ u'oe' : u'e', u'óe' : u'e', u'òe' : u'e', u'ỏe' : u'e', u'õe' : u'e', u'ọe' : u'e',
491
+ u'ua' : u'a', u'uá' : u'a', u'uà' : u'a', u'uả' : u'a', u'uã' : u'a', u'uạ' : u'a',
492
+ u'uă' : u'ă', u'uắ' : u'ă', u'uằ' : u'ă', u'uẳ' : u'ă', u'uẵ' : u'ă', u'uặ' : u'ă',
493
+ u'uâ' : u'ɤ̆', u'uấ' : u'ɤ̆', u'uầ' : u'ɤ̆', u'uẩ' : u'ɤ̆', u'uẫ' : u'ɤ̆', u'uậ' : u'ɤ̆',
494
+ u'ue' : u'ɛ', u'ué' : u'ɛ', u'uè' : u'ɛ', u'uẻ' : u'ɛ', u'uẽ' : u'ɛ', u'uẹ' : u'ɛ',
495
+ u'uê' : u'e', u'uế' : u'e', u'uề' : u'e', u'uể' : u'e', u'uễ' : u'e', u'uệ' : u'e',
496
+ u'uơ' : u'ɤ', u'uớ' : u'ɤ', u'uờ' : u'ɤ', u'uở' : u'ɤ', u'uỡ' : u'ɤ', u'uợ' : u'ɤ',
497
+ u'uy' : u'i', u'uý' : u'i', u'uỳ' : u'i', u'uỷ' : u'i', u'uỹ' : u'i', u'uỵ' : u'i',
498
+ u'uya' : u'iə', u'uyá' : u'iə', u'uyà' : u'iə', u'uyả' : u'iə', u'uyã' : u'iə', u'uyạ' : u'iə',
499
+ u'uyê' : u'iə', u'uyế' : u'iə', u'uyề' : u'iə', u'uyể' : u'iə', u'uyễ' : u'iə', u'uyệ' : u'iə',
500
+ u'uyu' : u'iu', u'uyú' : u'iu', u'uyù' : u'iu', u'uyủ' : u'iu', u'uyũ' : u'iu', u'uyụ' : u'iu',
501
+ u'uyu' : u'iu', u'uýu' : u'iu', u'uỳu' : u'iu', u'uỷu' : u'iu', u'uỹu' : u'iu', u'uỵu' : u'iu',
502
+ u'oen' : u'en', u'oén' : u'en', u'oèn' : u'en', u'oẻn' : u'en', u'oẽn' : u'en', u'oẹn' : u'en',
503
+ u'oet' : u'et', u'oét' : u'et', u'oèt' : u'et', u'oẻt' : u'et', u'oẽt' : u'et', u'oẹt' : u'et'
504
+ }
505
+
506
+ S_onoffglides = { u'oe' : u'ej', u'oé' : u'ej', u'oè' : u'ej', u'oẻ' : u'ej', u'oẽ' : u'ej', u'oẹ' : u'ej',
507
+ u'oai' : u'aj', u'oái' : u'aj', u'oài' : u'aj', u'oải' : u'aj', u'oãi' : u'aj', u'oại' : u'aj',
508
+ u'oay' : u'ăj', u'oáy' : u'ăj', u'oày' : u'ăj', u'oảy' : u'ăj', u'oãy' : u'ăj', u'oạy' : u'ăj',
509
+ u'oao' : u'aw', u'oáo' : u'aw', u'oào' : u'aw', u'oảo' : u'aw', u'oão' : u'aw', u'oạo' : u'aw',
510
+ u'oeo' : u'ew', u'oéo' : u'ew', u'oèo' : u'ew', u'oẻo' : u'ew', u'oẽo' : u'ew', u'oẹo' : u'ew',
511
+ u'oeo' : u'ew', u'óeo' : u'ew', u'òeo' : u'ew', u'ỏeo' : u'ew', u'õeo' : u'ew', u'ọeo' : u'ew',
512
+ u'ueo' : u'ew', u'uéo' : u'ew', u'uèo' : u'ew', u'uẻo' : u'ew', u'uẽo' : u'ew', u'uẹo' : u'ew',
513
+ u'uai' : u'aj', u'uái' : u'aj', u'uài' : u'aj', u'uải' : u'aj', u'uãi' : u'aj', u'uại' : u'aj',
514
+ u'uay' : u'ăj', u'uáy' : u'ăj', u'uày' : u'ăj', u'uảy' : u'ăj', u'uãy' : u'ăj', u'uạy' : u'ăj',
515
+ u'uây' : u'ɤ̆j', u'uấy' : u'ɤ̆j', u'uầy' : u'ɤ̆j', u'uẩy' : u'ɤ̆j', u'uẫy' : u'ɤ̆j', u'uậy' : u'ɤ̆j'
516
+ }
517
+
518
+ S_codas = { u'p' : u'p', u't' : u't', u'c' : u'k', u'm' : u'm', u'n' : u'ŋ', u'ng' : u'ŋ', u'nh' : u'n', u'ch' : u't' }
519
+
520
+ S_tones = { u'á' : 45, u'à' : 32, u'ả' : 214, u'ã' : 214, u'ạ' : 212,
521
+ u'ấ' : 45, u'ầ' : 32, u'ẩ' : 214, u'ẫ' : 214, u'ậ' : 212,
522
+ u'ắ' : 45, u'ằ' : 32, u'ẳ' : 214, u'ẵ' : 214, u'ặ' : 212,
523
+ u'é' : 45, u'è' : 32, u'ẻ' : 214, u'ẽ' : 214, u'ẹ' : 212,
524
+ u'ế' : 45, u'ề' : 32, u'ể' : 214, u'ễ' : 214, u'ệ' : 212,
525
+ u'í' : 45, u'ì' : 32, u'ỉ' : 214, u'ĩ' : 214, u'ị' : 212,
526
+ u'ó' : 45, u'ò' : 32, u'ỏ' : 214, u'õ' : 214, u'ọ' : 212,
527
+ u'ố' : 45, u'ồ' : 32, u'ổ' : 214, u'ỗ' : 214, u'ộ' : 212,
528
+ u'ớ' : 45, u'ờ' : 32, u'ở' : 214, u'ỡ' : 214, u'ợ' : 212,
529
+ u'ú' : 45, u'ù' : 32, u'ủ' : 214, u'ũ' : 214, u'ụ' : 212,
530
+ u'ứ' : 45, u'ừ' : 32, u'ử' : 214, u'ữ' : 214, u'ự' : 212,
531
+ u'ý' : 45, u'ỳ' : 32, u'ỷ' : 214, u'ỹ' : 214, u'ỵ' : 212,
532
+ }
533
+
534
+ S_tones_p = { u'á' : 5, u'à' : 2, u'ả' : 4, u'ã' : 4, u'ạ' : 6,
535
+ u'ấ' : 5, u'ầ' : 2, u'ẩ' : 4, u'ẫ' : 4, u'ậ' : 6,
536
+ u'ắ' : 5, u'ằ' : 2, u'ẳ' : 4, u'ẵ' : 4, u'ặ' : 6,
537
+ u'é' : 5, u'è' : 2, u'ẻ' : 4, u'ẽ' : 4, u'ẹ' : 6,
538
+ u'ế' : 5, u'ề' : 2, u'ể' : 4, u'ễ' : 4, u'ệ' : 6,
539
+ u'í' : 5, u'ì' : 2, u'ỉ' : 4, u'ĩ' : 4, u'ị' : 6,
540
+ u'ó' : 5, u'ò' : 2, u'ỏ' : 4, u'õ' : 4, u'ọ' : 6,
541
+ u'ố' : 5, u'ồ' : 2, u'ổ' : 4, u'ỗ' : 4, u'ộ' : 6,
542
+ u'ớ' : 5, u'ờ' : 2, u'ở' : 4, u'ỡ' : 4, u'ợ' : 6,
543
+ u'ú' : 5, u'ù' : 2, u'ủ' : 4, u'ũ' : 4, u'ụ' : 6,
544
+ u'ứ' : 5, u'ừ' : 2, u'ử' : 4, u'ữ' : 4, u'ự' : 6,
545
+ u'ý' : 5, u'ỳ' : 2, u'ỷ' : 4, u'ỹ' : 4, u'ỵ' : 6,
546
+ }
547
+
548
+
549
+ S_gi = { u'gi' : u'ji', u'gí': u'ji', u'gì' : u'ji', u'gì' : u'ji', u'gĩ' : u'ji', u'gị' : u'ji' }
550
+
551
+ S_qu = {u'quy' : u'wi', u'qúy' : u'wi', u'qùy' : u'wi', u'qủy' : u'wi', u'qũy' : u'wi', u'qụy' : u'wi'}
552
+
553
+ ################################################3
554
+ import sys, codecs, re
555
+ from io import StringIO
556
+ from optparse import OptionParser
557
+ from string import punctuation
558
+
559
+ def trans(word, dialect, glottal, pham, cao, palatals):
560
+
561
+ # This looks ugly, but newer versions of python complain about "from x import *" syntax
562
+ if dialect == 'n':
563
+ onsets, nuclei, codas, tones, onglides, offglides, onoffglides, qu, gi = N_onsets, N_nuclei, N_codas, N_tones, N_onglides, N_offglides, N_onoffglides, N_qu, N_gi
564
+ elif dialect == 'c':
565
+ onsets, nuclei, codas, tones, onglides, offglides, onoffglides, qu, gi = C_onsets, C_nuclei, C_codas, C_tones, C_onglides, C_offglides, C_onoffglides, C_qu, C_gi
566
+ elif dialect == 's':
567
+ onsets, nuclei, codas, tones, onglides, offglides, onoffglides, qu, gi = S_onsets, S_nuclei, S_codas, S_tones, S_onglides, S_offglides, S_onoffglides, S_qu, S_gi
568
+
569
+
570
+ #Custom
571
+ onsets, nuclei, codas, onglides, offglides, onoffglides, qu, gi = Cus_onsets, Cus_nuclei, Cus_codas, Cus_onglides, Cus_offglides, Cus_onoffglides, Cus_qu, Cus_gi
572
+
573
+
574
+
575
+ if pham or cao:
576
+ if dialect == 'n': tones_p = N_tones_p
577
+ if dialect == 'c': tones_p = C_tones_p
578
+ if dialect == 's': tones_p = S_tones_p
579
+
580
+ #Custom
581
+ tones_p = Cus_tones_p
582
+
583
+
584
+ tones = tones_p
585
+
586
+ ons = ''
587
+ nuc = ''
588
+ cod = ''
589
+ ton = 0
590
+ oOffset = 0
591
+ cOffset = 0
592
+ l = len(word)
593
+
594
+ if l > 0:
595
+ if word[0:3] in onsets: # if onset is 'ngh'
596
+ ons = onsets[word[0:3]]
597
+ oOffset = 3
598
+ elif word[0:2] in onsets: # if onset is 'nh', 'gh', 'kʷ' etc
599
+ ons = onsets[word[0:2]]
600
+ oOffset = 2
601
+ elif word[0] in onsets: # if single onset
602
+ ons = onsets[word[0]]
603
+ oOffset = 1
604
+
605
+ if word[l-2:l] in codas: # if two-character coda
606
+ cod = codas[word[l-2:l]]
607
+ cOffset = 2
608
+ elif word[l-1] in codas: # if one-character coda
609
+ cod = codas[word[l-1]]
610
+ cOffset = 1
611
+
612
+
613
+ #if word[0:2] == u'gi' and cod and len(word) == 3: # if you just have 'gi' and a coda...
614
+ if word[0:2] in gi and cod and len(word) == 3: # if you just have 'gi' and a coda...
615
+ nucl = u'i'
616
+ ons = u'z'
617
+ else:
618
+ nucl = word[oOffset:l-cOffset]
619
+
620
+ if nucl in nuclei:
621
+ if oOffset == 0:
622
+ if glottal == 1:
623
+ if word[0] not in onsets: # if there isn't an onset....
624
+ ons = u'ʔ'+nuclei[nucl] # add a glottal stop
625
+ else: # otherwise...
626
+ nuc = nuclei[nucl] # there's your nucleus
627
+ else:
628
+ nuc = nuclei[nucl] # there's your nucleus
629
+ else: # otherwise...
630
+ nuc = nuclei[nucl] # there's your nucleus
631
+
632
+ elif nucl in onglides and ons != u'kw': # if there is an onglide...
633
+ nuc = onglides[nucl] # modify the nuc accordingly
634
+ if ons: # if there is an onset...
635
+ ons = ons+u'w' # labialize it, but...
636
+ else: # if there is no onset...
637
+ ons = u'w' # add a labiovelar onset
638
+
639
+ elif nucl in onglides and ons == u'kw':
640
+ nuc = onglides[nucl]
641
+
642
+ elif nucl in onoffglides:
643
+ cod = onoffglides[nucl][-1]
644
+ nuc = onoffglides[nucl][0:-1]
645
+ if ons != u'kw':
646
+ if ons:
647
+ ons = ons+u'w'
648
+ else:
649
+ ons = u'w'
650
+ elif nucl in offglides:
651
+ cod = offglides[nucl][-1]
652
+ nuc = offglides[nucl][:-1]
653
+
654
+ elif word in gi: # if word == 'gi', 'gì',...
655
+ ons = gi[word][0]
656
+ nuc = gi[word][1]
657
+
658
+ elif word in qu: # if word == 'quy', 'qúy',...
659
+ ons = qu[word][:-1]
660
+ nuc = qu[word][-1]
661
+
662
+ else:
663
+ # Something is non-Viet
664
+ return (None, None, None, None)
665
+
666
+
667
+ # Velar Fronting (Northern dialect)
668
+ if dialect == 'n':
669
+ if nuc == u'a':
670
+ if cod == u'k' and cOffset == 2: nuc = u'ɛ'
671
+ if cod == u'ɲ' and nuc == u'a': nuc = u'ɛ'
672
+
673
+ # Final palatals (Northern dialect)
674
+ if nuc not in [u'i', u'e', u'ɛ']:
675
+ if cod == u'ɲ':
676
+ cod = u'ɲ' # u'ŋ'
677
+ elif palatals != 1 and nuc in [u'i', u'e', u'ɛ']:
678
+ if cod == u'ɲ':
679
+ cod = u'ɲ'#u'ŋ'
680
+ if palatals == 1:
681
+ if cod == u'k' and nuc in [u'i', u'e', u'ɛ']:
682
+ cod = u'c'
683
+
684
+ # Velar Fronting (Southern and Central dialects)
685
+ else:
686
+ if nuc in [u'i', u'e']:
687
+ if cod == u'k': cod = u't'
688
+ if cod == u'ŋ': cod = u'n'
689
+
690
+ # There is also this reverse fronting, see Thompson 1965:94 ff.
691
+ elif nuc in [u'iə', u'ɯə', u'uə', u'u', u'ɯ', u'ɤ', u'o', u'ɔ', u'ă', u'ɤ̆']:
692
+ if cod == u't':
693
+ cod = u'k'
694
+ if cod == u'n': cod = u'ŋ'
695
+
696
+ # Monophthongization (Southern dialects: Thompson 1965: 86; Hoàng 1985: 181)
697
+ if dialect == 's':
698
+ if cod in [u'm', u'p']:
699
+ if nuc == u'iə': nuc = u'i'
700
+ if nuc == u'uə': nuc = u'u'
701
+ if nuc == u'ɯə': nuc = u'ɯ'
702
+
703
+ # Tones
704
+ # Modified 20 Sep 2008 to fix aberrant 33 error
705
+ tonelist = [tones[word[i]] for i in range(0,l) if word[i] in tones]
706
+ if tonelist:
707
+ ton = str(tonelist[len(tonelist)-1])
708
+ else:
709
+ if not (pham or cao):
710
+ if dialect == 'c':
711
+ ton = str('35')
712
+ else:
713
+ ton = str('33')
714
+ else:
715
+ ton = str('1')
716
+
717
+ # Modifications for closed syllables
718
+ if cOffset !=0:
719
+
720
+ # Obstruent-final nang tones are modal voice
721
+ if (dialect == 'n' or dialect == 's') and ton == u'21g' and cod in ['p', 't', 'k']:
722
+ #if ton == u'21\u02C0' and cod in ['p', 't', 'k']: # fixed 8 Nov 2016
723
+ ton = u'21'
724
+
725
+ # Modification for sắc in closed syllables (Northern and Central only)
726
+ if ((dialect == 'n' and ton == u'24') or (dialect == 'c' and ton == u'13')) and cod in ['p', 't', 'k']:
727
+ ton = u'45'
728
+
729
+ # Modification for 8-tone system
730
+ if cao == 1:
731
+ if ton == u'5' and cod in ['p', 't', 'k']:
732
+ ton = u'5b'
733
+ if ton == u'6' and cod in ['p', 't', 'k']:
734
+ ton = u'6b'
735
+
736
+ # labialized allophony (added 17.09.08)
737
+ if nuc in [u'u', u'o', u'ɔ']:
738
+ if cod == u'ŋ':
739
+ cod = u'ŋ͡m'
740
+ if cod == u'k':
741
+ cod = u'k͡p'
742
+
743
+ return (ons, nuc, cod, ton)
744
+
745
+ def convert(word, dialect, glottal, pham, cao, palatals, delimit):
746
+ """Convert a single orthographic string to IPA."""
747
+
748
+ ons = ''
749
+ nuc = ''
750
+ cod = ''
751
+ ton = 0
752
+ seq = ''
753
+
754
+ try:
755
+ (ons, nuc, cod, ton) = trans(word, dialect, glottal, pham, cao, palatals)
756
+ if None in (ons, nuc, cod, ton):
757
+ seq = u'['+word+u']'
758
+ else:
759
+ seq = delimit+delimit.join(filter(None, (ons, nuc, cod, ton)))+delimit
760
+ except (TypeError):
761
+ pass
762
+
763
+ return seq
764
+
765
+
766
+
767
+ ########################333
768
+ from vinorm import *
769
+ from underthesea import word_tokenize
770
+ import eng_to_ipa
771
+
772
+
773
+ SET=[S_onsets, S_nuclei, S_codas#, S_tones
774
+ , S_onglides, S_offglides, S_onoffglides, S_qu, S_gi, C_onsets, C_nuclei, C_codas#, C_tones
775
+ , C_onglides, C_offglides, C_onoffglides, C_qu, C_gi, N_onsets, N_nuclei, N_codas#, N_tones
776
+ , N_onglides, N_offglides, N_onoffglides, N_qu, N_gi, Cus_onsets, Cus_nuclei, Cus_codas#, N_tones
777
+ , Cus_onglides, Cus_offglides, Cus_onoffglides, Cus_qu, Cus_gi]
778
+ DICT={}
779
+
780
+ #144 in total
781
+ syms=['ɯəj', 'ɤ̆j', 'ʷiə', 'ɤ̆w', 'ɯəw', 'ʷet', 'iəw', 'uəj', 'ʷen', 'tʰw', 'ʷɤ̆', 'ʷiu', 'kwi', 'ŋ͡m', 'k͡p', 'cw', 'jw', 'uə', 'eə', 'bw', 'oj', 'ʷi', 'vw', 'ăw', 'ʈw', 'ʂw', 'aʊ', 'fw', 'ɛu', 'tʰ', 'tʃ', 'ɔɪ', 'xw', 'ʷɤ', 'ɤ̆', 'ŋw', 'ʊə', 'zi', 'ʷă', 'dw', 'eɪ', 'aɪ', 'ew', 'iə', 'ɣw', 'zw', 'ɯj', 'ʷɛ', 'ɯw', 'ɤj', 'ɔ:', 'əʊ', 'ʷa', 'mw', 'ɑ:', 'hw', 'ɔj', 'uj', 'lw', 'ɪə', 'ăj', 'u:', 'aw', 'ɛj', 'iw', 'aj', 'ɜ:', 'kw', 'nw', 't∫', 'ɲw', 'eo', 'sw', 'tw', 'ʐw', 'iɛ', 'ʷe', 'i:', 'ɯə', 'dʒ', 'ɲ', 'θ', 'ʌ', 'l', 'w', '1', 'ɪ', 'ɯ', 'd', '∫', 'p', 'ə', 'u', 'o', '3', 'ɣ', '!', 'ð', 'ʧ', '6', 'ʒ', 'ʐ', 'z', 'v', 'g', 'ă', '_', 'æ', 'ɤ', '2', 'ʤ', 'i', '.', 'ɒ', 'b', 'h', 'n', 'ʂ', 'ɔ', 'ɛ', 'k', 'm', '5', ' ', 'c', 'j', 'x', 'ʈ', ',', '4', 'ʊ', 's', 'ŋ', 'a', 'ʃ', '?', 'r', ':', 'η', 'f', ';', 'e', 't', "'"]
782
+ def Parsing(listParse, text, delimit):
783
+ undefine_symbol = "'"
784
+ if listParse == "default":
785
+ listParse=['ʷiə', 'uəj', 'iəw', 'k͡p', 'ʷɤ̆', 'ɤ̆j', 'ŋ͡m', 'kwi', 'ɤ̆w', 'ɯəj', 'ʷen', 'ʷiu', 'ʷet', 'ɯəw', 'ʷɛ', 'ʷɤ', 'ɯj', 'oj', 'ăw', 'zi', 'kw', 'aɪ', 'iɛ', 'ɤ̆', 'ɔ:', 'ăj', 'ʷa', 'eə', 'u:', 'uj', 'aʊ', 'uə', 'aj', 'iə', 'iw', 'əʊ', 'ɑ:', 'tʃ', 'ʷe', 'ɛu', 'ɔɪ', 'ʷi', 'eɪ', 'ɤj', 'ɯw', 'ɛj', 'ɔj', 'i:', 't∫', 'ɪə', 'ʷă', 'ɜ:', 'tʰ', 'dʒ', 'ew', 'ʊə', 'ɯə', 'aw', '3', 'θ', 'v', 'ʊ', 'ʤ', 'ɔ', '1', 'ʧ', 'ʈ', ' ', 'd', 'i', 'ɣ', 'ɲ', 'ɤ', '?', 'ɪ', 'l', '.', 'j', ':', 't', 'ʒ', 'ə', 'ʌ', 'm', '!', '∫', 'ð', 'u', 'e', 'w', 'p', 'ʃ', 'æ', "'", 'h', 'o', 'k', '5', 'g', '4', 'n', ';', 'r', 'b', 'ɯ', 'a', 's', 'ʐ', 'η', 'ŋ', 'ɒ', 'ʂ', '_', 'f', ',', 'ɛ', 'z', '6', '2', 'x', 'ă']
786
+ listParse.sort(reverse = True,key=len)
787
+ output=""
788
+ skip=0
789
+ for ic,char in enumerate(text):
790
+ #print(char,skip)
791
+ check = 0
792
+ if skip>0:
793
+ skip=skip-1
794
+ continue
795
+ for l in listParse:
796
+
797
+ if len(l) <= len(text[ic:]) and l == text[ic:ic+len(l)]:
798
+ output+=delimit+l
799
+ check =1
800
+ skip=len(l)-1
801
+ break
802
+ if check == 0:
803
+ #Case symbol not in list
804
+ if str(char) in ["ˈ","ˌ","*"]:
805
+ continue
806
+ print("this is not in symbol :"+ char+":")
807
+ output+=delimit+undefine_symbol
808
+ return output.rstrip()+delimit
809
+
810
+ #print("Parsing",Parsing("default","iu iu","|"))
811
+
812
+
813
+
814
+ def getSymbol():
815
+ for s in SET:
816
+ DICT.update(s)
817
+ list_phoneme=DICT.values()
818
+ list_phoneme=list(list_phoneme)
819
+ English_phoneme=["p","b","t","d","t∫","dʒ","k","g","f","v","ð","θ","s","z","∫","ʒ","m","n","η","l","r","w","j","ɪ","i:","ʊ","u:","e","ə","ɜ:","ɒ","ɔ:","æ","ʌ","ɑ:","ɪə","ʊə","eə","eɪ","ɔɪ","aɪ","əʊ","aʊ",'ʃ',"ʤ","ʧ"]
820
+ Special=['jw', 'ŋw', 'bw', 'vw', 'dw', 'eo', 'ʈw', 'mw', 'zw', 'fw', 'tw', 'tʰw', 'ɲw', 'cw', 'ʂw', 'ɣw', 'ʐw', 'xw', 'lw', 'hw', 'nw', 'sw', 'c']
821
+ word_pad = ["_"]
822
+ space = [" "]
823
+ tone=["1","2","3","4","5","6"]
824
+ punctuation = [".",",","!",":","?",";","'"] #" ' ( ) Have been removed due to none sound
825
+
826
+ modifi = ["k͡p","ŋ͡m"]
827
+
828
+ symbols = list_phoneme + space+word_pad + English_phoneme + punctuation + tone + modifi + Special
829
+ symbols = list(set(symbols))
830
+ symbols.sort(reverse = True,key=len)
831
+ return symbols
832
+
833
+ def vi2IPA_pitrain(text):
834
+ epi = epitran.Epitran('vie-Latn')
835
+ r=epi.transliterate(text)
836
+ return r
837
+
838
+ def T2IPA_split(text,delimit):
839
+ sys.path.append('./Rules') # make sure we can find the Rules files
840
+ #Setup option
841
+ glottal = 0
842
+ pham = 0
843
+ cao = 0
844
+ palatals = 0
845
+ tokenize = 0
846
+ dialect='n' #"c""s"
847
+ tone_type=0
848
+ if tone_type==0:
849
+ pham=1
850
+ else:
851
+ cao=1
852
+ #Input text
853
+ line = text
854
+ if line =='\n':
855
+ return ""
856
+ else:
857
+ compound = u''
858
+ ortho = u''
859
+ words = line.split()
860
+ ## toss len==0 junk
861
+ words = [word for word in words if len(word)>0]
862
+ ## hack to get rid of single hyphens or underscores
863
+ words = [word for word in words if word!=u'-']
864
+ words = [word for word in words if word!=u'_']
865
+ for i in range(0,len(words)):
866
+ word = words[i].strip()
867
+ ortho += word
868
+ word = word.strip(punctuation).lower()
869
+ ## 29.03.16: check if tokenize is true
870
+ ## if true, call this routine for each substring
871
+ ## and re-concatenate
872
+ if (tokenize and '-' in word) or (tokenize and '_' in word):
873
+ substrings = re.split(r'(_|-)', word)
874
+ values = substrings[::2]
875
+ delimiters = substrings[1::2] + ['']
876
+ ipa = [convert(x, dialect, glottal, pham, cao, palatals, delimit).strip() for x in values]
877
+ seq = ''.join(v+d for v,d in zip(ipa, delimiters))
878
+ else:
879
+ seq = convert(word, dialect, glottal, pham, cao, palatals, delimit).strip()
880
+ # concatenate
881
+ if len(words) >= 2:
882
+ ortho += ' '
883
+ if i < len(words)-1:
884
+ seq = seq+u' '
885
+ compound = compound + seq
886
+ return compound
887
+ def T2IPA(text):
888
+ sys.path.append('./Rules') # make sure we can find the Rules files
889
+ #Setup option
890
+ glottal = 0
891
+ pham = 0
892
+ cao = 0
893
+ palatals = 0
894
+ tokenize = 0
895
+ delimit = ''
896
+ dialect='n' #"c""s"
897
+ tone_type=0
898
+ if tone_type==0:
899
+ pham=1
900
+ else:
901
+ cao=1
902
+ #Input text
903
+ line = text
904
+ if line =='\n':
905
+ return ""
906
+ else:
907
+ compound = u''
908
+ ortho = u''
909
+ words = line.split()
910
+ ## toss len==0 junk
911
+ words = [word for word in words if len(word)>0]
912
+ ## hack to get rid of single hyphens or underscores
913
+ words = [word for word in words if word!=u'-']
914
+ words = [word for word in words if word!=u'_']
915
+ for i in range(0,len(words)):
916
+ word = words[i].strip()
917
+ ortho += word
918
+ word = word.strip(punctuation).lower()
919
+ ## 29.03.16: check if tokenize is true
920
+ ## if true, call this routine for each substring
921
+ ## and re-concatenate
922
+ if (tokenize and '-' in word) or (tokenize and '_' in word):
923
+ substrings = re.split(r'(_|-)', word)
924
+ values = substrings[::2]
925
+ delimiters = substrings[1::2] + ['']
926
+ ipa = [convert(x, dialect, glottal, pham, cao, palatals, delimit).strip() for x in values]
927
+ seq = ''.join(v+d for v,d in zip(ipa, delimiters))
928
+ else:
929
+ seq = convert(word, dialect, glottal, pham, cao, palatals, delimit).strip()
930
+ # concatenate
931
+ if len(words) >= 2:
932
+ ortho += ' '
933
+ if i < len(words)-1:
934
+ seq = seq+u' '
935
+ compound = compound + seq
936
+ return compound
937
+ EN={"a":"ây","ă":"á","â":"ớ","b":"bi","c":"si","d":"đi","đ":"đê","e":"i","ê":"ê","f":"ép","g":"giy","h":"ếch","i":"ai","j":"giây","k":"cây","l":"eo","m":"em","n":"en","o":"âu","ô":"ô","ơ":"ơ","p":"pi","q":"kiu","r":"a","s":"ét","t":"ti","u":"diu","ư":"ư","v":"vi","w":"đắp liu","x":"ít","y":"quai","z":"giét"}
938
+ import re
939
+ def vi2IPA_split(texts,delimit):
940
+ content=[]
941
+ with open("Popular.txt",encoding="utf-8") as f:
942
+ content=f.read().splitlines()
943
+ tess = texts.split(".")
944
+ Results =""
945
+ for text in tess:
946
+ print("------------------------------------------------------")
947
+ TN= TTSnorm(text)
948
+ print("------------------------------------------------------")
949
+ print("Text normalize: ",TN)
950
+ TK= word_tokenize(TN)
951
+ print("Vietnamese Tokenize: ",TK)
952
+
953
+
954
+ for iuv,under_valid in enumerate(TK):
955
+ token_under=under_valid.split(" ")
956
+ checkinvalid=0
957
+ print(token_under)
958
+ if len(token_under) >1:
959
+ for tok in token_under:
960
+ if tok not in content or "[" in T2IPA(tok):
961
+ checkinvalid=1
962
+ if checkinvalid==1:
963
+ TK = TK[:iuv] + TK[iuv+1 :]
964
+ for tok in reversed(token_under):
965
+ TK.insert(iuv, tok)
966
+
967
+ IPA=""
968
+
969
+ for tk in TK:
970
+ ipa = T2IPA_split(tk,delimit).replace(" ","_")
971
+ if ipa =="":
972
+ IPA+=delimit+tk+delimit+" "
973
+ elif ipa[0]=="[" and ipa[-1]=="]":
974
+ eng = eng_to_ipa.convert(tk)
975
+ if eng[-1] == "*":
976
+ if tk.lower().upper() == tk:
977
+ #print("ENGLISH",tk)
978
+ #Đọc tiếng anh từng chữ
979
+ letter2sound=""
980
+ for char in tk:
981
+ CHAR = str(char).lower()
982
+ if CHAR in list(EN.keys()):
983
+ letter2sound+=EN[CHAR]+" "
984
+ else:
985
+ letter2sound+=char+" "
986
+ IPA+=T2IPA_split(letter2sound,delimit)+" "
987
+ else:
988
+ #Giữ nguyên
989
+ IPA+=Parsing("default",tk.lower(),delimit)+" "
990
+ else:
991
+ IPA+=Parsing("default",eng,delimit)+" "
992
+ #Check tu dien tieng anh Etrain bưc
993
+ #Neu co Mapping
994
+ #Neu khong, check co nguyen am
995
+ #Neu co de nguyen
996
+ #Neu khong danh van
997
+ print(" ..................Out of domain word: " ,ipa)
998
+ else:
999
+ IPA+=ipa+" "
1000
+ IPA=re.sub(delimit+'+', delimit, IPA)
1001
+ IPA=re.sub(' +', ' ', IPA)
1002
+ print("IPA Vietnamese: ",IPA)
1003
+ print("------------------------------------------------------")
1004
+ Results+= IPA.rstrip()+" "+delimit+"."+delimit+" "
1005
+
1006
+ #For checking: need much memory
1007
+ '''
1008
+ check_sym="ɯəjɤ̆jʷiəɤ̆wɯəwʷetiəwuəjʷentʰwʷɤ̆ʷiukwiŋ͡mk͡pcwjwuəeəbwojʷivwăwʈwʂwaʊfwɛutʰtʃɔɪxwʷɤɤ̆ŋwʊəziʷădweɪaɪewiəɣwzwɯjʷɛɯwɤjɔ:əʊʷamwɑ:hwɔjujlwɪəăju:awɛjiwajɜ:kwnwt∫ɲweoswtwʐwiɛʷei:ɯədʒɲθʌlw1ɪɯd∫pəuo3ɣ!ðʧ6ʒʐzvgă_æɤ2ʤi.ɒbhnʂɔɛkm5cjxʈ,4ʊsŋaʃ?r:ηf;et'"
1009
+ for ine,res in enumerate(Results):
1010
+ if res not in check_sym:
1011
+ Results[ine]="'"
1012
+ '''
1013
+ return Results.rstrip()
1014
+ def vi2IPA(text):
1015
+ print("------------------------------------------------------")
1016
+ TN= TTSnorm(text)
1017
+ print("------------------------------------------------------")
1018
+ print("Text normalize: ",TN)
1019
+ TK= word_tokenize(TN)
1020
+ print("Vietnamese Tokenize: ",TK)
1021
+ IPA=""
1022
+ for tk in TK:
1023
+ ipa = T2IPA(tk).replace(" ","_")
1024
+ if ipa =="":
1025
+ IPA+=tk+" "
1026
+ elif ipa[0]=="[" and ipa[-1]=="]":
1027
+ eng = eng_to_ipa.convert(tk)
1028
+ if eng[-1] == "*":
1029
+ if tk.lower().upper() == tk:
1030
+ #Đọc tiếng anh từng chữ
1031
+ letter2sound=""
1032
+ for char in tk:
1033
+ CHAR = str(char).lower()
1034
+ if CHAR in list(EN.keys()):
1035
+ letter2sound+=EN[CHAR]+" "
1036
+ else:
1037
+ letter2sound+=char+" "
1038
+ IPA+=T2IPA_split(letter2sound,"")+" "
1039
+ else:
1040
+ #Giữ nguyên
1041
+ IPA+=Parsing("default",tk,"")+" "
1042
+ else:
1043
+ IPA+=eng+" "
1044
+ #Check tu dien tieng anh Etrain bưc
1045
+ #Neu co Mapping
1046
+ #Neu khong, check co nguyen am
1047
+ #Neu co de nguyen
1048
+ #Neu khong danh van
1049
+ print(" ..................Out of domain word: " ,ipa)
1050
+ else:
1051
+ IPA+=ipa+" "
1052
+ IPA=re.sub(' +', ' ', IPA)
1053
+ print("IPA Vietnamese: ",IPA)
1054
+ print("------------------------------------------------------")
1055
+ return IPA
1056
+
1057
+ def checkDict():
1058
+ cout=0
1059
+ trung=0
1060
+ List_token=[]
1061
+ List_pair = []
1062
+ with open("Popular.txt", encoding="utf-8") as f:
1063
+ content=f.read().splitlines()
1064
+ for line in content:
1065
+ #nor_tr = vi2IPA_pitrain(line)
1066
+ #nor = vi2IPA(line)
1067
+ nor = T2IPA(line)
1068
+ if nor in List_token:
1069
+ print(line + " -> "+nor)
1070
+ trung +=1
1071
+ List_pair.append(line)
1072
+ List_token.append(nor)
1073
+ if nor=="":
1074
+ cout+=1
1075
+ print(line)
1076
+ print("Number of token can not convert: ",cout)
1077
+ print("Number of token in the same mapping:",trung)
1078
+ List_token = list(set(List_token))
1079
+ #print(List_token)
1080
+ print(len(List_token))
1081
+ ################################
1082
+ #Looking for pair
1083
+ Pair = {}
1084
+ for lt in List_pair:
1085
+ Pair[T2IPA(lt)] = lt
1086
+ cout_same=0
1087
+ with open("Popular.txt", encoding="utf-8") as f:
1088
+ content=f.read().splitlines()
1089
+ for line in content:
1090
+ if T2IPA(line) in Pair:
1091
+ lin2 =Pair[T2IPA(line)]
1092
+ if line != lin2:
1093
+ if (lin2[0]=="k" and line[0]=="c") or (lin2[-1] in ['i','í','ì','ĩ','ỉ','ị'] and line[-1] in ['y','ý','ỳ','ỷ','ỹ','ỵ']) or (lin2[-1] in ['y','ý','ỳ','ỷ','ỹ','ỵ'] and line[-1] in ['i','í','ì','ĩ','ỉ','ị']):
1094
+ continue
1095
+ cout_same+=1
1096
+ print(line+ " <-> " + lin2 +"\t\t:\t\t"+T2IPA(line))
1097
+ print("Same pair:" , cout_same)
1098
+
1099
+ #Các trường hợp dẫn đến trùng âm là:
1100
+ # Phương ngữ khác nhau đã thống nhất ở list custom
1101
+ # Các trường hợp có cách bỏ dấu khác nhau đều gộp chung làm một
1102
+
1103
+ #Disable convert from 'ɲ' to 'ɲ'' in north
1104
+ #Các âm vòng ở đây i chang không vòm: không có w ở trước như: "oa,ua,a" đều như một > must consider (nhưng nếu thêm vào ảnh hưởng chữ qu cũng ra w)
1105
+ #Try to add ʷ to all start o and u as in wiki
1106
+ # *** Problem with ủy onglide and off-glide is a big problem
1107
+ #Same positive
1108
+ #k <-> c
1109
+ #g <-> gh
1110
+ #i <-> y
1111
+
1112
+ #Same negative / need to fix
1113
+ #oe <-> uê -> fix oe from e to ɛ
1114
+ #âm cuối: ch : k theo bắc : t theo nam -> custom k vì nó giảm trùng nhiều hơn 241->153 case
1115
+ #Tuy nhiên cuối cùng "ch" "c" "t" không phân âm được => ý tưởng mượn "tʃ" trong teach and watch để thay thế => k for c , t for t, tʃ for ch
1116
+ #Thay offglide: úy -> wi để phân biệt với úi
1117
+
1118
+
1119
+ #Remain
1120
+ '''
1121
+ di <-> gi : zi1
1122
+ dìm <-> gìm : zim2
1123
+ din <-> gin : zin1
1124
+ díp <-> gíp : zip5
1125
+ gen <-> ghen : ɣɛn1
1126
+ ghì <-> gì : ɣi2
1127
+ ghích <-> gích : ɣitʃ5
1128
+ ia <-> iê : iə1
1129
+ iêu <-> yêu : iəw1
1130
+ khoắng <-> khuắng : xwʷăŋ5
1131
+ khỏe <-> khoẻ : xwʷɛ4
1132
+ khua <-> khuơ : xuə1
1133
+ lóe <-> loé : lwʷɛ5
1134
+ ngét <-> nghét : ŋɛt5
1135
+ ngễu <-> nghễu : ŋɛu3
1136
+ nghía <-> ngía : ŋiə5
1137
+ nghịu <-> ngịu : ŋiw6
1138
+ nghoèo <-> ngoèo : ŋwew2
1139
+ quít <-> quýt : kwit5
1140
+ thủa <-> thuở : tʰuə4
1141
+ tòe <-> toè : twʷɛ2
1142
+ ua <-> uơ : uə1
1143
+ ưa <-> ươ : ɯə1
1144
+ xõa <-> xoã : swʷa3
1145
+ '''
1146
+
1147
+ #Ở đây tiết kiệm chi phí chạy máy không normal phoneme về cường độ âm sắc chỉ dừng từ 1->6
1148
+ #học ác cho kết quả "c" khác nhau
1149
+
1150
+
1151
+
1152
+ ###################################################
1153
+
1154
+ checkDict()
1155
+ #print(vi2IPA_split("!Singapo english? đại học là IUYE gì khôngtontaij NIYE BoOK","'"))
1156
+ #check các ipa của tiếng anh
1157
+ #print(vi2IPA_split("Another table was prepared to show available onsets. Onsets are splitted into 3 types. Type 1 are onsets which has one letter ","/"))
1158
+ #Lọc bỏ dấu nhấn của tiếng anh "'"
1159
+ #print(vi2IPA_split("speech? Secondly, we paper, we investigate work! One is that e language to another by","/").replace("/",""))
1160
+ #Case need to be deal:
1161
+ # NIYE BoOK
1162
+
1163
+
1164
+ #print(len(getSymbol()))
1165
+ #print(getSymbol())
1166
+ '''
1167
+ test="t"
1168
+ if test in syms:
1169
+ print(test)
1170
+ else:
1171
+ print("none")
1172
+ '''
1173
+
1174
+ ###################################################
1175
+
1176
+ #Step
1177
+ #Vinorm
1178
+ #Underthesea
1179
+ #For each Convert to phoneme
1180
+ #Nếu không được check phoneme tiếng anh
1181
+ #Nếu không có trong từ tiếng anh -> đọc từng kí tự
1182
+
1183
+
1184
+
1185
+ #Now
1186
+ #+Thêm kí tự IPA của tiếng ANH
1187
+ #+Thêm xử lí case không có cũng như case Tiếng anh: => dùng etrain cho tiếng anh
1188
+ #+Deal case thống nhất âm vực phoneme -> ok
1189
+ #+Get lại bộ symbol
viphoneme/__init__.py ADDED
@@ -0,0 +1,619 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ # (C1)(w)V(G|C2)+T
3
+
4
+ #symbol " ' " for undefine symbol and sign for english
5
+
6
+ '''
7
+ C1 = initial consonant onset
8
+ w = labiovelar on-glide /w/
9
+ V = vowel nucleus
10
+ G = off-glide coda (/j/ or /w/)
11
+ C2 = final consonant coda
12
+ T = tone.
13
+ '''
14
+ Cus_onsets = { u'b' : u'b', u't' : u't', u'th' : u'tʰ', u'đ' : u'd', u'ch' : u'c',
15
+ u'kh' : u'x', u'g' : u'ɣ', u'l' : u'l', u'm' : u'm', u'n': u'n',
16
+ u'ngh': u'ŋ', u'nh' : u'ɲ', u'ng' : u'ŋ', u'ph' : u'f', u'v' : u'v',
17
+ u'x' : u's', u'd' : u'z', u'h' : u'h', u'p' : u'p', u'qu' : u'kw',
18
+ u'gi' : u'j', u'tr' : u'ʈ', u'k' : u'k', u'c' : u'k', u'gh' : u'ɣ',
19
+ u'r' : u'ʐ', u's' : u'ʂ', u'gi': u'j'}
20
+
21
+
22
+ Cus_nuclei = { u'a' : u'a', u'á' : u'a', u'à' : u'a', u'ả' : u'a', u'ã' : u'a', u'ạ' : u'a',
23
+ u'â' : u'ɤ̆', u'ấ' : u'ɤ̆', u'ầ' : u'ɤ̆', u'ẩ' : u'ɤ̆', u'ẫ' : u'ɤ̆', u'ậ' : u'ɤ̆',
24
+ u'ă' : u'ă', u'ắ' : u'ă', u'ằ' : u'ă', u'ẳ' : u'ă', u'ẵ' : u'ă', u'ặ' : u'ă',
25
+ u'e' : u'ɛ', u'é' : u'ɛ', u'è' : u'ɛ', u'ẻ' : u'ɛ', u'ẽ' : u'ɛ', u'ẹ' : u'ɛ',
26
+ u'ê' : u'e', u'ế' : u'e', u'ề' : u'e', u'ể' : u'e', u'ễ' : u'e', u'ệ' : u'e',
27
+ u'i' : u'i', u'í' : u'i', u'ì' : u'i', u'ỉ' : u'i', u'ĩ' : u'i', u'ị' : u'i',
28
+ u'o' : u'ɔ', u'ó' : u'ɔ', u'ò' : u'ɔ', u'ỏ' : u'ɔ', u'õ' : u'ɔ', u'ọ' : u'ɔ',
29
+ u'ô' : u'o', u'ố' : u'o', u'ồ' : u'o', u'ổ' : u'o', u'ỗ' : u'o', u'ộ' : u'o',
30
+ u'ơ' : u'ɤ', u'ớ' : u'ɤ', u'ờ' : u'ɤ', u'ở' : u'ɤ', u'ỡ' : u'ɤ', u'ợ' : u'ɤ',
31
+ u'u' : u'u', u'ú' : u'u', u'ù' : u'u', u'ủ' : u'u', u'ũ' : u'u', u'ụ' : u'u',
32
+ u'ư' : u'ɯ', u'ứ' : u'ɯ', u'ừ' : u'ɯ', u'ử' : u'ɯ', u'ữ' : u'ɯ', u'ự' : u'ɯ',
33
+ u'y' : u'i', u'ý' : u'i', u'ỳ' : u'i', u'ỷ' : u'i', u'ỹ' : u'i', u'ỵ' : u'i',
34
+
35
+ u'eo' : u'eo', u'éo' : u'eo', u'èo' : u'eo', u'ẻo' : u'eo', u'ẽo': u'eo', u'ẹo' : u'eo',
36
+ u'êu' : u'ɛu', u'ếu' : u'ɛu', u'ều' : u'ɛu', u'ểu' : u'ɛu', u'ễu': u'ɛu', u'ệu' : u'ɛu',
37
+ u'ia' : u'iə', u'ía' : u'iə', u'ìa' : u'iə', u'ỉa' : u'iə', u'ĩa' : u'iə', u'ịa' : u'iə',
38
+ u'ia' : u'iə', u'iá' : u'iə', u'ià' : u'iə', u'iả' : u'iə', u'iã' : u'iə', u'iạ' : u'iə',
39
+ u'iê' : u'iə', u'iế' : u'iə', u'iề' : u'iə', u'iể' : u'iə', u'iễ' : u'iə', u'iệ' : u'iə',
40
+ u'oo' : u'ɔ', u'óo' : u'ɔ', u'òo' : u'ɔ', u'ỏo' : u'ɔ', u'õo' : u'ɔ', u'ọo' : u'ɔ',
41
+ u'oo' : u'ɔ', u'oó' : u'ɔ', u'oò' : u'ɔ', u'oỏ' : u'ɔ', u'oõ' : u'ɔ', u'oọ' : u'ɔ',
42
+ u'ôô' : u'o', u'ốô' : u'o', u'ồô' : u'o', u'ổô' : u'o', u'ỗô' : u'o', u'ộô' : u'o',
43
+ u'ôô' : u'o', u'ôố' : u'o', u'ôồ' : u'o', u'ôổ' : u'o', u'ôỗ' : u'o', u'ôộ' : u'o',
44
+ u'ua' : u'uə', u'úa' : u'uə', u'ùa' : u'uə', u'ủa' : u'uə', u'ũa' : u'uə', u'ụa' : u'uə',
45
+ u'uô' : u'uə', u'uố' : u'uə', u'uồ' : u'uə', u'uổ' : u'uə', u'uỗ' : u'uə', u'uộ' : u'uə',
46
+ u'ưa' : u'ɯə', u'ứa' : u'ɯə', u'ừa' : u'ɯə', u'ửa' : u'ɯə', u'ữa' : u'ɯə', u'ựa' : u'ɯə',
47
+ u'ươ' : u'ɯə', u'ướ' : u'ɯə', u'ườ' : u'ɯə', u'ưở' : u'ɯə', u'ưỡ' : u'ɯə', u'ượ' : u'ɯə',
48
+ u'yê' : u'iɛ', u'yế' : u'iɛ', u'yề' : u'iɛ', u'yể' : u'iɛ', u'yễ' : u'iɛ', u'yệ' : u'iɛ',
49
+ u'uơ' : u'uə', u'uở' : u'uə', u'uờ': u'uə', u'uở' : u'uə', u'uỡ' : u'uə', u'uợ' : u'uə',
50
+ }
51
+
52
+
53
+ Cus_offglides = { u'ai' : u'aj', u'ái' : u'aj', u'ài' : u'aj', u'ải' : u'aj', u'ãi' : u'aj', u'ại' : u'aj',
54
+ u'ay' : u'ăj', u'áy' : u'ăj', u'ày' : u'ăj', u'ảy' : u'ăj', u'ãy' : u'ăj', u'ạy' : u'ăj',
55
+ u'ao' : u'aw', u'áo' : u'aw', u'ào' : u'aw', u'ảo' : u'aw', u'ão' : u'aw', u'ạo' : u'aw',
56
+ u'au' : u'ăw', u'áu' : u'ăw', u'àu' : u'ăw', u'ảu' : u'ăw', u'ãu' : u'ăw', u'ạu' : u'ăw',
57
+ u'ây' : u'ɤ̆j', u'ấy' : u'ɤ̆j', u'ầy' : u'ɤ̆j', u'ẩy' : u'ɤ̆j', u'ẫy' : u'ɤ̆j', u'ậy' : u'ɤ̆j',
58
+ u'âu' : u'ɤ̆w', u'ấu' : u'ɤ̆w', u'ầu': u'ɤ̆w', u'ẩu' : u'ɤ̆w', u'ẫu' : u'ɤ̆w', u'ậu' : u'ɤ̆w',
59
+ u'eo' : u'ew', u'éo' : u'ew', u'èo' : u'ew', u'ẻo' : u'ew', u'ẽo' : u'ew', u'ẹo' : u'ew',
60
+ u'iu' : u'iw', u'íu' : u'iw', u'ìu' : u'iw', u'ỉu' : u'iw', u'ĩu' : u'iw', u'ịu' : u'iw',
61
+ u'oi' : u'ɔj', u'ói' : u'ɔj', u'òi' : u'ɔj', u'ỏi' : u'ɔj', u'õi' : u'ɔj', u'ọi' : u'ɔj',
62
+ u'ôi' : u'oj', u'ối' : u'oj', u'ồi' : u'oj', u'ổi' : u'oj', u'ỗi' : u'oj', u'ội' : u'oj',
63
+ u'ui' : u'uj', u'úi' : u'uj', u'ùi' : u'uj', u'ủi' : u'uj', u'ũi' : u'uj', u'ụi' : u'uj',
64
+
65
+ #u'uy' : u'uj', u'úy' : u'uj', u'ùy' : u'uj', u'ủy' : u'uj', u'ũy' : u'uj', u'ụy' : u'uj',
66
+ u'uy' : u'ʷi', u'úy' : u'uj', u'ùy' : u'uj', u'ủy' : u'uj', u'ũy' : u'uj', u'ụy' : u'uj',
67
+ #thay để hạn chế trùng âm
68
+ u'uy' : u'ʷi', u'uý' : u'ʷi', u'uỳ' : u'ʷi', u'uỷ' : u'ʷi', u'uỹ' : u'ʷi', u'uỵ' : u'ʷi',
69
+
70
+ u'ơi' : u'ɤj', u'ới' : u'ɤj', u'ời' : u'ɤj', u'ởi' : u'ɤj', u'ỡi' : u'ɤj', u'ợi' : u'ɤj',
71
+ u'ưi' : u'ɯj', u'ứi' : u'ɯj', u'ừi' : u'ɯj', u'ửi' : u'ɯj', u'ữi' : u'ɯj', u'ựi' : u'ɯj',
72
+ u'ưu' : u'ɯw', u'ứu' : u'ɯw', u'ừu' : u'ɯw', u'ửu' : u'ɯw', u'ữu' : u'ɯw', u'ựu' : u'ɯw',
73
+
74
+ u'iêu' : u'iəw', u'iếu' : u'iəw', u'iều' : u'iəw', u'iểu' : u'iəw', u'iễu' : u'iəw', u'iệu' : u'iəw',
75
+ u'yêu' : u'iəw', u'yếu' : u'iəw', u'yều' : u'iəw', u'yểu' : u'iəw', u'yễu' : u'iəw', u'yệu' : u'iəw',
76
+ u'uôi' : u'uəj', u'uối' : u'uəj', u'uồi' : u'uəj', u'uổi' : u'uəj', u'uỗi' : u'uəj', u'uội' : u'uəj',
77
+ u'ươi' : u'ɯəj', u'ưới' : u'ɯəj', u'ười' : u'ɯəj', u'ưởi' : u'ɯəj', u'ưỡi' : u'ɯəj', u'ượi' : u'ɯəj',
78
+ u'ươu' : u'ɯəw', u'ướu' : u'ɯəw', u'ườu' : u'ɯəw', u'ưởu' : u'ɯəw', 'ưỡu' : u'ɯəw', u'ượu' : u'ɯəw'
79
+ }
80
+ #Các âm vòng ở đây i chang không vòm: không có w ở trước => Try to add ʷ
81
+ Cus_onglides = { u'oa' : u'ʷa', u'oá' : u'ʷa', u'oà' : u'ʷa', u'oả' : u'ʷa', u'oã' : u'ʷa', u'oạ' : u'ʷa',
82
+ u'óa' : u'ʷa', u'òa' : u'ʷa', u'ỏa' : u'ʷa', u'õa' : u'ʷa', u'ọa' : u'ʷa',
83
+ u'oă' : u'ʷă', u'oắ' : u'ʷă', u'oằ' : u'ʷă', u'oẳ' : u'ʷă', u'oẵ' : u'ʷă', u'oặ' : u'ʷă',
84
+ u'oe' : u'ʷɛ', u'oé' : u'ʷɛ', u'oè' : u'ʷɛ', u'oẻ' : u'ʷɛ', u'oẽ' : u'ʷɛ', u'oẹ' : u'ʷɛ',
85
+ u'oe' : u'ʷɛ', u'óe' : u'ʷɛ', u'òe' : u'ʷɛ', u'ỏe' : u'ʷɛ', u'õe' : u'ʷɛ', u'ọe' : u'ʷɛ',
86
+ u'ua' : u'ʷa', u'uá' : u'ʷa', u'uà' : u'ʷa', u'uả' : u'ʷa', u'uã' : u'ʷa', u'uạ' : u'ʷa',
87
+ u'uă' : u'ʷă', u'uắ' : u'ʷă', u'uằ' : u'ʷă', u'uẳ' : u'ʷă', u'uẵ' : u'ʷă', u'uặ' : u'ʷă',
88
+ u'uâ' : u'ʷɤ̆', u'uấ' : u'ʷɤ̆', u'uầ' : u'ʷɤ̆', u'uẩ' : u'ʷɤ̆', u'uẫ' : u'ʷɤ̆', u'uậ' : u'ʷɤ̆',
89
+ u'ue' : u'ʷɛ', u'ué' : u'ʷɛ', u'uè' : u'ʷɛ', u'uẻ' : u'ʷɛ', u'uẽ' : u'ʷɛ', u'uẹ' : u'ʷɛ',
90
+ u'uê' : u'ʷe', u'uế' : u'ʷe', u'uề' : u'ʷe', u'uể' : u'ʷe', u'uễ' : u'ʷe', u'uệ' : u'ʷe',
91
+ u'uơ' : u'ʷɤ', u'uớ' : u'ʷɤ', u'uờ' : u'ʷɤ', u'uở' : u'ʷɤ', u'uỡ' : u'ʷɤ', u'uợ' : u'ʷɤ',
92
+ u'uy' : u'ʷi', u'uý' : u'ʷi', u'uỳ' : u'ʷi', u'uỷ' : u'ʷi', u'uỹ' : u'ʷi', u'uỵ' : u'ʷi',
93
+ u'uya' : u'ʷiə', u'uyá' : u'ʷiə', u'uyà' : u'ʷiə', u'uyả' : u'ʷiə', u'uyã' : u'ʷiə', u'uyạ' : u'ʷiə',
94
+ u'uyê' : u'ʷiə', u'uyế' : u'ʷiə', u'uyề' : u'ʷiə', u'uyể' : u'ʷiə', u'uyễ' : u'ʷiə', u'uyệ' : u'ʷiə',
95
+ u'uyu' : u'ʷiu', u'uyú' : u'ʷiu', u'uyù' : u'ʷiu', u'uyủ' : u'ʷiu', u'uyũ' : u'ʷiu', u'uyụ' : u'ʷiu',
96
+ u'uyu' : u'ʷiu', u'uýu' : u'ʷiu', u'uỳu' : u'ʷiu', u'uỷu' : u'ʷiu', u'uỹu' : u'ʷiu', u'uỵu' : u'ʷiu',
97
+ u'oen' : u'ʷen', u'oén' : u'ʷen', u'oèn' : u'ʷen', u'oẻn' : u'ʷen', u'oẽn' : u'ʷen', u'oẹn' : u'ʷen',
98
+ u'oet' : u'ʷet', u'oét' : u'ʷet', u'oèt' : u'ʷet', u'oẻt' : u'ʷet', u'oẽt' : u'ʷet', u'oẹt' : u'ʷet'
99
+ }
100
+
101
+ Cus_onoffglides = { u'oe' : u'ɛj', u'oé' : u'ɛj', u'oè' : u'ɛj', u'oẻ' : u'ɛj', u'oẽ' : u'ɛj', u'oẹ' : u'ɛj',
102
+ u'oai' : u'aj', u'oái' : u'aj', u'oài' : u'aj', u'oải' : u'aj', u'oãi' : u'aj', u'oại' : u'aj',
103
+ u'oay' : u'ăj', u'oáy' : u'ăj', u'oày' : u'ăj', u'oảy' : u'ăj', u'oãy' : u'ăj', u'oạy' : u'ăj',
104
+ u'oao' : u'aw', u'oáo' : u'aw', u'oào' : u'aw', u'oảo' : u'aw', u'oão' : u'aw', u'oạo' : u'aw',
105
+ u'oeo' : u'ew', u'oéo' : u'ew', u'oèo' : u'ew', u'oẻo' : u'ew', u'oẽo' : u'ew', u'oẹo' : u'ew',
106
+ u'oeo' : u'ew', u'óeo' : u'ew', u'òeo' : u'ew', u'ỏeo' : u'ew', u'õeo' : u'ew', u'ọeo' : u'ew',
107
+ u'ueo' : u'ew', u'uéo' : u'ew', u'uèo' : u'ew', u'uẻo' : u'ew', u'uẽo' : u'ew', u'uẹo' : u'ew',
108
+ u'uai' : u'aj', u'uái' : u'aj', u'uài' : u'aj', u'uải' : u'aj', u'uãi' : u'aj', u'uại' : u'aj',
109
+ u'uay' : u'ăj', u'uáy' : u'ăj', u'uày' : u'ăj', u'uảy' : u'ăj', u'uãy' : u'ăj', u'uạy' : u'ăj',
110
+ u'uây' : u'ɤ̆j', u'uấy' : u'ɤ̆j', u'uầy' : u'ɤ̆j', u'uẩy' : u'ɤ̆j', u'uẫy' : u'ɤ̆j', u'uậy' : u'ɤ̆j'
111
+ }
112
+
113
+ Cus_codas = { u'p' : u'p', u't' : u't', u'c' : u'k', u'm' : u'm', u'n' : u'n', u'ng' : u'ŋ', u'nh' : u'ɲ', u'ch' : u'tʃ' }
114
+
115
+ Cus_tones_p = { u'á' : 5, u'à' : 2, u'ả' : 4, u'ã' : 3, u'ạ' : 6,
116
+ u'ấ' : 5, u'ầ' : 2, u'ẩ' : 4, u'ẫ' : 3, u'ậ' : 6,
117
+ u'ắ' : 5, u'ằ' : 2, u'ẳ' : 4, u'ẵ' : 3, u'ặ' : 6,
118
+ u'é' : 5, u'è' : 2, u'ẻ' : 4, u'ẽ' : 3, u'ẹ' : 6,
119
+ u'ế' : 5, u'ề' : 2, u'ể' : 4, u'ễ' : 3, u'ệ' : 6,
120
+ u'í' : 5, u'ì' : 2, u'ỉ' : 4, u'ĩ' : 3, u'ị' : 6,
121
+ u'ó' : 5, u'ò' : 2, u'ỏ' : 4, u'õ' : 3, u'ọ' : 6,
122
+ u'ố' : 5, u'ồ' : 2, u'ổ' : 4, u'ỗ' : 3, u'ộ' : 6,
123
+ u'ớ' : 5, u'ờ' : 2, u'ở' : 4, u'ỡ' : 3, u'ợ' : 6,
124
+ u'ú' : 5, u'ù' : 2, u'ủ' : 4, u'ũ' : 3, u'ụ' : 6,
125
+ u'ứ' : 5, u'ừ' : 2, u'ử' : 4, u'ữ' : 3, u'ự' : 6,
126
+ u'ý' : 5, u'ỳ' : 2, u'ỷ' : 4, u'ỹ' : 3, u'ỵ' : 6,
127
+ }
128
+
129
+ Cus_gi = { u'gi' : u'zi', u'gí': u'zi', u'gì' : u'zi', u'gì' : u'zi', u'gĩ' : u'zi', u'gị' : u'zi'}
130
+
131
+ Cus_qu = {u'quy' : u'kwi', u'qúy' : u'kwi', u'qùy' : u'kwi', u'qủy' : u'kwi', u'qũy' : u'kwi', u'qụy' : u'kwi'}
132
+
133
+
134
+ ################################################3
135
+ import sys, codecs, re
136
+ from io import StringIO
137
+ from optparse import OptionParser
138
+ from string import punctuation
139
+ #import prosodic as p
140
+
141
+ def trans(word, dialect, glottal, pham, cao, palatals):
142
+
143
+
144
+ #Custom
145
+ onsets, nuclei, codas, onglides, offglides, onoffglides, qu, gi = Cus_onsets, Cus_nuclei, Cus_codas, Cus_onglides, Cus_offglides, Cus_onoffglides, Cus_qu, Cus_gi
146
+
147
+
148
+
149
+ if pham or cao:
150
+
151
+ #Custom
152
+ tones_p = Cus_tones_p
153
+
154
+
155
+ tones = tones_p
156
+
157
+ ons = ''
158
+ nuc = ''
159
+ cod = ''
160
+ ton = 0
161
+ oOffset = 0
162
+ cOffset = 0
163
+ l = len(word)
164
+
165
+ if l > 0:
166
+ if word[0:3] in onsets: # if onset is 'ngh'
167
+ ons = onsets[word[0:3]]
168
+ oOffset = 3
169
+ elif word[0:2] in onsets: # if onset is 'nh', 'gh', 'kʷ' etc
170
+ ons = onsets[word[0:2]]
171
+ oOffset = 2
172
+ elif word[0] in onsets: # if single onset
173
+ ons = onsets[word[0]]
174
+ oOffset = 1
175
+
176
+ if word[l-2:l] in codas: # if two-character coda
177
+ cod = codas[word[l-2:l]]
178
+ cOffset = 2
179
+ elif word[l-1] in codas: # if one-character coda
180
+ cod = codas[word[l-1]]
181
+ cOffset = 1
182
+
183
+
184
+ #if word[0:2] == u'gi' and cod and len(word) == 3: # if you just have 'gi' and a coda...
185
+ if word[0:2] in gi and cod and len(word) == 3: # if you just have 'gi' and a coda...
186
+ nucl = u'i'
187
+ ons = u'z'
188
+ else:
189
+ nucl = word[oOffset:l-cOffset]
190
+
191
+ if nucl in nuclei:
192
+ if oOffset == 0:
193
+ if glottal == 1:
194
+ if word[0] not in onsets: # if there isn't an onset....
195
+ ons = u'ʔ'+nuclei[nucl] # add a glottal stop
196
+ else: # otherwise...
197
+ nuc = nuclei[nucl] # there's your nucleus
198
+ else:
199
+ nuc = nuclei[nucl] # there's your nucleus
200
+ else: # otherwise...
201
+ nuc = nuclei[nucl] # there's your nucleus
202
+
203
+ elif nucl in onglides and ons != u'kw': # if there is an onglide...
204
+ nuc = onglides[nucl] # modify the nuc accordingly
205
+ if ons: # if there is an onset...
206
+ ons = ons+u'w' # labialize it, but...
207
+ else: # if there is no onset...
208
+ ons = u'w' # add a labiovelar onset
209
+
210
+ elif nucl in onglides and ons == u'kw':
211
+ nuc = onglides[nucl]
212
+
213
+ elif nucl in onoffglides:
214
+ cod = onoffglides[nucl][-1]
215
+ nuc = onoffglides[nucl][0:-1]
216
+ if ons != u'kw':
217
+ if ons:
218
+ ons = ons+u'w'
219
+ else:
220
+ ons = u'w'
221
+ elif nucl in offglides:
222
+ cod = offglides[nucl][-1]
223
+ nuc = offglides[nucl][:-1]
224
+
225
+ elif word in gi: # if word == 'gi', 'gì',...
226
+ ons = gi[word][0]
227
+ nuc = gi[word][1]
228
+
229
+ elif word in qu: # if word == 'quy', 'qúy',...
230
+ ons = qu[word][:-1]
231
+ nuc = qu[word][-1]
232
+
233
+ else:
234
+ # Something is non-Viet
235
+ return (None, None, None, None)
236
+
237
+
238
+ # Velar Fronting (Northern dialect)
239
+ if dialect == 'n':
240
+ if nuc == u'a':
241
+ if cod == u'k' and cOffset == 2: nuc = u'ɛ'
242
+ if cod == u'ɲ' and nuc == u'a': nuc = u'ɛ'
243
+
244
+ # Final palatals (Northern dialect)
245
+ if nuc not in [u'i', u'e', u'ɛ']:
246
+ if cod == u'ɲ':
247
+ cod = u'ɲ' # u'ŋ'
248
+ elif palatals != 1 and nuc in [u'i', u'e', u'ɛ']:
249
+ if cod == u'ɲ':
250
+ cod = u'ɲ'#u'ŋ'
251
+ if palatals == 1:
252
+ if cod == u'k' and nuc in [u'i', u'e', u'ɛ']:
253
+ cod = u'c'
254
+
255
+ # Velar Fronting (Southern and Central dialects)
256
+ else:
257
+ if nuc in [u'i', u'e']:
258
+ if cod == u'k': cod = u't'
259
+ if cod == u'ŋ': cod = u'n'
260
+
261
+ # There is also this reverse fronting, see Thompson 1965:94 ff.
262
+ elif nuc in [u'iə', u'ɯə', u'uə', u'u', u'ɯ', u'ɤ', u'o', u'ɔ', u'ă', u'ɤ̆']:
263
+ if cod == u't':
264
+ cod = u'k'
265
+ if cod == u'n': cod = u'ŋ'
266
+
267
+ # Monophthongization (Southern dialects: Thompson 1965: 86; Hoàng 1985: 181)
268
+ if dialect == 's':
269
+ if cod in [u'm', u'p']:
270
+ if nuc == u'iə': nuc = u'i'
271
+ if nuc == u'uə': nuc = u'u'
272
+ if nuc == u'ɯə': nuc = u'ɯ'
273
+
274
+ # Tones
275
+ # Modified 20 Sep 2008 to fix aberrant 33 error
276
+ tonelist = [tones[word[i]] for i in range(0,l) if word[i] in tones]
277
+ if tonelist:
278
+ ton = str(tonelist[len(tonelist)-1])
279
+ else:
280
+ if not (pham or cao):
281
+ if dialect == 'c':
282
+ ton = str('35')
283
+ else:
284
+ ton = str('33')
285
+ else:
286
+ ton = str('1')
287
+
288
+ # Modifications for closed syllables
289
+ if cOffset !=0:
290
+
291
+ # Obstruent-final nang tones are modal voice
292
+ if (dialect == 'n' or dialect == 's') and ton == u'21g' and cod in ['p', 't', 'k']:
293
+ #if ton == u'21\u02C0' and cod in ['p', 't', 'k']: # fixed 8 Nov 2016
294
+ ton = u'21'
295
+
296
+ # Modification for sắc in closed syllables (Northern and Central only)
297
+ if ((dialect == 'n' and ton == u'24') or (dialect == 'c' and ton == u'13')) and cod in ['p', 't', 'k']:
298
+ ton = u'45'
299
+
300
+ # Modification for 8-tone system
301
+ if cao == 1:
302
+ if ton == u'5' and cod in ['p', 't', 'k']:
303
+ ton = u'5b'
304
+ if ton == u'6' and cod in ['p', 't', 'k']:
305
+ ton = u'6b'
306
+
307
+ # labialized allophony (added 17.09.08)
308
+ if nuc in [u'u', u'o', u'ɔ']:
309
+ if cod == u'ŋ':
310
+ cod = u'ŋ͡m'
311
+ if cod == u'k':
312
+ cod = u'k͡p'
313
+
314
+ return (ons, nuc, cod, ton)
315
+
316
+ def convert(word, dialect, glottal, pham, cao, palatals, delimit):
317
+ """Convert a single orthographic string to IPA."""
318
+
319
+ ons = ''
320
+ nuc = ''
321
+ cod = ''
322
+ ton = 0
323
+ seq = ''
324
+
325
+ try:
326
+ (ons, nuc, cod, ton) = trans(word, dialect, glottal, pham, cao, palatals)
327
+ if None in (ons, nuc, cod, ton):
328
+ seq = u'['+word+u']'
329
+ else:
330
+ seq = delimit+delimit.join(filter(None, (ons, nuc, cod, ton)))+delimit
331
+ except (TypeError):
332
+ pass
333
+
334
+ return seq
335
+
336
+
337
+
338
+ ########################333
339
+ from vinorm import *
340
+ from underthesea import word_tokenize
341
+ import eng_to_ipa
342
+
343
+ syms=['ɯəj', 'ɤ̆j', 'ʷiə', 'ɤ̆w', 'ɯəw', 'ʷet', 'iəw', 'uəj', 'ʷen', 'tʰw', 'ʷɤ̆', 'ʷiu', 'kwi', 'ŋ͡m', 'k͡p', 'cw', 'jw', 'uə', 'eə', 'bw', 'oj', 'ʷi', 'vw', 'ăw', 'ʈw', 'ʂw', 'aʊ', 'fw', 'ɛu', 'tʰ', 'tʃ', 'ɔɪ', 'xw', 'ʷɤ', 'ɤ̆', 'ŋw', 'ʊə', 'zi', 'ʷă', 'dw', 'eɪ', 'aɪ', 'ew', 'iə', 'ɣw', 'zw', 'ɯj', 'ʷɛ', 'ɯw', 'ɤj', 'ɔ:', 'əʊ', 'ʷa', 'mw', 'ɑ:', 'hw', 'ɔj', 'uj', 'lw', 'ɪə', 'ăj', 'u:', 'aw', 'ɛj', 'iw', 'aj', 'ɜ:', 'kw', 'nw', 't∫', 'ɲw', 'eo', 'sw', 'tw', 'ʐw', 'iɛ', 'ʷe', 'i:', 'ɯə', 'dʒ', 'ɲ', 'θ', 'ʌ', 'l', 'w', '1', 'ɪ', 'ɯ', 'd', '∫', 'p', 'ə', 'u', 'o', '3', 'ɣ', '!', 'ð', 'ʧ', '6', 'ʒ', 'ʐ', 'z', 'v', 'g', 'ă', '_', 'æ', 'ɤ', '2', 'ʤ', 'i', '.', 'ɒ', 'b', 'h', 'n', 'ʂ', 'ɔ', 'ɛ', 'k', 'm', '5', ' ', 'c', 'j', 'x', 'ʈ', ',', '4', 'ʊ', 's', 'ŋ', 'a', 'ʃ', '?', 'r', ':', 'η', 'f', ';', 'e', 't', "'"]
344
+
345
+ def normEng (eng,delemit):
346
+ return ""
347
+ '''
348
+ x= p.Text(eng)
349
+ x.parse()
350
+ PAR = str(x.bestParses()[0]).split("|")
351
+ SYL = x.syllables()
352
+ if len(PAR) != len(SYL):
353
+ print("check dif len: ", eng)
354
+ result="/"+"/".join(list(eng))
355
+ return result
356
+ result = ""
357
+ for i,syl in enumerate(SYL):
358
+ syllable = str(syl).replace("'","").replace("ː","").replace("ɑ","a")
359
+ if PAR[i].lower().upper() == PAR[i]:
360
+ result+=syllable+"'5"+" "
361
+ else:
362
+ result+=syllable+"'1"+" "
363
+ result=result.rstrip(" ")
364
+ if delemit !="":
365
+ takemore=""
366
+ for r in result:
367
+ if r in syms:
368
+ takemore+=delemit+r
369
+ result=takemore
370
+ return result
371
+ '''
372
+ def Parsing(listParse, text, delimit):
373
+ undefine_symbol = "'"
374
+ if listParse == "default":
375
+ listParse=['ɯəj', 'ɤ̆j', 'ʷiə', 'ɤ̆w', 'ɯəw', 'ʷet', 'iəw', 'uəj', 'ʷen', 'tʰw', 'ʷɤ̆', 'ʷiu', 'kwi', 'ŋ͡m', 'k͡p', 'cw', 'jw', 'uə', 'eə', 'bw', 'oj', 'ʷi', 'vw', 'ăw', 'ʈw', 'ʂw', 'aʊ', 'fw', 'ɛu', 'tʰ', 'tʃ', 'ɔɪ', 'xw', 'ʷɤ', 'ɤ̆', 'ŋw', 'ʊə', 'zi', 'ʷă', 'dw', 'eɪ', 'aɪ', 'ew', 'iə', 'ɣw', 'zw', 'ɯj', 'ʷɛ', 'ɯw', 'ɤj', 'ɔ:', 'əʊ', 'ʷa', 'mw', 'ɑ:', 'hw', 'ɔj', 'uj', 'lw', 'ɪə', 'ăj', 'u:', 'aw', 'ɛj', 'iw', 'aj', 'ɜ:', 'kw', 'nw', 't∫', 'ɲw', 'eo', 'sw', 'tw', 'ʐw', 'iɛ', 'ʷe', 'i:', 'ɯə', 'dʒ', 'ɲ', 'θ', 'ʌ', 'l', 'w', '1', 'ɪ', 'ɯ', 'd', '∫', 'p', 'ə', 'u', 'o', '3', 'ɣ', '!', 'ð', 'ʧ', '6', 'ʒ', 'ʐ', 'z', 'v', 'g', 'ă', '_', 'æ', 'ɤ', '2', 'ʤ', 'i', '.', 'ɒ', 'b', 'h', 'n', 'ʂ', 'ɔ', 'ɛ', 'k', 'm', '5', ' ', 'c', 'j', 'x', 'ʈ', ',', '4', 'ʊ', 's', 'ŋ', 'a', 'ʃ', '?', 'r', ':', 'η', 'f', ';', 'e', 't', "'"]
376
+ listParse.sort(reverse = True,key=len)
377
+ output=""
378
+ skip=0
379
+ for ic,char in enumerate(text):
380
+ ##print(char,skip)
381
+ check = 0
382
+ if skip>0:
383
+ skip=skip-1
384
+ continue
385
+ for l in listParse:
386
+
387
+ if len(l) <= len(text[ic:]) and l == text[ic:ic+len(l)]:
388
+ output+=delimit+l
389
+ check =1
390
+ skip=len(l)-1
391
+ break
392
+ if check == 0:
393
+ #Case symbol not in list
394
+ if str(char) in ["ˈ","ˌ","*"]:
395
+ continue
396
+ #print("this is not in symbol :"+ char+":")
397
+ output+=delimit+undefine_symbol
398
+ return output.rstrip()+delimit
399
+
400
+ def T2IPA_split(text,delimit):
401
+ sys.path.append('./Rules') # make sure we can find the Rules files
402
+ #Setup option
403
+ glottal = 0
404
+ pham = 0
405
+ cao = 0
406
+ palatals = 0
407
+ tokenize = 0
408
+ dialect='n' #"c""s"
409
+ tone_type=0
410
+ if tone_type==0:
411
+ pham=1
412
+ else:
413
+ cao=1
414
+ #Input text
415
+ line = text
416
+ if line =='\n':
417
+ return ""
418
+ else:
419
+ compound = u''
420
+ ortho = u''
421
+ words = line.split()
422
+ ## toss len==0 junk
423
+ words = [word for word in words if len(word)>0]
424
+ ## hack to get rid of single hyphens or underscores
425
+ words = [word for word in words if word!=u'-']
426
+ words = [word for word in words if word!=u'_']
427
+ for i in range(0,len(words)):
428
+ word = words[i].strip()
429
+ ortho += word
430
+ word = word.strip(punctuation).lower()
431
+ ## 29.03.16: check if tokenize is true
432
+ ## if true, call this routine for each substring
433
+ ## and re-concatenate
434
+ if (tokenize and '-' in word) or (tokenize and '_' in word):
435
+ substrings = re.split(r'(_|-)', word)
436
+ values = substrings[::2]
437
+ delimiters = substrings[1::2] + ['']
438
+ ipa = [convert(x, dialect, glottal, pham, cao, palatals, delimit).strip() for x in values]
439
+ seq = ''.join(v+d for v,d in zip(ipa, delimiters))
440
+ else:
441
+ seq = convert(word, dialect, glottal, pham, cao, palatals, delimit).strip()
442
+ # concatenate
443
+ if len(words) >= 2:
444
+ ortho += ' '
445
+ if i < len(words)-1:
446
+ seq = seq+u' '
447
+ compound = compound + seq
448
+ return compound
449
+ def T2IPA(text):
450
+ sys.path.append('./Rules') # make sure we can find the Rules files
451
+ #Setup option
452
+ glottal = 0
453
+ pham = 0
454
+ cao = 0
455
+ palatals = 0
456
+ tokenize = 0
457
+ delimit = ''
458
+ dialect='n' #"c""s"
459
+ tone_type=0
460
+ if tone_type==0:
461
+ pham=1
462
+ else:
463
+ cao=1
464
+ #Input text
465
+ line = text
466
+ if line =='\n':
467
+ return ""
468
+ else:
469
+ compound = u''
470
+ ortho = u''
471
+ words = line.split()
472
+ ## toss len==0 junk
473
+ words = [word for word in words if len(word)>0]
474
+ ## hack to get rid of single hyphens or underscores
475
+ words = [word for word in words if word!=u'-']
476
+ words = [word for word in words if word!=u'_']
477
+ for i in range(0,len(words)):
478
+ word = words[i].strip()
479
+ ortho += word
480
+ word = word.strip(punctuation).lower()
481
+ ## 29.03.16: check if tokenize is true
482
+ ## if true, call this routine for each substring
483
+ ## and re-concatenate
484
+ if (tokenize and '-' in word) or (tokenize and '_' in word):
485
+ substrings = re.split(r'(_|-)', word)
486
+ values = substrings[::2]
487
+ delimiters = substrings[1::2] + ['']
488
+ ipa = [convert(x, dialect, glottal, pham, cao, palatals, delimit).strip() for x in values]
489
+ seq = ''.join(v+d for v,d in zip(ipa, delimiters))
490
+ else:
491
+ seq = convert(word, dialect, glottal, pham, cao, palatals, delimit).strip()
492
+ # concatenate
493
+ if len(words) >= 2:
494
+ ortho += ' '
495
+ if i < len(words)-1:
496
+ seq = seq+u' '
497
+ compound = compound + seq
498
+ return compound
499
+
500
+ EN={"a":"ây","ă":"á","â":"ớ","b":"bi","c":"si","d":"đi","đ":"đê","e":"i","ê":"ê","f":"ép","g":"giy","h":"ếch","i":"ai","j":"giây","k":"cây","l":"eo","m":"em","n":"en","o":"âu","ô":"ô","ơ":"ơ","p":"pi","q":"kiu","r":"a","s":"ét","t":"ti","u":"diu","ư":"ư","v":"vi","w":"đắp liu","x":"ít","y":"quai","z":"giét"}
501
+ import re
502
+ def vi2IPA_split(texts,delimit):
503
+ content=[]
504
+ with open(imp.find_module('viphoneme')[1]+"/Popular.txt",encoding="utf-8") as f:
505
+ content=f.read().splitlines()
506
+ tess = texts.split(".")
507
+ Results =""
508
+ for text in tess:
509
+ #print("------------------------------------------------------")
510
+ TN= TTSnorm(text)
511
+ #TN=text
512
+ #print("------------------------------------------------------")
513
+ #print("Text normalize: ",TN)
514
+ TK= word_tokenize(TN)
515
+ #print("Vietnamese Tokenize: ",TK)
516
+
517
+
518
+ for iuv,under_valid in enumerate(TK):
519
+ token_under=under_valid.split(" ")
520
+ checkinvalid=0
521
+ ##print(token_under)
522
+ if len(token_under) >1:
523
+ for tok in token_under:
524
+ if tok not in content or "[" in T2IPA(tok):
525
+ checkinvalid=1
526
+ if checkinvalid==1:
527
+ TK = TK[:iuv] + TK[iuv+1 :]
528
+ for tok in reversed(token_under):
529
+ TK.insert(iuv, tok)
530
+
531
+ IPA=""
532
+
533
+ for tk in TK:
534
+ ipa = T2IPA_split(tk,delimit).replace(" ","_")
535
+ if ipa =="":
536
+ IPA+=delimit+tk+delimit+" "
537
+ elif ipa[0]=="[" and ipa[-1]=="]":
538
+ eng = eng_to_ipa.convert(tk)
539
+ if eng[-1] == "*":
540
+ if tk.lower().upper() == tk:
541
+ ##print("ENGLISH",tk)
542
+ #Đọc tiếng anh từng chữ
543
+ letter2sound=""
544
+ for char in tk:
545
+ CHAR = str(char).lower()
546
+ if CHAR in list(EN.keys()):
547
+ letter2sound+=EN[CHAR]+" "
548
+ else:
549
+ letter2sound+=char+" "
550
+ IPA+=T2IPA_split(letter2sound,delimit)+" "
551
+ else:
552
+ #Giữ nguyên
553
+ #Future: test experiment" Nếu từ unknow có thể dùng eng_norm để chuyển qua thay thế chứ không cần giữ nguyên như này
554
+ IPA+=Parsing("default",tk.lower(),delimit)+" "
555
+ else:
556
+ #This use for version english not splited by syllable
557
+ #IPA+=Parsing("default",eng,delimit)+" "
558
+ #This version will split english to each syllable
559
+ IPA+=normEng(tk,delimit)+ delimit+" "
560
+
561
+
562
+ #Check tu dien tieng anh Etrain bưc
563
+ #Neu co Mapping
564
+ #Neu khong, check co nguyen am
565
+ #Neu co de nguyen
566
+ #Neu khong danh van
567
+ #print(" ..................Out of domain word: " ,ipa)
568
+ else:
569
+ IPA+=ipa+" "
570
+ IPA=re.sub(delimit+'+', delimit, IPA)
571
+ IPA=re.sub(' +', ' ', IPA)
572
+ #print("IPA Vietnamese: ",IPA)
573
+ #print("------------------------------------------------------")
574
+ Results+= IPA.rstrip()+" "+delimit+"."+delimit+" "
575
+
576
+
577
+ return Results.rstrip()
578
+ def vi2IPA(text):
579
+ #print("------------------------------------------------------")
580
+ TN= TTSnorm(text)
581
+ #print("------------------------------------------------------")
582
+ #print("Text normalize: ",TN)
583
+ TK= word_tokenize(TN)
584
+ #print("Vietnamese Tokenize: ",TK)
585
+ IPA=""
586
+ for tk in TK:
587
+ ipa = T2IPA(tk).replace(" ","_")
588
+ if ipa =="":
589
+ IPA+=tk+" "
590
+ elif ipa[0]=="[" and ipa[-1]=="]":
591
+ eng = eng_to_ipa.convert(tk)
592
+ if eng[-1] == "*":
593
+ if tk.lower().upper() == tk:
594
+ #Đọc tiếng anh từng chữ
595
+ letter2sound=""
596
+ for char in tk:
597
+ CHAR = str(char).lower()
598
+ if CHAR in list(EN.keys()):
599
+ letter2sound+=EN[CHAR]+" "
600
+ else:
601
+ letter2sound+=char+" "
602
+ IPA+=T2IPA_split(letter2sound,"")+" "
603
+ else:
604
+ #Giữ nguyên
605
+ IPA+=Parsing("default",tk,"")+" "
606
+ else:
607
+ IPA+=eng+" "
608
+ #Check tu dien tieng anh Etrain bưc
609
+ #Neu co Mapping
610
+ #Neu khong, check co nguyen am
611
+ #Neu co de nguyen
612
+ #Neu khong danh van
613
+ #print(" ..................Out of domain word: " ,ipa)
614
+ else:
615
+ IPA+=ipa+" "
616
+ IPA=re.sub(' +', ' ', IPA)
617
+ #print("IPA Vietnamese: ",IPA)
618
+ #print("------------------------------------------------------")
619
+ return IPA
viphoneme/__pycache__/__init__.cpython-38.pyc ADDED
Binary file (17.9 kB). View file
 
viphoneme/get_english_sym.py ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import prosodic as p
2
+ def getSymEnglish():
3
+ PHO=[]
4
+ with open("english.txt", encoding="utf-8") as f:
5
+ content=f.read().splitlines()
6
+ for line in content:
7
+ x= p.Text(line)
8
+ x.parse()
9
+ PAR = x.bestParses()[0]
10
+ PHO.extend(x.phonemes())
11
+ print(PHO)
12
+ PHO=set(PHO)
13
+ return PHO
14
+
15
+ ENG_SYM=["ʧ", "f", "θ", "k", "uː", "h", "b", "v", "ɔ", "t", "ɛ", "p", "ŋ", "ð", "iː", "ʌ", "j", "ʒ", "w", "ʊ", "n", "s", "ɛː", "g", "l", "d", "r", "æ", "ɑ", "ʤ", "ɪ", "ɔː", "m", "z", "ə", "a", "o", "e", "ʃ", "i"]
16
+
17
+ ExceptReplaceSym=['uː', 'iː', 'ɑ', 'ɛː', 'zi', 'kwi', 'ɔː']
18
+
19
+ symbols =['ɯəj', 'ɤ̆j', 'ʷiə', 'ɤ̆w', 'ɯəw', 'ʷet', 'iəw', 'uəj', 'ʷen', 'tʰw', 'ʷɤ̆', 'ʷiu', 'kwi', 'ŋ͡m', 'k͡p', 'cw', 'jw', 'uə', 'eə', 'bw', 'oj', 'ʷi', 'vw', 'ăw', 'ʈw', 'ʂw', 'aʊ', 'fw', 'ɛu', 'tʰ', 'tʃ', 'ɔɪ', 'xw', 'ʷɤ', 'ɤ̆', 'ŋw', 'ʊə', 'zi', 'ʷă', 'dw', 'eɪ', 'aɪ', 'ew', 'iə', 'ɣw', 'zw', 'ɯj', 'ʷɛ', 'ɯw', 'ɤj', 'ɔ:', 'əʊ', 'ʷa', 'mw', 'ɑ:', 'hw', 'ɔj', 'uj', 'lw', 'ɪə', 'ăj', 'u:', 'aw', 'ɛj', 'iw', 'aj', 'ɜ:', 'kw', 'nw', 't∫', 'ɲw', 'eo', 'sw', 'tw', 'ʐw', 'iɛ', 'ʷe', 'i:', 'ɯə', 'dʒ', 'ɲ', 'θ', 'ʌ', 'l', 'w', '1', 'ɪ', 'ɯ', 'd', '∫', 'p', 'ə', 'u', 'o', '3', 'ɣ', '!', 'ð', 'ʧ', '6', 'ʒ', 'ʐ', 'z', 'v', 'g', 'ă', '_', 'æ', 'ɤ', '2', 'ʤ', 'i', '.', 'ɒ', 'b', 'h', 'n', 'ʂ', 'ɔ', 'ɛ', 'k', 'm', '5', ' ', 'c', 'j', 'x', 'ʈ', ',', '4', 'ʊ', 's', 'ŋ', 'a', 'ʃ', '?', 'r', ':', 'η', 'f', ';', 'e', 't', "'"]
20
+
21
+ def normEng (eng,delemit):
22
+ x= p.Text(eng)
23
+ x.parse()
24
+ PAR = str(x.bestParses()[0]).split("|")
25
+ SYL = x.syllables()
26
+ if len(PAR) != len(SYL):
27
+ print("check dif len: ", eng)
28
+ result=""
29
+ for i,syl in enumerate(SYL):
30
+ syllable = str(syl).replace("'","").replace("ː","").replace("ɑ","a")
31
+ if PAR[i].lower().upper() == PAR[i]:
32
+ result+=syllable+"'5"+" "
33
+ else:
34
+ result+=syllable+"'1"+" "
35
+ result=result.rstrip(" ")
36
+ if delemit !="":
37
+ takemore=""
38
+ for r in result:
39
+ if r in symbols:
40
+ takemore+=delemit+r
41
+ result=takemore
42
+ return result
43
+
44
+ Sen="string Sentence Examples. Someone tried to string him The violin string is first drawn on one side A piece of string she found in the kitchen would suffice".split(" ")
45
+ sen=""
46
+ for w in Sen:
47
+ sen+=normEng(w,"/")
48
+ print(sen)
49
+
50
+ #Chạy qua các từ tiếng anh -> lọc ra các phoneme đặc thù tiếng anh => ExceptReplaceSym=['uː', 'iː', 'ɑ', 'ɛː', 'zi', 'kwi', 'ɔː']
51
+ #Chạy lọc các cau trong LDspeech -> chứa các từ riêng biệt: khoảng 500 câu
52
+ #Đưa đống hàm normEng vào tacotron đang train xem dọcđược không
53
+ #có nên thêm kí tự đánh dấu tiếng anh như Zalo nói
54
+
55
+ # Xử lí ngắt ngẫu nhiên của zalo * và ~ => tìm hiểu ý nghĩa 2 đấu đó => thay bằng phẩy
56
+ #Chạy lọc qua dict tiengs aanh với hàm normEng => check xem có kí tự mới nào không
viphoneme/restore.txt ADDED
@@ -0,0 +1,779 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ #coding: utf-8
3
+ #Custom phoneme follow the https://vi.wikipedia.org/wiki/%C3%82m_v%E1%BB%8B_h%E1%BB%8Dc_ti%E1%BA%BFng_Vi%E1%BB%87t
4
+
5
+
6
+
7
+
8
+ #######################################################
9
+ # North
10
+ # #coding: utf-8
11
+
12
+ N_onsets = { u'b' : u'b', u't' : u't', u'th' : u'tʰ', u'đ' : u'd', u'ch' : u'c',
13
+ u'kh' : u'x', u'g' : u'ɣ', u'l' : u'l', u'm' : u'm', u'n': u'n',
14
+ u'ngh': u'ŋ', u'nh' : u'ɲ', u'ng' : u'ŋ', u'ph' : u'f', u'v' : u'v',
15
+ u'x' : u's', u'd' : u'z', u'h' : u'h', u'p' : u'p', u'qu' : u'kw',
16
+ u'gi' : u'z', u'tr' : u'c', u'k' : u'k', u'c' : u'k', u'gh' : u'ɣ',
17
+ u'r' : u'z', u's' : u's', u'gi': u'z'}
18
+
19
+
20
+ N_nuclei = { u'a' : u'a', u'á' : u'a', u'à' : u'a', u'ả' : u'a', u'ã' : u'a', u'ạ' : u'a',
21
+ u'â' : u'ɤ̆', u'ấ' : u'ɤ̆', u'ầ' : u'ɤ̆', u'ẩ' : u'ɤ̆', u'ẫ' : u'ɤ̆', u'ậ' : u'ɤ̆',
22
+ u'ă' : u'ă', u'ắ' : u'ă', u'ằ' : u'ă', u'ẳ' : u'ă', u'ẵ' : u'ă', u'ặ' : u'ă',
23
+ u'e' : u'ɛ', u'é' : u'ɛ', u'è' : u'ɛ', u'ẻ' : u'ɛ', u'ẽ' : u'ɛ', u'ẹ' : u'ɛ',
24
+ u'ê' : u'e', u'ế' : u'e', u'ề' : u'e', u'ể' : u'e', u'ễ' : u'e', u'ệ' : u'e',
25
+ u'i' : u'i', u'í' : u'i', u'ì' : u'i', u'ỉ' : u'i', u'ĩ' : u'i', u'ị' : u'i',
26
+ u'o' : u'ɔ', u'ó' : u'ɔ', u'ò' : u'ɔ', u'ỏ' : u'ɔ', u'õ' : u'ɔ', u'ọ' : u'ɔ',
27
+ u'ô' : u'o', u'ố' : u'o', u'ồ' : u'o', u'ổ' : u'o', u'ỗ' : u'o', u'ộ' : u'o',
28
+ u'ơ' : u'ɤ', u'ớ' : u'ɤ', u'ờ' : u'ɤ', u'ở' : u'ɤ', u'ỡ' : u'ɤ', u'ợ' : u'ɤ',
29
+ u'u' : u'u', u'ú' : u'u', u'ù' : u'u', u'ủ' : u'u', u'ũ' : u'u', u'ụ' : u'u',
30
+ u'ư' : u'ɯ', u'ứ' : u'ɯ', u'ừ' : u'ɯ', u'ử' : u'ɯ', u'ữ' : u'ɯ', u'ự' : u'ɯ',
31
+ u'y' : u'i', u'ý' : u'i', u'ỳ' : u'i', u'ỷ' : u'i', u'ỹ' : u'i', u'ỵ' : u'i',
32
+
33
+ u'eo' : u'eo', u'éo' : u'eo', u'èo' : u'eo', u'ẻo' : u'eo', u'ẽo': u'eo', u'ẹo' : u'eo',
34
+ u'êu' : u'ɛu', u'ếu' : u'ɛu', u'ều' : u'ɛu', u'ểu' : u'ɛu', u'ễu': u'ɛu', u'ệu' : u'ɛu',
35
+ u'ia' : u'iə', u'ía' : u'iə', u'ìa' : u'iə', u'ỉa' : u'iə', u'ĩa' : u'iə', u'ịa' : u'iə',
36
+ u'ia' : u'iə', u'iá' : u'iə', u'ià' : u'iə', u'iả' : u'iə', u'iã' : u'iə', u'iạ' : u'iə',
37
+ u'iê' : u'iə', u'iế' : u'iə', u'iề' : u'iə', u'iể' : u'iə', u'iễ' : u'iə', u'iệ' : u'iə',
38
+ u'oo' : u'ɔ', u'óo' : u'ɔ', u'òo' : u'ɔ', u'ỏo' : u'ɔ', u'õo' : u'ɔ', u'ọo' : u'ɔ',
39
+ u'oo' : u'ɔ', u'oó' : u'ɔ', u'oò' : u'ɔ', u'oỏ' : u'ɔ', u'oõ' : u'ɔ', u'oọ' : u'ɔ',
40
+ u'ôô' : u'o', u'ốô' : u'o', u'ồô' : u'o', u'ổô' : u'o', u'ỗô' : u'o', u'ộô' : u'o',
41
+ u'ôô' : u'o', u'ôố' : u'o', u'ôồ' : u'o', u'ôổ' : u'o', u'ôỗ' : u'o', u'ôộ' : u'o',
42
+ u'ua' : u'uə', u'úa' : u'uə', u'ùa' : u'uə', u'ủa' : u'uə', u'ũa' : u'uə', u'ụa' : u'uə',
43
+ u'uô' : u'uə', u'uố' : u'uə', u'uồ' : u'uə', u'uổ' : u'uə', u'uỗ' : u'uə', u'uộ' : u'uə',
44
+ u'ưa' : u'ɯə', u'ứa' : u'ɯə', u'ừa' : u'ɯə', u'ửa' : u'ɯə', u'ữa' : u'ɯə', u'ựa' : u'ɯə',
45
+ u'ươ' : u'ɯə', u'ướ' : u'ɯə', u'ườ' : u'ɯə', u'ưở' : u'ɯə', u'ưỡ' : u'ɯə', u'ượ' : u'ɯə',
46
+ u'yê' : u'iɛ', u'yế' : u'iɛ', u'yề' : u'iɛ', u'yể' : u'iɛ', u'yễ' : u'iɛ', u'yệ' : u'iɛ',
47
+ u'uơ' : u'uə', u'uở' : u'uə', u'uờ': u'uə', u'uở' : u'uə', u'uỡ' : u'uə', u'uợ' : u'uə',
48
+ }
49
+
50
+
51
+ N_offglides = { u'ai' : u'aj', u'ái' : u'aj', u'ài' : u'aj', u'ải' : u'aj', u'ãi' : u'aj', u'ại' : u'aj',
52
+ u'ay' : u'ăj', u'áy' : u'ăj', u'ày' : u'ăj', u'ảy' : u'ăj', u'ãy' : u'ăj', u'ạy' : u'ăj',
53
+ u'ao' : u'aw', u'áo' : u'aw', u'ào' : u'aw', u'ảo' : u'aw', u'ão' : u'aw', u'ạo' : u'aw',
54
+ u'au' : u'ăw', u'áu' : u'ăw', u'àu' : u'ăw', u'ảu' : u'ăw', u'ãu' : u'ăw', u'ạu' : u'ăw',
55
+ u'ây' : u'ɤ̆j', u'ấy' : u'ɤ̆j', u'ầy' : u'ɤ̆j', u'ẩy' : u'ɤ̆j', u'ẫy' : u'ɤ̆j', u'ậy' : u'ɤ̆j',
56
+ u'âu' : u'ɤ̆w', u'ấu' : u'ɤ̆w', u'ầu': u'ɤ̆w', u'ẩu' : u'ɤ̆w', u'ẫu' : u'ɤ̆w', u'ậu' : u'ɤ̆w',
57
+ u'eo' : u'ew', u'éo' : u'ew', u'èo' : u'ew', u'ẻo' : u'ew', u'ẽo' : u'ew', u'ẹo' : u'ew',
58
+ u'iu' : u'iw', u'íu' : u'iw', u'ìu' : u'iw', u'ỉu' : u'iw', u'ĩu' : u'iw', u'ịu' : u'iw',
59
+ u'oi' : u'ɔj', u'ói' : u'ɔj', u'òi' : u'ɔj', u'ỏi' : u'ɔj', u'õi' : u'ɔj', u'ọi' : u'ɔj',
60
+ u'ôi' : u'oj', u'ối' : u'oj', u'ồi' : u'oj', u'ổi' : u'oj', u'ỗi' : u'oj', u'ội' : u'oj',
61
+ u'ui' : u'uj', u'úi' : u'uj', u'ùi' : u'uj', u'ủi' : u'uj', u'ũi' : u'uj', u'ụi' : u'uj',
62
+ u'uy' : u'uj', u'úy' : u'uj', u'ùy' : u'uj', u'ủy' : u'uj', u'ũy' : u'uj', u'ụy' : u'uj',
63
+ u'ơi' : u'ɤj', u'ới' : u'ɤj', u'ời' : u'ɤj', u'ởi' : u'ɤj', u'ỡi' : u'ɤj', u'ợi' : u'ɤj',
64
+ u'ưi' : u'ɯj', u'ứi' : u'ɯj', u'ừi' : u'ɯj', u'ửi' : u'ɯj', u'ữi' : u'ɯj', u'ựi' : u'ɯj',
65
+ u'ưu' : u'ɯw', u'ứu' : u'ɯw', u'ừu' : u'ɯw', u'ửu' : u'ɯw', u'ữu' : u'ɯw', u'ựu' : u'ɯw',
66
+
67
+ u'iêu' : u'iəw', u'iếu' : u'iəw', u'iều' : u'iəw', u'iểu' : u'iəw', u'iễu' : u'iəw', u'iệu' : u'iəw',
68
+ u'yêu' : u'iəw', u'yếu' : u'iəw', u'yều' : u'iəw', u'yểu' : u'iəw', u'yễu' : u'iəw', u'yệu' : u'iəw',
69
+ u'uôi' : u'uəj', u'uối' : u'uəj', u'uồi' : u'uəj', u'uổi' : u'uəj', u'uỗi' : u'uəj', u'uội' : u'uəj',
70
+ u'ươi' : u'ɯəj', u'ưới' : u'ɯəj', u'ười' : u'ɯəj', u'ưởi' : u'ɯəj', u'ưỡi' : u'ɯəj', u'ượi' : u'ɯəj',
71
+ u'ươu' : u'ɯəw', u'ướu' : u'ɯəw', u'ườu' : u'ɯəw', u'ưởu' : u'ɯəw', 'ưỡu' : u'ɯəw', u'ượu' : u'ɯəw'
72
+ }
73
+
74
+ N_onglides = { u'oa' : u'a', u'oá' : u'a', u'oà' : u'a', u'oả' : u'a', u'oã' : u'a', u'oạ' : u'a',
75
+ u'óa' : u'a', u'òa' : u'a', u'ỏa' : u'a', u'õa' : u'a', u'ọa' : u'a',
76
+ u'oă' : u'ă', u'oắ' : u'ă', u'oằ' : u'ă', u'oẳ' : u'ă', u'oẵ' : u'ă', u'oặ' : u'ă',
77
+ u'oe' : u'e', u'oé' : u'e', u'oè' : u'e', u'oẻ' : u'e', u'oẽ' : u'e', u'oẹ' : u'e',
78
+ u'oe' : u'e', u'óe' : u'e', u'òe' : u'e', u'ỏe' : u'e', u'õe' : u'e', u'ọe' : u'e',
79
+ u'ua' : u'a', u'uá' : u'a', u'uà' : u'a', u'uả' : u'a', u'uã' : u'a', u'uạ' : u'a',
80
+ u'uă' : u'ă', u'uắ' : u'ă', u'uằ' : u'ă', u'uẳ' : u'ă', u'uẵ' : u'ă', u'uặ' : u'ă',
81
+ u'uâ' : u'ɤ̆', u'uấ' : u'ɤ̆', u'uầ' : u'ɤ̆', u'uẩ' : u'ɤ̆', u'uẫ' : u'ɤ̆', u'uậ' : u'ɤ̆',
82
+ u'ue' : u'ɛ', u'ué' : u'ɛ', u'uè' : u'ɛ', u'uẻ' : u'ɛ', u'uẽ' : u'ɛ', u'uẹ' : u'ɛ',
83
+ u'uê' : u'e', u'uế' : u'e', u'uề' : u'e', u'uể' : u'e', u'uễ' : u'e', u'uệ' : u'e',
84
+ u'uơ' : u'ɤ', u'uớ' : u'ɤ', u'uờ' : u'ɤ', u'uở' : u'ɤ', u'uỡ' : u'ɤ', u'uợ' : u'ɤ',
85
+ u'uy' : u'i', u'uý' : u'i', u'uỳ' : u'i', u'uỷ' : u'i', u'uỹ' : u'i', u'uỵ' : u'i',
86
+ u'uya' : u'iə', u'uyá' : u'iə', u'uyà' : u'iə', u'uyả' : u'iə', u'uyã' : u'iə', u'uyạ' : u'iə',
87
+ u'uyê' : u'iə', u'uyế' : u'iə', u'uyề' : u'iə', u'uyể' : u'iə', u'uyễ' : u'iə', u'uyệ' : u'iə',
88
+ u'uyu' : u'iu', u'uyú' : u'iu', u'uyù' : u'iu', u'uyủ' : u'iu', u'uyũ' : u'iu', u'uyụ' : u'iu',
89
+ u'uyu' : u'iu', u'uýu' : u'iu', u'uỳu' : u'iu', u'uỷu' : u'iu', u'uỹu' : u'iu', u'uỵu' : u'iu',
90
+ u'oen' : u'en', u'oén' : u'en', u'oèn' : u'en', u'oẻn' : u'en', u'oẽn' : u'en', u'oẹn' : u'en',
91
+ u'oet' : u'et', u'oét' : u'et', u'oèt' : u'et', u'oẻt' : u'et', u'oẽt' : u'et', u'oẹt' : u'et'
92
+ }
93
+
94
+ N_onoffglides = { u'oe' : u'ej', u'oé' : u'ej', u'oè' : u'ej', u'oẻ' : u'ej', u'oẽ' : u'ej', u'oẹ' : u'ej',
95
+ u'oai' : u'aj', u'oái' : u'aj', u'oài' : u'aj', u'oải' : u'aj', u'oãi' : u'aj', u'oại' : u'aj',
96
+ u'oay' : u'ăj', u'oáy' : u'ăj', u'oày' : u'ăj', u'oảy' : u'ăj', u'oãy' : u'ăj', u'oạy' : u'ăj',
97
+ u'oao' : u'aw', u'oáo' : u'aw', u'oào' : u'aw', u'oảo' : u'aw', u'oão' : u'aw', u'oạo' : u'aw',
98
+ u'oeo' : u'ew', u'oéo' : u'ew', u'oèo' : u'ew', u'oẻo' : u'ew', u'oẽo' : u'ew', u'oẹo' : u'ew',
99
+ u'oeo' : u'ew', u'óeo' : u'ew', u'òeo' : u'ew', u'ỏeo' : u'ew', u'õeo' : u'ew', u'ọeo' : u'ew',
100
+ u'ueo' : u'ew', u'uéo' : u'ew', u'uèo' : u'ew', u'uẻo' : u'ew', u'uẽo' : u'ew', u'uẹo' : u'ew',
101
+ u'uai' : u'aj', u'uái' : u'aj', u'uài' : u'aj', u'uải' : u'aj', u'uãi' : u'aj', u'uại' : u'aj',
102
+ u'uay' : u'ăj', u'uáy' : u'ăj', u'uày' : u'ăj', u'uảy' : u'ăj', u'uãy' : u'ăj', u'uạy' : u'ăj',
103
+ u'uây' : u'ɤ̆j', u'uấy' : u'ɤ̆j', u'uầy' : u'ɤ̆j', u'uẩy' : u'ɤ̆j', u'uẫy' : u'ɤ̆j', u'uậy' : u'ɤ̆j'
104
+ }
105
+
106
+ N_codas = { u'p' : u'p', u't' : u't', u'c' : u'k', u'm' : u'm', u'n' : u'n', u'ng' : u'ŋ', u'nh' : u'ɲ', u'ch' : u'k' }
107
+
108
+
109
+ #tones = { u'a' : 33, u'á' : 24, u'à' : 32, u'ả' : 312, u'ã' : u'35g', u'ạ' : u'21g',
110
+ # u'â' : 33, u'ấ' : 24, u'ầ' : 32, u'ẩ' : 312, u'ẫ' : u'35g', u'ậ' : u'21g',
111
+ # u'ă' : 33, u'ắ' : 24, u'ằ' : 32, u'ẳ' : 312, u'ẵ' : u'35g', u'ặ' : u'21g',
112
+ # u'e' : 33, u'é' : 24, u'è' : 32, u'ẻ' : 312, u'ẽ' : u'35g', u'ẹ' : u'21g',
113
+ # u'ê' : 33, u'ế' : 24, u'ề' : 32, u'ể' : 312, u'ễ' : u'35g', u'ệ' : u'21g',
114
+ # u'i' : 33, u'í' : 24, u'ì' : 32, u'ỉ' : 312, u'ĩ' : u'35g', u'ị' : u'21g',
115
+ # u'o' : 33, u'ó' : 24, u'ò' : 32, u'ỏ' : 312, u'õ' : u'35g', u'ọ' : u'21g',
116
+ # u'ô' : 33, u'ố' : 24, u'ồ' : 32, u'ổ' : 312, u'ỗ' : u'35g', u'ộ' : u'21g',
117
+ # u'ơ' : 33, u'ớ' : 24, u'ờ' : 32, u'ở' : 312, u'ỡ' : u'35g', u'ợ' : u'21g',
118
+ # u'u' : 33, u'ú' : 24, u'ù' : 32, u'ủ' : 312, u'ũ' : u'35g', u'ụ' : u'21g',
119
+ # u'ư' : 33, u'ứ' : 24, u'ừ' : 32, u'ử' : 312, u'ữ' : u'35g', u'ự' : u'21g',
120
+ # u'y' : 33, u'ý' : 24, u'ỳ' : 32, u'ỷ' : 312, u'ỹ' : u'35g', u'ỵ' : u'21g',
121
+ # }
122
+
123
+ N_tones = { u'á' : 24, u'à' : 32, u'ả' : 312, u'ã' : u'35g', u'ạ' : u'21g',
124
+ u'ấ' : 24, u'ầ' : 32, u'ẩ' : 312, u'ẫ' : u'35g', u'ậ' : u'21g',
125
+ u'ắ' : 24, u'ằ' : 32, u'ẳ' : 312, u'ẵ' : u'35g', u'ặ' : u'21g',
126
+ u'é' : 24, u'è' : 32, u'ẻ' : 312, u'ẽ' : u'35g', u'ẹ' : u'21g',
127
+ u'ế' : 24, u'ề' : 32, u'ể' : 312, u'ễ' : u'35g', u'ệ' : u'21g',
128
+ u'í' : 24, u'ì' : 32, u'ỉ' : 312, u'ĩ' : u'35g', u'ị' : u'21g',
129
+ u'ó' : 24, u'ò' : 32, u'ỏ' : 312, u'õ' : u'35g', u'ọ' : u'21g',
130
+ u'ố' : 24, u'ồ' : 32, u'ổ' : 312, u'ỗ' : u'35g', u'ộ' : u'21g',
131
+ u'ớ' : 24, u'ờ' : 32, u'ở' : 312, u'ỡ' : u'35g', u'ợ' : u'21g',
132
+ u'ú' : 24, u'ù' : 32, u'ủ' : 312, u'ũ' : u'35g', u'ụ' : u'21g',
133
+ u'ứ' : 24, u'ừ' : 32, u'ử' : 312, u'ữ' : u'35g', u'ự' : u'21g',
134
+ u'ý' : 24, u'ỳ' : 32, u'ỷ' : 312, u'ỹ' : u'35g', u'ỵ' : u'21g',
135
+ }
136
+ # used to use \u02C0 for the unicode raised glottal character
137
+
138
+ N_tones_p = { u'á' : 5, u'à' : 2, u'ả' : 4, u'ã' : 3, u'ạ' : 6,
139
+ u'ấ' : 5, u'ầ' : 2, u'ẩ' : 4, u'ẫ' : 3, u'ậ' : 6,
140
+ u'ắ' : 5, u'ằ' : 2, u'ẳ' : 4, u'ẵ' : 3, u'ặ' : 6,
141
+ u'é' : 5, u'è' : 2, u'ẻ' : 4, u'ẽ' : 3, u'ẹ' : 6,
142
+ u'ế' : 5, u'ề' : 2, u'ể' : 4, u'ễ' : 3, u'ệ' : 6,
143
+ u'í' : 5, u'ì' : 2, u'ỉ' : 4, u'ĩ' : 3, u'ị' : 6,
144
+ u'ó' : 5, u'ò' : 2, u'ỏ' : 4, u'õ' : 3, u'ọ' : 6,
145
+ u'ố' : 5, u'ồ' : 2, u'ổ' : 4, u'ỗ' : 3, u'ộ' : 6,
146
+ u'ớ' : 5, u'ờ' : 2, u'ở' : 4, u'ỡ' : 3, u'ợ' : 6,
147
+ u'ú' : 5, u'ù' : 2, u'ủ' : 4, u'ũ' : 3, u'ụ' : 6,
148
+ u'ứ' : 5, u'ừ' : 2, u'ử' : 4, u'ữ' : 3, u'ự' : 6,
149
+ u'ý' : 5, u'ỳ' : 2, u'ỷ' : 4, u'ỹ' : 3, u'ỵ' : 6,
150
+ }
151
+
152
+ N_gi = { u'gi' : u'zi', u'gí': u'zi', u'gì' : u'zi', u'gì' : u'zi', u'gĩ' : u'zi', u'gị' : u'zi'}
153
+
154
+ N_qu = {u'quy' : u'kwi', u'qúy' : u'kwi', u'qùy' : u'kwi', u'qủy' : u'kwi', u'qũy' : u'kwi', u'qụy' : u'kwi'}
155
+ #######################################################
156
+ #central.py
157
+ #coding: utf-8
158
+
159
+ C_onsets = { u'b' : u'b', u't' : u't', u'th' : u'tʰ', u'đ' : u'd', u'ch' : u'c',
160
+ u'kh' : u'x', u'g' : u'ɣ', u'l' : u'l', u'm' : u'm', u'n': u'n',
161
+ u'ngh': u'ŋ', u'nh' : u'ɲ', u'ng' : u'ŋ', u'ph' : u'f', u'v' : u'j',
162
+ u'x' : u's', u'd' : u'j', u'h' : u'h', u'p' : u'p', u'qu' : u'w',
163
+ u'gi' : u'j', u'tr' : u'ʈ', u'k' : u'k', u'c' : u'k', u'gh' : u'ɣ',
164
+ u'r' : u'ʐ', u's' : u'ʂ', u'gi' : u'j'
165
+ }
166
+
167
+ C_nuclei = { u'a' : u'a', u'á' : u'a', u'à' : u'a', u'ả' : u'a', u'ã' : u'a', u'ạ' : u'a',
168
+ u'â' : u'ɤ̆', u'ấ' : u'ɤ̆', u'ầ' : u'ɤ̆', u'ẩ' : u'ɤ̆', u'ẫ' : u'ɤ̆', u'ậ' : u'ɤ̆',
169
+ u'ă' : u'ă', u'ắ' : u'ă', u'ằ' : u'ă', u'ẳ' : u'ă', u'ẵ' : u'ă', u'ặ' : u'ă',
170
+ u'e' : u'ɛ', u'é' : u'ɛ', u'è' : u'ɛ', u'ẻ' : u'ɛ', u'ẽ' : u'ɛ', u'ẹ' : u'ɛ',
171
+ u'ê' : u'e', u'ế' : u'e', u'ề' : u'e', u'ể' : u'e', u'ễ' : u'e', u'ệ' : u'e',
172
+ u'i' : u'i', u'í' : u'i', u'ì' : u'i', u'ỉ' : u'i', u'ĩ' : u'i', u'ị' : u'i',
173
+ u'o' : u'ɔ', u'ó' : u'ɔ', u'ò' : u'ɔ', u'ỏ' : u'ɔ', u'õ' : u'ɔ', u'ọ' : u'ɔ',
174
+ u'ô' : u'o', u'ố' : u'o', u'ồ' : u'o', u'ổ' : u'o', u'ỗ' : u'o', u'ộ' : u'o',
175
+ u'ơ' : u'ɤ', u'ớ' : u'ɤ', u'ờ' : u'ɤ', u'ở' : u'ɤ', u'ỡ' : u'ɤ', u'ợ' : u'ɤ',
176
+ u'u' : u'u', u'ú' : u'u', u'ù' : u'u', u'ủ' : u'u', u'ũ' : u'u', u'ụ' : u'u',
177
+ u'ư' : u'ɯ', u'ứ' : u'ɯ', u'ừ' : u'ɯ', u'ử' : u'ɯ', u'ữ' : u'ɯ', u'ự' : u'ɯ',
178
+ u'y' : u'i', u'ý' : u'i', u'ỳ' : u'i', u'ỷ' : u'i', u'ỹ' : u'i', u'ỵ' : u'i',
179
+
180
+ u'eo' : u'eo', u'éo' : u'eo', u'èo' : u'eo', u'ẻo' : u'eo', u'ẽo': u'eo', u'ẹo' : u'eo',
181
+ u'êu' : u'ɛu', u'ếu' : u'ɛu', u'ều' : u'ɛu', u'ểu' : u'ɛu', u'ễu': u'ɛu', u'ệu' : u'ɛu',
182
+ u'ia' : u'iə', u'ía' : u'iə', u'ìa' : u'iə', u'ỉa' : u'iə', u'ĩa' : u'iə', u'ịa' : u'iə',
183
+ u'ia' : u'iə', u'iá' : u'iə', u'ià' : u'iə', u'iả' : u'iə', u'iã' : u'iə', u'iạ' : u'iə',
184
+ u'iê' : u'iə', u'iế' : u'iə', u'iề' : u'iə', u'iể' : u'iə', u'iễ' : u'iə', u'iệ' : u'iə',
185
+ u'oo' : u'ɔ', u'óo' : u'ɔ', u'òo' : u'ɔ', u'ỏo' : u'ɔ', u'õo' : u'ɔ', u'ọo' : u'ɔ',
186
+ u'oo' : u'ɔ', u'oó' : u'ɔ', u'oò' : u'ɔ', u'oỏ' : u'ɔ', u'oõ' : u'ɔ', u'oọ' : u'ɔ',
187
+ u'ôô' : u'o', u'ốô' : u'o', u'ồô' : u'o', u'ổô' : u'o', u'ỗô' : u'o', u'ộô' : u'o',
188
+ u'ôô' : u'o', u'ôố' : u'o', u'ôồ' : u'o', u'ôổ' : u'o', u'ôỗ' : u'o', u'ôộ' : u'o',
189
+ u'ua' : u'uə', u'úa' : u'uə', u'ùa' : u'uə', u'ủa' : u'uə', u'ũa' : u'uə', u'ụa' : u'uə',
190
+ u'uô' : u'uə', u'uố' : u'uə', u'uồ' : u'uə', u'uổ' : u'uə', u'uỗ' : u'uə', u'uộ' : u'uə',
191
+ u'ưa' : u'ɯə', u'ứa' : u'ɯə', u'ừa' : u'ɯə', u'ửa' : u'ɯə', u'ữa' : u'ɯə', u'ựa' : u'��ə',
192
+ u'ươ' : u'ɯə', u'ướ' : u'ɯə', u'ườ' : u'ɯə', u'ưở' : u'ɯə', u'ưỡ' : u'ɯə', u'ượ' : u'ɯə',
193
+ u'yê' : u'iɛ', u'yế' : u'iɛ', u'yề' : u'iɛ', u'yể' : u'iɛ', u'yễ' : u'iɛ', u'yệ' : u'iɛ',
194
+ u'uơ' : u'uə', u'uở' : u'uə', u'uờ': u'uə', u'uở' : u'uə', u'uỡ' : u'uə', u'uợ' : u'uə',
195
+ }
196
+
197
+ C_offglides = { u'ai' : u'aj', u'ái' : u'aj', u'ài' : u'aj', u'ải' : u'aj', u'ãi' : u'aj', u'ại' : u'aj',
198
+ u'ay' : u'ăj', u'áy' : u'ăj', u'ày' : u'ăj', u'ảy' : u'ăj', u'ãy' : u'ăj', u'ạy' : u'ăj',
199
+ u'ao' : u'aw', u'áo' : u'aw', u'ào' : u'aw', u'ảo' : u'aw', u'ão' : u'aw', u'ạo' : u'aw',
200
+ u'au' : u'ăw', u'áu' : u'ăw', u'àu' : u'ăw', u'ảu' : u'ăw', u'ãu' : u'ăw', u'ạu' : u'ăw',
201
+ u'ây' : u'ɤ̆j', u'ấy' : u'ɤ̆j', u'ầy' : u'ɤ̆j', u'ẩy' : u'ɤ̆j', u'ẫy' : u'ɤ̆j', u'ậy' : u'ɤ̆j',
202
+ u'âu' : u'ɤ̆w', u'ấu' : u'ɤ̆w', u'ầu': u'ɤ̆w', u'ẩu' : u'ɤ̆w', u'ẫu' : u'ɤ̆w', u'ậu' : u'ɤ̆w',
203
+ u'eo' : u'ew', u'éo' : u'ew', u'èo' : u'ew', u'ẻo' : u'ew', u'ẽo' : u'ew', u'ẹo' : u'ew',
204
+ u'iu' : u'iw', u'íu' : u'iw', u'ìu' : u'iw', u'ỉu' : u'iw', u'ĩu' : u'iw', u'ịu' : u'iw',
205
+ u'oi' : u'ɔj', u'ói' : u'ɔj', u'òi' : u'ɔj', u'ỏi' : u'ɔj', u'õi' : u'ɔj', u'ọi' : u'ɔj',
206
+ u'ôi' : u'oj', u'ối' : u'oj', u'ồi' : u'oj', u'ổi' : u'oj', u'ỗi' : u'oj', u'ội' : u'oj',
207
+ u'ui' : u'uj', u'úi' : u'uj', u'ùi' : u'uj', u'ủi' : u'uj', u'ũi' : u'uj', u'ụi' : u'uj',
208
+ u'uy' : u'uj', u'úy' : u'uj', u'ùy' : u'uj', u'ủy' : u'uj', u'ũy' : u'uj', u'ụy' : u'uj',
209
+ u'ơi' : u'ɤj', u'ới' : u'ɤj', u'ời' : u'ɤj', u'ởi' : u'ɤj', u'ỡi' : u'ɤj', u'ợi' : u'ɤj',
210
+ u'ưi' : u'ɯj', u'ứi' : u'ɯj', u'ừi' : u'ɯj', u'ửi' : u'ɯj', u'ữi' : u'ɯj', u'ựi' : u'ɯj',
211
+ u'ưu' : u'ɯw', u'ứu' : u'ɯw', u'ừu' : u'ɯw', u'ửu' : u'ɯw', u'ữu' : u'ɯw', u'ựu' : u'ɯw',
212
+
213
+ u'iêu' : u'iəw', u'iếu' : u'iəw', u'iều' : u'iəw', u'iểu' : u'iəw', u'iễu' : u'iəw', u'iệu' : u'iəw',
214
+ u'yêu' : u'iəw', u'yếu' : u'iəw', u'yều' : u'iəw', u'yểu' : u'iəw', u'yễu' : u'iəw', u'yệu' : u'iəw',
215
+ u'uôi' : u'uəj', u'uối' : u'uəj', u'uồi' : u'uəj', u'uổi' : u'uəj', u'uỗi' : u'uəj', u'uội' : u'uəj',
216
+ u'ươi' : u'ɯəj', u'ưới' : u'ɯəj', u'ười' : u'ɯəj', u'ưởi' : u'ɯəj', u'ưỡi' : u'ɯəj', u'ượi' : u'ɯəj',
217
+ u'ươu' : u'ɯəw', u'ướu' : u'ɯəw', u'ườu' : u'ɯəw', u'ưởu' : u'ɯəw', 'ưỡu' : u'ɯəw', u'ượu' : u'ɯəw'
218
+ }
219
+
220
+ C_onglides = { u'oa' : u'a', u'oá' : u'a', u'oà' : u'a', u'oả' : u'a', u'oã' : u'a', u'oạ' : u'a',
221
+ u'óa' : u'a', u'òa' : u'a', u'ỏa' : u'a', u'õa' : u'a', u'ọa' : u'a',
222
+ u'oă' : u'ă', u'oắ' : u'ă', u'oằ' : u'ă', u'oẳ' : u'ă', u'oẵ' : u'ă', u'oặ' : u'ă',
223
+ u'oe' : u'e', u'oé' : u'e', u'oè' : u'e', u'oẻ' : u'e', u'oẽ' : u'e', u'oẹ' : u'e',
224
+ u'oe' : u'e', u'óe' : u'e', u'òe' : u'e', u'ỏe' : u'e', u'õe' : u'e', u'ọe' : u'e',
225
+ u'ua' : u'a', u'uá' : u'a', u'uà' : u'a', u'uả' : u'a', u'uã' : u'a', u'uạ' : u'a',
226
+ u'uă' : u'ă', u'uắ' : u'ă', u'uằ' : u'ă', u'uẳ' : u'ă', u'uẵ' : u'ă', u'uặ' : u'ă',
227
+ u'uâ' : u'ɤ̆', u'uấ' : u'ɤ̆', u'uầ' : u'ɤ̆', u'uẩ' : u'ɤ̆', u'uẫ' : u'ɤ̆', u'uậ' : u'ɤ̆',
228
+ u'ue' : u'ɛ', u'ué' : u'ɛ', u'uè' : u'ɛ', u'uẻ' : u'ɛ', u'uẽ' : u'ɛ', u'uẹ' : u'ɛ',
229
+ u'uê' : u'e', u'uế' : u'e', u'uề' : u'e', u'uể' : u'e', u'uễ' : u'e', u'uệ' : u'e',
230
+ u'uơ' : u'ɤ', u'uớ' : u'ɤ', u'uờ' : u'ɤ', u'uở' : u'ɤ', u'uỡ' : u'ɤ', u'uợ' : u'ɤ',
231
+ u'uy' : u'i', u'uý' : u'i', u'uỳ' : u'i', u'uỷ' : u'i', u'uỹ' : u'i', u'uỵ' : u'i',
232
+ u'uya' : u'iə', u'uyá' : u'iə', u'uyà' : u'iə', u'uyả' : u'iə', u'uyã' : u'iə', u'uyạ' : u'iə',
233
+ u'uyê' : u'iə', u'uyế' : u'iə', u'uyề' : u'iə', u'uyể' : u'iə', u'uyễ' : u'iə', u'uyệ' : u'iə',
234
+ u'uyu' : u'iu', u'uyú' : u'iu', u'uyù' : u'iu', u'uyủ' : u'iu', u'uyũ' : u'iu', u'uyụ' : u'iu',
235
+ u'uyu' : u'iu', u'uýu' : u'iu', u'uỳu' : u'iu', u'uỷu' : u'iu', u'uỹu' : u'iu', u'uỵu' : u'iu',
236
+ u'oen' : u'en', u'oén' : u'en', u'oèn' : u'en', u'oẻn' : u'en', u'oẽn' : u'en', u'oẹn' : u'en',
237
+ u'oet' : u'et', u'oét' : u'et', u'oèt' : u'et', u'oẻt' : u'et', u'oẽt' : u'et', u'oẹt' : u'et'
238
+ }
239
+
240
+ C_onoffglides = { u'oe' : u'ej', u'oé' : u'ej', u'oè' : u'ej', u'oẻ' : u'ej', u'oẽ' : u'ej', u'oẹ' : u'ej',
241
+ u'oai' : u'aj', u'oái' : u'aj', u'oài' : u'aj', u'oải' : u'aj', u'oãi' : u'aj', u'oại' : u'aj',
242
+ u'oay' : u'ăj', u'oáy' : u'ăj', u'oày' : u'ăj', u'oảy' : u'ăj', u'oãy' : u'ăj', u'oạy' : u'ăj',
243
+ u'oao' : u'aw', u'oáo' : u'aw', u'oào' : u'aw', u'oảo' : u'aw', u'oão' : u'aw', u'oạo' : u'aw',
244
+ u'oeo' : u'ew', u'oéo' : u'ew', u'oèo' : u'ew', u'oẻo' : u'ew', u'oẽo' : u'ew', u'oẹo' : u'ew',
245
+ u'oeo' : u'ew', u'óeo' : u'ew', u'òeo' : u'ew', u'ỏeo' : u'ew', u'õeo' : u'ew', u'ọeo' : u'ew',
246
+ u'ueo' : u'ew', u'uéo' : u'ew', u'uèo' : u'ew', u'uẻo' : u'ew', u'uẽo' : u'ew', u'uẹo' : u'ew',
247
+ u'uai' : u'aj', u'uái' : u'aj', u'uài' : u'aj', u'uải' : u'aj', u'uãi' : u'aj', u'uại' : u'aj',
248
+ u'uay' : u'ăj', u'uáy' : u'ăj', u'uày' : u'ăj', u'uảy' : u'ăj', u'uãy' : u'ăj', u'uạy' : u'ăj',
249
+ u'uây' : u'ɤ̆j', u'uấy' : u'ɤ̆j', u'uầy' : u'ɤ̆j', u'uẩy' : u'ɤ̆j', u'uẫy' : u'ɤ̆j', u'uậy' : u'ɤ̆j'
250
+ }
251
+
252
+ C_codas = { u'p' : u'p', u't' : u'k', u'c' : u'k', u'm' : u'm', u'n' : u'ŋ', u'ng' : u'ŋ', u'nh' : u'n', u'ch' : u'k' }
253
+
254
+ # See Alves 2007 (SEALS XII), Vũ 1982
255
+ C_tones = { u'á' : 13, u'à' : 42, u'ả' : 312, u'ã' : 312, u'ạ' : u'21g',
256
+ u'ấ' : 13, u'ầ' : 42, u'ẩ' : 312, u'ẫ' : 312, u'ậ' : u'21g',
257
+ u'ắ' : 13, u'ằ' : 42, u'ẳ' : 312, u'ẵ' : 312, u'ặ' : u'21g',
258
+ u'é' : 13, u'è' : 42, u'ẻ' : 312, u'ẽ' : 312, u'ẹ' : u'21g',
259
+ u'ế' : 13, u'ề' : 42, u'ể' : 312, u'ễ' : 312, u'ệ' : u'21g',
260
+ u'í' : 13, u'ì' : 42, u'ỉ' : 312, u'ĩ' : 312, u'ị' : u'21g',
261
+ u'ó' : 13, u'ò' : 42, u'ỏ' : 312, u'õ' : 312, u'ọ' : u'21g',
262
+ u'ố' : 13, u'ồ' : 42, u'ổ' : 312, u'ỗ' : 312, u'ộ' : u'21g',
263
+ u'ớ' : 13, u'ờ' : 42, u'ở' : 312, u'ỡ' : 312, u'ợ' : u'21g',
264
+ u'ú' : 13, u'ù' : 42, u'ủ' : 312, u'ũ' : 312, u'ụ' : u'21g',
265
+ u'ứ' : 13, u'ừ' : 42, u'ử' : 312, u'ữ' : 312, u'ự' : u'21g',
266
+ u'ý' : 13, u'ỳ' : 42, u'ỷ' : 312, u'ỹ' : 312, u'ỵ' : u'21g',
267
+ }
268
+
269
+ # used to use \u02C0 for raised glottal instead of g
270
+
271
+ C_tones_p = { u'á' : 5, u'à' : 2, u'ả' : 4, u'ã' : 4, u'ạ' : 6,
272
+ u'ấ' : 5, u'ầ' : 2, u'ẩ' : 4, u'ẫ' : 4, u'ậ' : 6,
273
+ u'ắ' : 5, u'ằ' : 2, u'ẳ' : 4, u'ẵ' : 4, u'ặ' : 6,
274
+ u'é' : 5, u'è' : 2, u'ẻ' : 4, u'ẽ' : 4, u'ẹ' : 6,
275
+ u'ế' : 5, u'ề' : 2, u'ể' : 4, u'ễ' : 4, u'ệ' : 6,
276
+ u'í' : 5, u'ì' : 2, u'ỉ' : 4, u'ĩ' : 4, u'ị' : 6,
277
+ u'ó' : 5, u'ò' : 2, u'ỏ' : 4, u'õ' : 4, u'ọ' : 6,
278
+ u'ố' : 5, u'ồ' : 2, u'ổ' : 4, u'ỗ' : 4, u'ộ' : 6,
279
+ u'ớ' : 5, u'ờ' : 2, u'ở' : 4, u'ỡ' : 4, u'ợ' : 6,
280
+ u'ú' : 5, u'ù' : 2, u'ủ' : 4, u'ũ' : 4, u'ụ' : 6,
281
+ u'ứ' : 5, u'ừ' : 2, u'ử' : 4, u'ữ' : 4, u'ự' : 6,
282
+ u'ý' : 5, u'ỳ' : 2, u'ỷ' : 4, u'ỹ' : 4, u'ỵ' : 6,
283
+ }
284
+
285
+ C_gi = { u'gi' : u'ji', u'gí': u'ji', u'gì' : u'ji', u'gì' : u'ji', u'gĩ' : u'ji', u'gị' : u'ji' }
286
+
287
+ C_qu = {u'quy' : u'wi', u'qúy' : u'wi', u'qùy' : u'wi', u'qủy' : u'wi', u'qũy' : u'wi', u'qụy' : u'wi'}
288
+ ############################################
289
+
290
+ #south.py
291
+ #coding: utf-8
292
+
293
+ S_onsets = { u'b' : u'b', u't' : u't', u'th' : u'tʰ', u'đ' : u'd', u'ch' : u'c',
294
+ u'kh' : u'x', u'g' : u'ɣ', u'l' : u'l', u'm' : u'm', u'n': u'n',
295
+ u'ngh': u'ŋ', u'nh' : u'ɲ', u'ng' : u'ŋ', u'ph' : u'f', u'v' : u'j',
296
+ u'x' : u's', u'd' : u'j', u'h' : u'h', u'p' : u'p', u'qu' : u'w',
297
+ u'gi' : u'j', u'tr' : u'ʈ', u'k' : u'k', u'c' : u'k', u'gh' : u'ɣ',
298
+ u'r' : u'ʐ', u's' : u'ʂ', u'gi' : u'j'
299
+ }
300
+
301
+
302
+ S_nuclei = { u'a' : u'a', u'á' : u'a', u'à' : u'a', u'ả' : u'a', u'ã' : u'a', u'ạ' : u'a',
303
+ u'â' : u'ɤ̆', u'ấ' : u'ɤ̆', u'ầ' : u'ɤ̆', u'ẩ' : u'ɤ̆', u'ẫ' : u'ɤ̆', u'ậ' : u'ɤ̆',
304
+ u'ă' : u'ă', u'ắ' : u'ă', u'ằ' : u'ă', u'ẳ' : u'ă', u'ẵ' : u'ă', u'ặ' : u'ă',
305
+ u'e' : u'ɛ', u'é' : u'ɛ', u'è' : u'ɛ', u'ẻ' : u'ɛ', u'ẽ' : u'ɛ', u'ẹ' : u'ɛ',
306
+ u'ê' : u'e', u'ế' : u'e', u'ề' : u'e', u'ể' : u'e', u'ễ' : u'e', u'ệ' : u'e',
307
+ u'i' : u'i', u'í' : u'i', u'ì' : u'i', u'ỉ' : u'i', u'ĩ' : u'i', u'ị' : u'i',
308
+ u'o' : u'ɔ', u'ó' : u'ɔ', u'ò' : u'ɔ', u'ỏ' : u'ɔ', u'õ' : u'ɔ', u'ọ' : u'ɔ',
309
+ u'ô' : u'o', u'ố' : u'o', u'ồ' : u'o', u'ổ' : u'o', u'ỗ' : u'o', u'ộ' : u'o',
310
+ u'ơ' : u'ɤ', u'ớ' : u'ɤ', u'ờ' : u'ɤ', u'ở' : u'ɤ', u'ỡ' : u'ɤ', u'ợ' : u'ɤ',
311
+ u'u' : u'u', u'ú' : u'u', u'ù' : u'u', u'ủ' : u'u', u'ũ' : u'u', u'ụ' : u'u',
312
+ u'ư' : u'ɯ', u'ứ' : u'ɯ', u'ừ' : u'ɯ', u'ử' : u'ɯ', u'ữ' : u'ɯ', u'ự' : u'ɯ',
313
+ u'y' : u'i', u'ý' : u'i', u'ỳ' : u'i', u'ỷ' : u'i', u'ỹ' : u'i', u'ỵ' : u'i',
314
+
315
+ u'eo' : u'eo', u'éo' : u'eo', u'èo' : u'eo', u'ẻo' : u'eo', u'ẽo': u'eo', u'ẹo' : u'eo',
316
+ u'êu' : u'ɛu', u'ếu' : u'ɛu', u'ều' : u'ɛu', u'ểu' : u'ɛu', u'ễu': u'ɛu', u'ệu' : u'ɛu',
317
+ u'ia' : u'iə', u'ía' : u'iə', u'ìa' : u'iə', u'ỉa' : u'iə', u'ĩa' : u'iə', u'ịa' : u'iə',
318
+ u'ia' : u'iə', u'iá' : u'iə', u'ià' : u'iə', u'iả' : u'iə', u'iã' : u'iə', u'iạ' : u'iə',
319
+ u'iê' : u'iə', u'iế' : u'iə', u'iề' : u'iə', u'iể' : u'iə', u'iễ' : u'iə', u'iệ' : u'iə',
320
+ u'oo' : u'ɔ', u'óo' : u'ɔ', u'òo' : u'ɔ', u'ỏo' : u'ɔ', u'õo' : u'ɔ', u'ọo' : u'ɔ',
321
+ u'oo' : u'ɔ', u'oó' : u'ɔ', u'oò' : u'ɔ', u'oỏ' : u'ɔ', u'oõ' : u'ɔ', u'oọ' : u'ɔ',
322
+ u'ôô' : u'o', u'ốô' : u'o', u'ồô' : u'o', u'ổô' : u'o', u'ỗô' : u'o', u'ộô' : u'o', u'ôô' : u'o', u'ôố' : u'o', u'ôồ' : u'o', u'ôổ' : u'o', u'ôỗ' : u'o', u'ôộ' : u'o', u'ua' : u'uə', u'úa' : u'uə', u'ùa' : u'uə', u'ủa' : u'uə', u'ũa' : u'uə', u'ụa' : u'uə',
323
+ u'uô' : u'uə', u'uố' : u'uə', u'uồ' : u'uə', u'uổ' : u'uə', u'uỗ' : u'uə', u'uộ' : u'uə',
324
+ u'ưa' : u'ɯə', u'ứa' : u'ɯə', u'ừa' : u'ɯə', u'ửa' : u'ɯə', u'ữa' : u'ɯə', u'ựa' : u'ɯə',
325
+ u'ươ' : u'ɯə', u'ướ' : u'ɯə', u'ườ' : u'ɯə', u'ưở' : u'ɯə', u'ưỡ' : u'ɯə', u'ượ' : u'ɯə',
326
+ u'yê' : u'iɛ', u'yế' : u'iɛ', u'yề' : u'iɛ', u'yể' : u'iɛ', u'yễ' : u'iɛ', u'yệ' : u'iɛ',
327
+ u'uơ' : u'uə', u'uở' : u'uə', u'uờ': u'uə', u'uở' : u'uə', u'uỡ' : u'uə', u'uợ' : u'uə',
328
+ }
329
+
330
+
331
+ S_offglides = { u'ai' : u'aj', u'ái' : u'aj', u'ài' : u'aj', u'ải' : u'aj', u'ãi' : u'aj', u'ại' : u'aj',
332
+ u'ay' : u'ăj', u'áy' : u'ăj', u'ày' : u'ăj', u'ảy' : u'ăj', u'ãy' : u'ăj', u'ạy' : u'ăj',
333
+ u'ao' : u'aw', u'áo' : u'aw', u'ào' : u'aw', u'ảo' : u'aw', u'ão' : u'aw', u'ạo' : u'aw',
334
+ u'au' : u'ăw', u'áu' : u'ăw', u'àu' : u'ăw', u'ảu' : u'ăw', u'ãu' : u'ăw', u'ạu' : u'ăw',
335
+ u'ây' : u'ɤ̆j', u'ấy' : u'ɤ̆j', u'ầy' : u'ɤ̆j', u'ẩy' : u'ɤ̆j', u'ẫy' : u'ɤ̆j', u'ậy' : u'ɤ̆j',
336
+ u'âu' : u'ɤ̆w', u'ấu' : u'ɤ̆w', u'ầu': u'ɤ̆w', u'ẩu' : u'ɤ̆w', u'ẫu' : u'ɤ̆w', u'ậu' : u'ɤ̆w',
337
+ u'eo' : u'ew', u'éo' : u'ew', u'èo' : u'ew', u'ẻo' : u'ew', u'ẽo' : u'ew', u'ẹo' : u'ew',
338
+ u'iu' : u'iw', u'íu' : u'iw', u'ìu' : u'iw', u'ỉu' : u'iw', u'ĩu' : u'iw', u'ịu' : u'iw',
339
+ u'oi' : u'ɔj', u'ói' : u'ɔj', u'òi' : u'ɔj', u'ỏi' : u'ɔj', u'õi' : u'ɔj', u'ọi' : u'ɔj',
340
+ u'ôi' : u'oj', u'ối' : u'oj', u'ồi' : u'oj', u'ổi' : u'oj', u'ỗi' : u'oj', u'ội' : u'oj',
341
+ u'ui' : u'uj', u'úi' : u'uj', u'ùi' : u'uj', u'ủi' : u'uj', u'ũi' : u'uj', u'ụi' : u'uj',
342
+ u'uy' : u'uj', u'úy' : u'uj', u'ùy' : u'uj', u'ủy' : u'uj', u'ũy' : u'uj', u'ụy' : u'uj',
343
+ u'ơi' : u'ɤj', u'ới' : u'ɤj', u'ời' : u'ɤj', u'ởi' : u'ɤj', u'ỡi' : u'ɤj', u'ợi' : u'ɤj',
344
+ u'ưi' : u'ɯj', u'ứi' : u'ɯj', u'ừi' : u'ɯj', u'ửi' : u'ɯj', u'ữi' : u'ɯj', u'ựi' : u'ɯj',
345
+ u'ưu' : u'ɯw', u'ứu' : u'ɯw', u'ừu' : u'ɯw', u'ửu' : u'ɯw', u'ữu' : u'ɯw', u'ựu' : u'ɯw',
346
+
347
+ u'iêu' : u'iəw', u'iếu' : u'iəw', u'iều' : u'iəw', u'iểu' : u'iəw', u'iễu' : u'iəw', u'iệu' : u'iəw',
348
+ u'yêu' : u'iəw', u'yếu' : u'iəw', u'yều' : u'iəw', u'yểu' : u'iəw', u'yễu' : u'iəw', u'yệu' : u'iəw',
349
+ u'uôi' : u'uəj', u'uối' : u'uəj', u'uồi' : u'uəj', u'uổi' : u'uəj', u'uỗi' : u'uəj', u'uội' : u'uəj',
350
+ u'ươi' : u'ɯəj', u'ưới' : u'ɯəj', u'ười' : u'ɯəj', u'ưởi' : u'ɯəj', u'ưỡi' : u'ɯəj', u'ượi' : u'ɯəj',
351
+ u'ươu' : u'ɯəw', u'ướu' : u'ɯəw', u'ườu' : u'ɯəw', u'ưởu' : u'ɯəw', 'ưỡu' : u'ɯəw', u'ượu' : u'ɯəw'
352
+ }
353
+
354
+ S_onglides = { u'oa' : u'a', u'oá' : u'a', u'oà' : u'a', u'oả' : u'a', u'oã' : u'a', u'oạ' : u'a',
355
+ u'óa' : u'a', u'òa' : u'a', u'ỏa' : u'a', u'õa' : u'a', u'ọa' : u'a',
356
+ u'oă' : u'ă', u'oắ' : u'ă', u'oằ' : u'ă', u'oẳ' : u'ă', u'oẵ' : u'ă', u'oặ' : u'ă',
357
+ u'oe' : u'e', u'oé' : u'e', u'oè' : u'e', u'oẻ' : u'e', u'oẽ' : u'e', u'oẹ' : u'e',
358
+ u'oe' : u'e', u'óe' : u'e', u'òe' : u'e', u'ỏe' : u'e', u'õe' : u'e', u'ọe' : u'e',
359
+ u'ua' : u'a', u'uá' : u'a', u'uà' : u'a', u'uả' : u'a', u'uã' : u'a', u'uạ' : u'a',
360
+ u'uă' : u'ă', u'uắ' : u'ă', u'uằ' : u'ă', u'uẳ' : u'ă', u'uẵ' : u'ă', u'uặ' : u'ă',
361
+ u'uâ' : u'ɤ̆', u'uấ' : u'ɤ̆', u'uầ' : u'ɤ̆', u'uẩ' : u'ɤ̆', u'uẫ' : u'ɤ̆', u'uậ' : u'ɤ̆',
362
+ u'ue' : u'ɛ', u'ué' : u'ɛ', u'uè' : u'ɛ', u'uẻ' : u'ɛ', u'uẽ' : u'ɛ', u'uẹ' : u'ɛ',
363
+ u'uê' : u'e', u'uế' : u'e', u'uề' : u'e', u'uể' : u'e', u'uễ' : u'e', u'uệ' : u'e',
364
+ u'uơ' : u'ɤ', u'uớ' : u'ɤ', u'uờ' : u'ɤ', u'uở' : u'ɤ', u'uỡ' : u'ɤ', u'uợ' : u'ɤ',
365
+ u'uy' : u'i', u'uý' : u'i', u'uỳ' : u'i', u'uỷ' : u'i', u'uỹ' : u'i', u'uỵ' : u'i',
366
+ u'uya' : u'iə', u'uyá' : u'iə', u'uyà' : u'iə', u'uyả' : u'iə', u'uyã' : u'iə', u'uyạ' : u'iə',
367
+ u'uyê' : u'iə', u'uyế' : u'iə', u'uyề' : u'iə', u'uyể' : u'iə', u'uyễ' : u'iə', u'uyệ' : u'iə',
368
+ u'uyu' : u'iu', u'uyú' : u'iu', u'uyù' : u'iu', u'uyủ' : u'iu', u'uyũ' : u'iu', u'uyụ' : u'iu',
369
+ u'uyu' : u'iu', u'uýu' : u'iu', u'uỳu' : u'iu', u'uỷu' : u'iu', u'uỹu' : u'iu', u'uỵu' : u'iu',
370
+ u'oen' : u'en', u'oén' : u'en', u'oèn' : u'en', u'oẻn' : u'en', u'oẽn' : u'en', u'oẹn' : u'en',
371
+ u'oet' : u'et', u'oét' : u'et', u'oèt' : u'et', u'oẻt' : u'et', u'oẽt' : u'et', u'oẹt' : u'et'
372
+ }
373
+
374
+ S_onoffglides = { u'oe' : u'ej', u'oé' : u'ej', u'oè' : u'ej', u'oẻ' : u'ej', u'oẽ' : u'ej', u'oẹ' : u'ej',
375
+ u'oai' : u'aj', u'oái' : u'aj', u'oài' : u'aj', u'oải' : u'aj', u'oãi' : u'aj', u'oại' : u'aj',
376
+ u'oay' : u'ăj', u'oáy' : u'ăj', u'oày' : u'ăj', u'oảy' : u'ăj', u'oãy' : u'ăj', u'oạy' : u'ăj',
377
+ u'oao' : u'aw', u'oáo' : u'aw', u'oào' : u'aw', u'oảo' : u'aw', u'oão' : u'aw', u'oạo' : u'aw',
378
+ u'oeo' : u'ew', u'oéo' : u'ew', u'oèo' : u'ew', u'oẻo' : u'ew', u'oẽo' : u'ew', u'oẹo' : u'ew',
379
+ u'oeo' : u'ew', u'óeo' : u'ew', u'òeo' : u'ew', u'ỏeo' : u'ew', u'õeo' : u'ew', u'ọeo' : u'ew',
380
+ u'ueo' : u'ew', u'uéo' : u'ew', u'uèo' : u'ew', u'uẻo' : u'ew', u'uẽo' : u'ew', u'uẹo' : u'ew',
381
+ u'uai' : u'aj', u'uái' : u'aj', u'uài' : u'aj', u'uải' : u'aj', u'uãi' : u'aj', u'uại' : u'aj',
382
+ u'uay' : u'ăj', u'uáy' : u'ăj', u'uày' : u'ăj', u'uảy' : u'ăj', u'uãy' : u'ăj', u'uạy' : u'ăj',
383
+ u'uây' : u'ɤ̆j', u'uấy' : u'ɤ̆j', u'uầy' : u'ɤ̆j', u'uẩy' : u'ɤ̆j', u'uẫy' : u'ɤ̆j', u'uậy' : u'ɤ̆j'
384
+ }
385
+
386
+ S_codas = { u'p' : u'p', u't' : u't', u'c' : u'k', u'm' : u'm', u'n' : u'ŋ', u'ng' : u'ŋ', u'nh' : u'n', u'ch' : u't' }
387
+
388
+ S_tones = { u'á' : 45, u'à' : 32, u'ả' : 214, u'ã' : 214, u'ạ' : 212,
389
+ u'ấ' : 45, u'ầ' : 32, u'ẩ' : 214, u'ẫ' : 214, u'ậ' : 212,
390
+ u'ắ' : 45, u'ằ' : 32, u'ẳ' : 214, u'ẵ' : 214, u'ặ' : 212,
391
+ u'é' : 45, u'è' : 32, u'ẻ' : 214, u'ẽ' : 214, u'ẹ' : 212,
392
+ u'ế' : 45, u'ề' : 32, u'ể' : 214, u'ễ' : 214, u'ệ' : 212,
393
+ u'í' : 45, u'ì' : 32, u'ỉ' : 214, u'ĩ' : 214, u'ị' : 212,
394
+ u'ó' : 45, u'ò' : 32, u'ỏ' : 214, u'õ' : 214, u'ọ' : 212,
395
+ u'ố' : 45, u'ồ' : 32, u'ổ' : 214, u'ỗ' : 214, u'ộ' : 212,
396
+ u'ớ' : 45, u'ờ' : 32, u'ở' : 214, u'ỡ' : 214, u'ợ' : 212,
397
+ u'ú' : 45, u'ù' : 32, u'ủ' : 214, u'ũ' : 214, u'ụ' : 212,
398
+ u'ứ' : 45, u'ừ' : 32, u'ử' : 214, u'ữ' : 214, u'ự' : 212,
399
+ u'ý' : 45, u'ỳ' : 32, u'ỷ' : 214, u'ỹ' : 214, u'ỵ' : 212,
400
+ }
401
+
402
+ S_tones_p = { u'á' : 5, u'à' : 2, u'ả' : 4, u'ã' : 4, u'ạ' : 6,
403
+ u'ấ' : 5, u'ầ' : 2, u'ẩ' : 4, u'ẫ' : 4, u'ậ' : 6,
404
+ u'ắ' : 5, u'ằ' : 2, u'ẳ' : 4, u'ẵ' : 4, u'ặ' : 6,
405
+ u'é' : 5, u'è' : 2, u'ẻ' : 4, u'ẽ' : 4, u'ẹ' : 6,
406
+ u'ế' : 5, u'ề' : 2, u'ể' : 4, u'ễ' : 4, u'ệ' : 6,
407
+ u'í' : 5, u'ì' : 2, u'ỉ' : 4, u'ĩ' : 4, u'ị' : 6,
408
+ u'ó' : 5, u'ò' : 2, u'ỏ' : 4, u'õ' : 4, u'ọ' : 6,
409
+ u'ố' : 5, u'ồ' : 2, u'ổ' : 4, u'ỗ' : 4, u'ộ' : 6,
410
+ u'ớ' : 5, u'ờ' : 2, u'ở' : 4, u'ỡ' : 4, u'ợ' : 6,
411
+ u'ú' : 5, u'ù' : 2, u'ủ' : 4, u'ũ' : 4, u'ụ' : 6,
412
+ u'ứ' : 5, u'ừ' : 2, u'ử' : 4, u'ữ' : 4, u'ự' : 6,
413
+ u'ý' : 5, u'ỳ' : 2, u'ỷ' : 4, u'ỹ' : 4, u'ỵ' : 6,
414
+ }
415
+
416
+
417
+ S_gi = { u'gi' : u'ji', u'gí': u'ji', u'gì' : u'ji', u'gì' : u'ji', u'gĩ' : u'ji', u'gị' : u'ji' }
418
+
419
+ S_qu = {u'quy' : u'wi', u'qúy' : u'wi', u'qùy' : u'wi', u'qủy' : u'wi', u'qũy' : u'wi', u'qụy' : u'wi'}
420
+
421
+ ################################################3
422
+ import sys, codecs, re
423
+ from io import StringIO
424
+ from optparse import OptionParser
425
+ from string import punctuation
426
+
427
+ def trans(word, dialect, glottal, pham, cao, palatals):
428
+
429
+ # This looks ugly, but newer versions of python complain about "from x import *" syntax
430
+ if dialect == 'n':
431
+ onsets, nuclei, codas, tones, onglides, offglides, onoffglides, qu, gi = N_onsets, N_nuclei, N_codas, N_tones, N_onglides, N_offglides, N_onoffglides, N_qu, N_gi
432
+ elif dialect == 'c':
433
+ onsets, nuclei, codas, tones, onglides, offglides, onoffglides, qu, gi = C_onsets, C_nuclei, C_codas, C_tones, C_onglides, C_offglides, C_onoffglides, C_qu, C_gi
434
+ elif dialect == 's':
435
+ onsets, nuclei, codas, tones, onglides, offglides, onoffglides, qu, gi = S_onsets, S_nuclei, S_codas, S_tones, S_onglides, S_offglides, S_onoffglides, S_qu, S_gi
436
+
437
+ if pham or cao:
438
+ if dialect == 'n': tones_p = N_tones_p
439
+ if dialect == 'c': tones_p = C_tones_p
440
+ if dialect == 's': tones_p = S_tones_p
441
+ tones = tones_p
442
+
443
+ ons = ''
444
+ nuc = ''
445
+ cod = ''
446
+ ton = 0
447
+ oOffset = 0
448
+ cOffset = 0
449
+ l = len(word)
450
+
451
+ if l > 0:
452
+ if word[0:3] in onsets: # if onset is 'ngh'
453
+ ons = onsets[word[0:3]]
454
+ oOffset = 3
455
+ elif word[0:2] in onsets: # if onset is 'nh', 'gh', 'kʷ' etc
456
+ ons = onsets[word[0:2]]
457
+ oOffset = 2
458
+ elif word[0] in onsets: # if single onset
459
+ ons = onsets[word[0]]
460
+ oOffset = 1
461
+
462
+ if word[l-2:l] in codas: # if two-character coda
463
+ cod = codas[word[l-2:l]]
464
+ cOffset = 2
465
+ elif word[l-1] in codas: # if one-character coda
466
+ cod = codas[word[l-1]]
467
+ cOffset = 1
468
+
469
+
470
+ #if word[0:2] == u'gi' and cod and len(word) == 3: # if you just have 'gi' and a coda...
471
+ if word[0:2] in gi and cod and len(word) == 3: # if you just have 'gi' and a coda...
472
+ nucl = u'i'
473
+ ons = u'z'
474
+ else:
475
+ nucl = word[oOffset:l-cOffset]
476
+
477
+ if nucl in nuclei:
478
+ if oOffset == 0:
479
+ if glottal == 1:
480
+ if word[0] not in onsets: # if there isn't an onset....
481
+ ons = u'ʔ'+nuclei[nucl] # add a glottal stop
482
+ else: # otherwise...
483
+ nuc = nuclei[nucl] # there's your nucleus
484
+ else:
485
+ nuc = nuclei[nucl] # there's your nucleus
486
+ else: # otherwise...
487
+ nuc = nuclei[nucl] # there's your nucleus
488
+
489
+ elif nucl in onglides and ons != u'kw': # if there is an onglide...
490
+ nuc = onglides[nucl] # modify the nuc accordingly
491
+ if ons: # if there is an onset...
492
+ ons = ons+u'w' # labialize it, but...
493
+ else: # if there is no onset...
494
+ ons = u'w' # add a labiovelar onset
495
+
496
+ elif nucl in onglides and ons == u'kw':
497
+ nuc = onglides[nucl]
498
+
499
+ elif nucl in onoffglides:
500
+ cod = onoffglides[nucl][-1]
501
+ nuc = onoffglides[nucl][0:-1]
502
+ if ons != u'kw':
503
+ if ons:
504
+ ons = ons+u'w'
505
+ else:
506
+ ons = u'w'
507
+ elif nucl in offglides:
508
+ cod = offglides[nucl][-1]
509
+ nuc = offglides[nucl][:-1]
510
+
511
+ elif word in gi: # if word == 'gi', 'gì',...
512
+ ons = gi[word][0]
513
+ nuc = gi[word][1]
514
+
515
+ elif word in qu: # if word == 'quy', 'qúy',...
516
+ ons = qu[word][:-1]
517
+ nuc = qu[word][-1]
518
+
519
+ else:
520
+ # Something is non-Viet
521
+ return (None, None, None, None)
522
+
523
+
524
+ # Velar Fronting (Northern dialect)
525
+ if dialect == 'n':
526
+ if nuc == u'a':
527
+ if cod == u'k' and cOffset == 2: nuc = u'ɛ'
528
+ if cod == u'ɲ' and nuc == u'a': nuc = u'ɛ'
529
+
530
+ # Final palatals (Northern dialect)
531
+ if nuc not in [u'i', u'e', u'ɛ']:
532
+ if cod == u'ɲ': cod = u'ŋ'
533
+ elif palatals != 1 and nuc in [u'i', u'e', u'ɛ']:
534
+ if cod == u'ɲ': cod = u'ŋ'
535
+ if palatals == 1:
536
+ if cod == u'k' and nuc in [u'i', u'e', u'ɛ']: cod = u'c'
537
+
538
+ # Velar Fronting (Southern and Central dialects)
539
+ else:
540
+ if nuc in [u'i', u'e']:
541
+ if cod == u'k': cod = u't'
542
+ if cod == u'ŋ': cod = u'n'
543
+
544
+ # There is also this reverse fronting, see Thompson 1965:94 ff.
545
+ elif nuc in [u'iə', u'ɯə', u'uə', u'u', u'ɯ', u'ɤ', u'o', u'ɔ', u'ă', u'ɤ̆']:
546
+ if cod == u't':
547
+ cod = u'k'
548
+ if cod == u'n': cod = u'ŋ'
549
+
550
+ # Monophthongization (Southern dialects: Thompson 1965: 86; Hoàng 1985: 181)
551
+ if dialect == 's':
552
+ if cod in [u'm', u'p']:
553
+ if nuc == u'iə': nuc = u'i'
554
+ if nuc == u'uə': nuc = u'u'
555
+ if nuc == u'ɯə': nuc = u'ɯ'
556
+
557
+ # Tones
558
+ # Modified 20 Sep 2008 to fix aberrant 33 error
559
+ tonelist = [tones[word[i]] for i in range(0,l) if word[i] in tones]
560
+ if tonelist:
561
+ ton = str(tonelist[len(tonelist)-1])
562
+ else:
563
+ if not (pham or cao):
564
+ if dialect == 'c':
565
+ ton = str('35')
566
+ else:
567
+ ton = str('33')
568
+ else:
569
+ ton = str('1')
570
+
571
+ # Modifications for closed syllables
572
+ if cOffset !=0:
573
+
574
+ # Obstruent-final nang tones are modal voice
575
+ if (dialect == 'n' or dialect == 's') and ton == u'21g' and cod in ['p', 't', 'k']:
576
+ #if ton == u'21\u02C0' and cod in ['p', 't', 'k']: # fixed 8 Nov 2016
577
+ ton = u'21'
578
+
579
+ # Modification for sắc in closed syllables (Northern and Central only)
580
+ if ((dialect == 'n' and ton == u'24') or (dialect == 'c' and ton == u'13')) and cod in ['p', 't', 'k']:
581
+ ton = u'45'
582
+
583
+ # Modification for 8-tone system
584
+ if cao == 1:
585
+ if ton == u'5' and cod in ['p', 't', 'k']:
586
+ ton = u'5b'
587
+ if ton == u'6' and cod in ['p', 't', 'k']:
588
+ ton = u'6b'
589
+
590
+ # labialized allophony (added 17.09.08)
591
+ if nuc in [u'u', u'o', u'ɔ']:
592
+ if cod == u'ŋ':
593
+ cod = u'ŋ͡m'
594
+ if cod == u'k':
595
+ cod = u'k͡p'
596
+
597
+ return (ons, nuc, cod, ton)
598
+
599
+ def convert(word, dialect, glottal, pham, cao, palatals, delimit):
600
+ """Convert a single orthographic string to IPA."""
601
+
602
+ ons = ''
603
+ nuc = ''
604
+ cod = ''
605
+ ton = 0
606
+ seq = ''
607
+
608
+ try:
609
+ (ons, nuc, cod, ton) = trans(word, dialect, glottal, pham, cao, palatals)
610
+ if None in (ons, nuc, cod, ton):
611
+ seq = u'['+word+u']'
612
+ else:
613
+ seq = delimit+delimit.join(filter(None, (ons, nuc, cod, ton)))+delimit
614
+ except (TypeError):
615
+ pass
616
+
617
+ return seq
618
+
619
+
620
+
621
+ ########################333
622
+ from vinorm import *
623
+ from underthesea import word_tokenize
624
+ import epitran
625
+
626
+ SET=[S_onsets, S_nuclei, S_codas#, S_tones
627
+ , S_onglides, S_offglides, S_onoffglides, S_qu, S_gi, C_onsets, C_nuclei, C_codas#, C_tones
628
+ , C_onglides, C_offglides, C_onoffglides, C_qu, C_gi, N_onsets, N_nuclei, N_codas#, N_tones
629
+ , N_onglides, N_offglides, N_onoffglides, N_qu, N_gi]
630
+ DICT={}
631
+ syms=['ɲ', 'ɯəw', 'ɯəj', 'ɯə', 'ɯw', 'ɯj', 'ɯ', 'ɤ̆w', 'ɤ̆j', 'ɤ̆', 'ɤj', 'ɤ', 'ɣ', 'ɛu', 'ɛ', 'ɔj', 'ɔ', 'ŋ', 'ăw', 'ăj', 'ă', 'zi', 'z', 'x', 'v', 'uəj', 'uə', 'uj', 'u', 'tʰ', 't', 's', 'p', 'oj', 'o', 'n', 'm', 'l', 'kwi', 'kw', 'k', 'iɛ', 'iəw', 'iə', 'iw', 'iu', 'i', 'h', 'f', 'ew', 'et', 'en', 'ej', 'e', 'd', 'c', 'b', 'aw', 'aj', 'a', '_', '?', ';', ':', '6', '5', '4', '3', '2', '1', '.', ',', '!', ' ']
632
+
633
+
634
+ def getSymbol():
635
+ for s in SET:
636
+ DICT.update(s)
637
+ list_phoneme=DICT.values()
638
+ list_phoneme=list(list_phoneme)
639
+ English_phoneme=[]
640
+ word_pad = ["_"]
641
+ space = [" "]
642
+ tone=["1","2","3","4","5","6"]
643
+ punctuation = [".",",","!",":","?",";"] #" ' ( ) Have been removed due to none sound
644
+ symbols = list_phoneme + space+word_pad + English_phoneme + punctuation + tone
645
+ symbols = list(set(symbols))
646
+ symbols.sort(reverse = True,key=len)
647
+ return symbols
648
+
649
+ def vi2IPA_pitrain(text):
650
+ epi = epitran.Epitran('vie-Latn')
651
+ r=epi.transliterate(text)
652
+ return r
653
+
654
+
655
+ def T2IPA(text):
656
+ sys.path.append('./Rules') # make sure we can find the Rules files
657
+ #Setup option
658
+ glottal = 0
659
+ pham = 0
660
+ cao = 0
661
+ palatals = 0
662
+ tokenize = 0
663
+ delimit = ''
664
+ dialect='n' #"c""s"
665
+ tone_type=0
666
+ if tone_type==0:
667
+ pham=1
668
+ else:
669
+ cao=1
670
+ #Input text
671
+ line = text
672
+ if line =='\n':
673
+ return ""
674
+ else:
675
+ compound = u''
676
+ ortho = u''
677
+ words = line.split()
678
+ ## toss len==0 junk
679
+ words = [word for word in words if len(word)>0]
680
+ ## hack to get rid of single hyphens or underscores
681
+ words = [word for word in words if word!=u'-']
682
+ words = [word for word in words if word!=u'_']
683
+ for i in range(0,len(words)):
684
+ word = words[i].strip()
685
+ ortho += word
686
+ word = word.strip(punctuation).lower()
687
+ ## 29.03.16: check if tokenize is true
688
+ ## if true, call this routine for each substring
689
+ ## and re-concatenate
690
+ if (tokenize and '-' in word) or (tokenize and '_' in word):
691
+ substrings = re.split(r'(_|-)', word)
692
+ values = substrings[::2]
693
+ delimiters = substrings[1::2] + ['']
694
+ ipa = [convert(x, dialect, glottal, pham, cao, palatals, delimit).strip() for x in values]
695
+ seq = ''.join(v+d for v,d in zip(ipa, delimiters))
696
+ else:
697
+ seq = convert(word, dialect, glottal, pham, cao, palatals, delimit).strip()
698
+ # concatenate
699
+ if len(words) >= 2:
700
+ ortho += ' '
701
+ if i < len(words)-1:
702
+ seq = seq+u' '
703
+ compound = compound + seq
704
+ return compound
705
+
706
+
707
+ def vi2IPA(text):
708
+ print("------------------------------------------------------")
709
+ TN= TTSnorm_punc_unknown(text)
710
+ print("------------------------------------------------------")
711
+ print("Text normalize: ",TN)
712
+ TK= word_tokenize(TN)
713
+ print("Vietnamese Tokenize: ",TK)
714
+ IPA=""
715
+ for tk in TK:
716
+ ipa = T2IPA(tk).replace(" ","_")
717
+ if ipa =="":
718
+ IPA+=tk+" "
719
+ elif ipa[0]=="[" and ipa[-1]=="]":
720
+ #Check tu dien tieng anh Etrain
721
+ #Neu co Mapping
722
+ #Neu khong, check co nguyen am
723
+ #Neu co de nguyen
724
+ #Neu khong danh van
725
+ eptran = ""
726
+ print(" ..................Out of domain word: " ,ipa)
727
+ IPA+= eptran +" "
728
+ else:
729
+ IPA+=ipa+" "
730
+ print("IPA Vietnamese: ",IPA)
731
+ print("------------------------------------------------------")
732
+ return IPA
733
+
734
+ '''
735
+ cout=0
736
+ List_token=[]
737
+ with open("Popular.txt", encoding="utf-8") as f:
738
+ content=f.read().splitlines()
739
+ for line in content:
740
+ nor_tr = vi2IPA_pitrain(line)
741
+ nor = vi2IPA(line)
742
+ print(nor)
743
+ List_token.append(nor)
744
+ if nor=="":
745
+ cout+=1
746
+ print("cout",cout)
747
+ List_token = list(set(List_token))
748
+ print(List_token)
749
+ print(len(List_token))
750
+
751
+
752
+
753
+
754
+
755
+ print(len(getSymbol()))
756
+ print(getSymbol())
757
+
758
+
759
+ test="t"
760
+ if test in syms:
761
+ print(test)
762
+ else:
763
+ print("none")
764
+ '''
765
+
766
+
767
+ #Vinorm
768
+ #Underthesea
769
+ #For each Convert to phoneme
770
+ #Nếu không được check phoneme tiếng anh
771
+ #Nếu không có trong từ tiếng anh -> đọc từng kí tự
772
+
773
+
774
+
775
+ #Now
776
+ #+Thêm kí tự IPA của tiếng ANH
777
+ #+Thêm xử lí case không có cũng như case Tiếng anh: => dùng etrain cho tiếng anh
778
+ #+Deal case thống nhất âm vực phoneme
779
+ #+Get lại bộ symbol
viphoneme/syms.py ADDED
@@ -0,0 +1,134 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ Cus_onsets = { u'b' : u'b', u't' : u't', u'th' : u'tʰ', u'đ' : u'd', u'ch' : u'c',
3
+ u'kh' : u'x', u'g' : u'ɣ', u'l' : u'l', u'm' : u'm', u'n': u'n',
4
+ u'ngh': u'ŋ', u'nh' : u'ɲ', u'ng' : u'ŋ', u'ph' : u'f', u'v' : u'v',
5
+ u'x' : u's', u'd' : u'z', u'h' : u'h', u'p' : u'p', u'qu' : u'kw',
6
+ u'gi' : u'j', u'tr' : u'ʈ', u'k' : u'k', u'c' : u'k', u'gh' : u'ɣ',
7
+ u'r' : u'ʐ', u's' : u'ʂ', u'gi': u'j'}
8
+
9
+
10
+ Cus_nuclei = { u'a' : u'a', u'á' : u'a', u'à' : u'a', u'ả' : u'a', u'ã' : u'a', u'ạ' : u'a',
11
+ u'â' : u'ɤ̆', u'ấ' : u'ɤ̆', u'ầ' : u'ɤ̆', u'ẩ' : u'ɤ̆', u'ẫ' : u'ɤ̆', u'ậ' : u'ɤ̆',
12
+ u'ă' : u'ă', u'ắ' : u'ă', u'ằ' : u'ă', u'ẳ' : u'ă', u'ẵ' : u'ă', u'ặ' : u'ă',
13
+ u'e' : u'ɛ', u'é' : u'ɛ', u'è' : u'ɛ', u'ẻ' : u'ɛ', u'ẽ' : u'ɛ', u'ẹ' : u'ɛ',
14
+ u'ê' : u'e', u'ế' : u'e', u'ề' : u'e', u'ể' : u'e', u'ễ' : u'e', u'ệ' : u'e',
15
+ u'i' : u'i', u'í' : u'i', u'ì' : u'i', u'ỉ' : u'i', u'ĩ' : u'i', u'ị' : u'i',
16
+ u'o' : u'ɔ', u'ó' : u'ɔ', u'ò' : u'ɔ', u'ỏ' : u'ɔ', u'õ' : u'ɔ', u'ọ' : u'ɔ',
17
+ u'ô' : u'o', u'ố' : u'o', u'ồ' : u'o', u'ổ' : u'o', u'ỗ' : u'o', u'ộ' : u'o',
18
+ u'ơ' : u'ɤ', u'ớ' : u'ɤ', u'ờ' : u'ɤ', u'ở' : u'ɤ', u'ỡ' : u'ɤ', u'ợ' : u'ɤ',
19
+ u'u' : u'u', u'ú' : u'u', u'ù' : u'u', u'ủ' : u'u', u'ũ' : u'u', u'ụ' : u'u',
20
+ u'ư' : u'ɯ', u'ứ' : u'ɯ', u'ừ' : u'ɯ', u'ử' : u'ɯ', u'ữ' : u'ɯ', u'ự' : u'ɯ',
21
+ u'y' : u'i', u'ý' : u'i', u'ỳ' : u'i', u'ỷ' : u'i', u'ỹ' : u'i', u'ỵ' : u'i',
22
+
23
+ u'eo' : u'eo', u'éo' : u'eo', u'èo' : u'eo', u'ẻo' : u'eo', u'ẽo': u'eo', u'ẹo' : u'eo',
24
+ u'êu' : u'ɛu', u'ếu' : u'ɛu', u'ều' : u'ɛu', u'ểu' : u'ɛu', u'ễu': u'ɛu', u'ệu' : u'ɛu',
25
+ u'ia' : u'iə', u'ía' : u'iə', u'ìa' : u'iə', u'ỉa' : u'iə', u'ĩa' : u'iə', u'ịa' : u'iə',
26
+ u'ia' : u'iə', u'iá' : u'iə', u'ià' : u'iə', u'iả' : u'iə', u'iã' : u'iə', u'iạ' : u'iə',
27
+ u'iê' : u'iə', u'iế' : u'iə', u'iề' : u'iə', u'iể' : u'iə', u'iễ' : u'iə', u'iệ' : u'iə',
28
+ u'oo' : u'ɔ', u'óo' : u'ɔ', u'òo' : u'ɔ', u'ỏo' : u'ɔ', u'õo' : u'ɔ', u'ọo' : u'ɔ',
29
+ u'oo' : u'ɔ', u'oó' : u'ɔ', u'oò' : u'ɔ', u'oỏ' : u'ɔ', u'oõ' : u'ɔ', u'oọ' : u'ɔ',
30
+ u'ôô' : u'o', u'ốô' : u'o', u'ồô' : u'o', u'ổô' : u'o', u'ỗô' : u'o', u'ộô' : u'o',
31
+ u'ôô' : u'o', u'ôố' : u'o', u'ôồ' : u'o', u'ôổ' : u'o', u'ôỗ' : u'o', u'ôộ' : u'o',
32
+ u'ua' : u'uə', u'úa' : u'uə', u'ùa' : u'uə', u'ủa' : u'uə', u'ũa' : u'uə', u'ụa' : u'uə',
33
+ u'uô' : u'uə', u'uố' : u'uə', u'uồ' : u'uə', u'uổ' : u'uə', u'uỗ' : u'uə', u'uộ' : u'uə',
34
+ u'ưa' : u'ɯə', u'ứa' : u'ɯə', u'ừa' : u'ɯə', u'ửa' : u'ɯə', u'ữa' : u'ɯə', u'ựa' : u'ɯə',
35
+ u'ươ' : u'ɯə', u'ướ' : u'ɯə', u'ườ' : u'ɯə', u'ưở' : u'ɯə', u'ưỡ' : u'ɯə', u'ượ' : u'ɯə',
36
+ u'yê' : u'iɛ', u'yế' : u'iɛ', u'yề' : u'iɛ', u'yể' : u'iɛ', u'yễ' : u'iɛ', u'yệ' : u'iɛ',
37
+ u'uơ' : u'uə', u'uở' : u'uə', u'uờ': u'uə', u'uở' : u'uə', u'uỡ' : u'uə', u'uợ' : u'uə',
38
+ }
39
+
40
+
41
+ Cus_offglides = { u'ai' : u'aj', u'ái' : u'aj', u'ài' : u'aj', u'ải' : u'aj', u'ãi' : u'aj', u'ại' : u'aj',
42
+ u'ay' : u'ăj', u'áy' : u'ăj', u'ày' : u'ăj', u'ảy' : u'ăj', u'ãy' : u'ăj', u'ạy' : u'ăj',
43
+ u'ao' : u'aw', u'áo' : u'aw', u'ào' : u'aw', u'ảo' : u'aw', u'ão' : u'aw', u'ạo' : u'aw',
44
+ u'au' : u'ăw', u'áu' : u'ăw', u'àu' : u'ăw', u'ảu' : u'ăw', u'ãu' : u'ăw', u'ạu' : u'ăw',
45
+ u'ây' : u'ɤ̆j', u'ấy' : u'ɤ̆j', u'ầy' : u'ɤ̆j', u'ẩy' : u'ɤ̆j', u'ẫy' : u'ɤ̆j', u'ậy' : u'ɤ̆j',
46
+ u'âu' : u'ɤ̆w', u'ấu' : u'ɤ̆w', u'ầu': u'ɤ̆w', u'ẩu' : u'ɤ̆w', u'ẫu' : u'ɤ̆w', u'ậu' : u'ɤ̆w',
47
+ u'eo' : u'ew', u'éo' : u'ew', u'èo' : u'ew', u'ẻo' : u'ew', u'ẽo' : u'ew', u'ẹo' : u'ew',
48
+ u'iu' : u'iw', u'íu' : u'iw', u'ìu' : u'iw', u'ỉu' : u'iw', u'ĩu' : u'iw', u'ịu' : u'iw',
49
+ u'oi' : u'ɔj', u'ói' : u'ɔj', u'òi' : u'ɔj', u'ỏi' : u'ɔj', u'õi' : u'ɔj', u'ọi' : u'ɔj',
50
+ u'ôi' : u'oj', u'ối' : u'oj', u'ồi' : u'oj', u'ổi' : u'oj', u'ỗi' : u'oj', u'ội' : u'oj',
51
+ u'ui' : u'uj', u'úi' : u'uj', u'ùi' : u'uj', u'ủi' : u'uj', u'ũi' : u'uj', u'ụi' : u'uj',
52
+
53
+ #u'uy' : u'uj', u'úy' : u'uj', u'ùy' : u'uj', u'ủy' : u'uj', u'ũy' : u'uj', u'ụy' : u'uj',
54
+ u'uy' : u'ʷi', u'úy' : u'uj', u'ùy' : u'uj', u'ủy' : u'uj', u'ũy' : u'uj', u'ụy' : u'uj',
55
+ #thay để hạn chế trùng âm
56
+ u'uy' : u'ʷi', u'uý' : u'ʷi', u'uỳ' : u'ʷi', u'uỷ' : u'ʷi', u'uỹ' : u'ʷi', u'uỵ' : u'ʷi',
57
+
58
+ u'ơi' : u'ɤj', u'ới' : u'ɤj', u'ời' : u'ɤj', u'ởi' : u'ɤj', u'ỡi' : u'ɤj', u'ợi' : u'ɤj',
59
+ u'ưi' : u'ɯj', u'ứi' : u'ɯj', u'ừi' : u'ɯj', u'ửi' : u'ɯj', u'ữi' : u'ɯj', u'ựi' : u'ɯj',
60
+ u'ưu' : u'ɯw', u'ứu' : u'ɯw', u'ừu' : u'ɯw', u'ửu' : u'ɯw', u'ữu' : u'ɯw', u'ựu' : u'ɯw',
61
+
62
+ u'iêu' : u'iəw', u'iếu' : u'iəw', u'iều' : u'iəw', u'iểu' : u'iəw', u'iễu' : u'iəw', u'iệu' : u'iəw',
63
+ u'yêu' : u'iəw', u'yếu' : u'iəw', u'yều' : u'iəw', u'yểu' : u'iəw', u'yễu' : u'iəw', u'yệu' : u'iəw',
64
+ u'uôi' : u'uəj', u'uối' : u'uəj', u'uồi' : u'uəj', u'uổi' : u'uəj', u'uỗi' : u'uəj', u'uội' : u'uəj',
65
+ u'ươi' : u'ɯəj', u'ưới' : u'ɯəj', u'ười' : u'ɯəj', u'ưởi' : u'ɯəj', u'ưỡi' : u'ɯəj', u'ượi' : u'ɯəj',
66
+ u'ươu' : u'ɯəw', u'ướu' : u'ɯəw', u'ườu' : u'ɯəw', u'ưởu' : u'ɯəw', 'ưỡu' : u'ɯəw', u'ượu' : u'ɯəw'
67
+ }
68
+ #Các âm vòng ở đây i chang không vòm: không có w ở trước => Try to add ʷ
69
+ Cus_onglides = { u'oa' : u'ʷa', u'oá' : u'ʷa', u'oà' : u'ʷa', u'oả' : u'ʷa', u'oã' : u'ʷa', u'oạ' : u'ʷa',
70
+ u'óa' : u'ʷa', u'òa' : u'ʷa', u'ỏa' : u'ʷa', u'õa' : u'ʷa', u'ọa' : u'ʷa',
71
+ u'oă' : u'ʷă', u'oắ' : u'ʷă', u'oằ' : u'ʷă', u'oẳ' : u'ʷă', u'oẵ' : u'ʷă', u'oặ' : u'ʷă',
72
+ u'oe' : u'ʷɛ', u'oé' : u'ʷɛ', u'oè' : u'ʷɛ', u'oẻ' : u'ʷɛ', u'oẽ' : u'ʷɛ', u'oẹ' : u'ʷɛ',
73
+ u'oe' : u'ʷɛ', u'óe' : u'ʷɛ', u'òe' : u'ʷɛ', u'ỏe' : u'ʷɛ', u'õe' : u'ʷɛ', u'ọe' : u'ʷɛ',
74
+ u'ua' : u'ʷa', u'uá' : u'ʷa', u'uà' : u'ʷa', u'uả' : u'ʷa', u'uã' : u'ʷa', u'uạ' : u'ʷa',
75
+ u'uă' : u'ʷă', u'uắ' : u'ʷă', u'uằ' : u'ʷă', u'uẳ' : u'ʷă', u'uẵ' : u'ʷă', u'uặ' : u'ʷă',
76
+ u'uâ' : u'ʷɤ̆', u'uấ' : u'ʷɤ̆', u'uầ' : u'ʷɤ̆', u'uẩ' : u'ʷɤ̆', u'uẫ' : u'ʷɤ̆', u'uậ' : u'ʷɤ̆',
77
+ u'ue' : u'ʷɛ', u'ué' : u'ʷɛ', u'uè' : u'ʷɛ', u'uẻ' : u'ʷɛ', u'uẽ' : u'ʷɛ', u'uẹ' : u'ʷɛ',
78
+ u'uê' : u'ʷe', u'uế' : u'ʷe', u'uề' : u'ʷe', u'uể' : u'ʷe', u'uễ' : u'ʷe', u'uệ' : u'ʷe',
79
+ u'uơ' : u'ʷɤ', u'uớ' : u'ʷɤ', u'uờ' : u'ʷɤ', u'uở' : u'ʷɤ', u'uỡ' : u'ʷɤ', u'uợ' : u'ʷɤ',
80
+ u'uy' : u'ʷi', u'uý' : u'ʷi', u'uỳ' : u'ʷi', u'uỷ' : u'ʷi', u'uỹ' : u'ʷi', u'uỵ' : u'ʷi',
81
+ u'uya' : u'ʷiə', u'uyá' : u'ʷiə', u'uyà' : u'ʷiə', u'uyả' : u'ʷiə', u'uyã' : u'ʷiə', u'uyạ' : u'ʷiə',
82
+ u'uyê' : u'ʷiə', u'uyế' : u'ʷiə', u'uyề' : u'ʷiə', u'uyể' : u'ʷiə', u'uyễ' : u'ʷiə', u'uyệ' : u'ʷiə',
83
+ u'uyu' : u'ʷiu', u'uyú' : u'ʷiu', u'uyù' : u'ʷiu', u'uyủ' : u'ʷiu', u'uyũ' : u'ʷiu', u'uyụ' : u'ʷiu',
84
+ u'uyu' : u'ʷiu', u'uýu' : u'ʷiu', u'uỳu' : u'ʷiu', u'uỷu' : u'ʷiu', u'uỹu' : u'ʷiu', u'uỵu' : u'ʷiu',
85
+ u'oen' : u'ʷen', u'oén' : u'ʷen', u'oèn' : u'ʷen', u'oẻn' : u'ʷen', u'oẽn' : u'ʷen', u'oẹn' : u'ʷen',
86
+ u'oet' : u'ʷet', u'oét' : u'ʷet', u'oèt' : u'ʷet', u'oẻt' : u'ʷet', u'oẽt' : u'ʷet', u'oẹt' : u'ʷet'
87
+ }
88
+
89
+ Cus_onoffglides = { u'oe' : u'ɛj', u'oé' : u'ɛj', u'oè' : u'ɛj', u'oẻ' : u'ɛj', u'oẽ' : u'ɛj', u'oẹ' : u'ɛj',
90
+ u'oai' : u'aj', u'oái' : u'aj', u'oài' : u'aj', u'oải' : u'aj', u'oãi' : u'aj', u'oại' : u'aj',
91
+ u'oay' : u'ăj', u'oáy' : u'ăj', u'oày' : u'ăj', u'oảy' : u'ăj', u'oãy' : u'ăj', u'oạy' : u'ăj',
92
+ u'oao' : u'aw', u'oáo' : u'aw', u'oào' : u'aw', u'oảo' : u'aw', u'oão' : u'aw', u'oạo' : u'aw',
93
+ u'oeo' : u'ew', u'oéo' : u'ew', u'oèo' : u'ew', u'oẻo' : u'ew', u'oẽo' : u'ew', u'oẹo' : u'ew',
94
+ u'oeo' : u'ew', u'óeo' : u'ew', u'òeo' : u'ew', u'ỏeo' : u'ew', u'õeo' : u'ew', u'ọeo' : u'ew',
95
+ u'ueo' : u'ew', u'uéo' : u'ew', u'uèo' : u'ew', u'uẻo' : u'ew', u'uẽo' : u'ew', u'uẹo' : u'ew',
96
+ u'uai' : u'aj', u'uái' : u'aj', u'uài' : u'aj', u'uải' : u'aj', u'uãi' : u'aj', u'uại' : u'aj',
97
+ u'uay' : u'ăj', u'uáy' : u'ăj', u'uày' : u'ăj', u'uảy' : u'ăj', u'uãy' : u'ăj', u'uạy' : u'ăj',
98
+ u'uây' : u'ɤ̆j', u'uấy' : u'ɤ̆j', u'uầy' : u'ɤ̆j', u'uẩy' : u'ɤ̆j', u'uẫy' : u'ɤ̆j', u'uậy' : u'ɤ̆j'
99
+ }
100
+
101
+ Cus_codas = { u'p' : u'p', u't' : u't', u'c' : u'k', u'm' : u'm', u'n' : u'n', u'ng' : u'ŋ', u'nh' : u'ɲ', u'ch' : u'tʃ' }
102
+
103
+ SET=[Cus_onsets, Cus_nuclei, Cus_codas#, N_tones
104
+ , Cus_onglides, Cus_offglides, Cus_onoffglides]
105
+ DICT={}
106
+ for s in SET:
107
+ DICT.update(s)
108
+ list_phoneme=DICT.values()
109
+ list_phoneme=list(list_phoneme)
110
+
111
+ English_phoneme=["p","b","t","d","t∫","dʒ","k","g","f","v","ð","θ","s","z","∫","ʒ","m","n","η","l","r","w","j","ɪ","i:","ʊ","u:","e","ə","ɜ:","ɒ","ɔ:","æ","ʌ","ɑ:","ɪə","ʊə","eə","eɪ","ɔɪ","aɪ","əʊ","aʊ",'ʃ',"ʤ","ʧ"]
112
+ Special=['jw', 'ŋw', 'bw', 'vw', 'dw', 'eo', 'ʈw', 'mw', 'zw', 'fw', 'tw', 'tʰw', 'ɲw', 'cw', 'ʂw', 'ɣw', 'ʐw', 'xw', 'lw', 'hw', 'nw', 'sw', 'c']
113
+ word_pad = ["_"]
114
+ space = [" "]
115
+ tone=["1","2","3","4","5","6"]
116
+ punctuation = [".",",","!",":","?",";","'"] #" ' ( ) Have been removed due to none sound
117
+ modifi = ["k͡p","ŋ͡m"]
118
+
119
+ symbols1 = list_phoneme + space+word_pad + English_phoneme + punctuation + tone + modifi + Special
120
+ symbols1 = list(set(symbols1))
121
+
122
+ symbols2 =['ɯəj', 'ɤ̆j', 'ʷiə', 'ɤ̆w', 'ɯəw', 'ʷet', 'iəw', 'uəj', 'ʷen', 'tʰw', 'ʷɤ̆', 'ʷiu', 'kwi', 'ŋ͡m', 'k͡p', 'cw', 'jw', 'uə', 'eə', 'bw', 'oj', 'ʷi', 'vw', 'ăw', 'ʈw', 'ʂw', 'aʊ', 'fw', 'ɛu', 'tʰ', 'tʃ', 'ɔɪ', 'xw', 'ʷɤ', 'ɤ̆', 'ŋw', 'ʊə', 'zi', 'ʷă', 'dw', 'eɪ', 'aɪ', 'ew', 'iə', 'ɣw', 'zw', 'ɯj', 'ʷɛ', 'ɯw', 'ɤj', 'ɔ:', 'əʊ', 'ʷa', 'mw', 'ɑ:', 'hw', 'ɔj', 'uj', 'lw', 'ɪə', 'ăj', 'u:', 'aw', 'ɛj', 'iw', 'aj', 'ɜ:', 'kw', 'nw', 't∫', 'ɲw', 'eo', 'sw', 'tw', 'ʐw', 'iɛ', 'ʷe', 'i:', 'ɯə', 'dʒ', 'ɲ', 'θ', 'ʌ', 'l', 'w', '1', 'ɪ', 'ɯ', 'd', '∫', 'p', 'ə', 'u', 'o', '3', 'ɣ', '!', 'ð', 'ʧ', '6', 'ʒ', 'ʐ', 'z', 'v', 'g', 'ă', '_', 'æ', 'ɤ', '2', 'ʤ', 'i', '.', 'ɒ', 'b', 'h', 'n', 'ʂ', 'ɔ', 'ɛ', 'k', 'm', '5', ' ', 'c', 'j', 'x', 'ʈ', ',', '4', 'ʊ', 's', 'ŋ', 'a', 'ʃ', '?', 'r', ':', 'η', 'f', ';', 'e', 't', "'"]
123
+
124
+ english_prosodic=["ʧ", "f", "θ", "k", "uː", "h", "b", "v", "ɔ", "t", "ɛ", "p", "ŋ", "ð", "iː", "ʌ", "j", "ʒ", "w", "ʊ", "n", "s", "ɛː", "g", "l", "d", "r", "æ", "ɑ", "ʤ", "ɪ", "ɔː", "m", "z", "ə", "a", "o", "e", "ʃ", "i"]
125
+
126
+ ExceptReplaceSym=[]
127
+ print(len(symbols1))
128
+ symbols2 = list(set(symbols2+english_prosodic))
129
+ print(len(symbols2))
130
+ for i in symbols2:
131
+ if i not in symbols1:
132
+ ExceptReplaceSym.append(i)
133
+ print(ExceptReplaceSym)
134
+ ExceptReplaceSym=['uː', 'iː', 'ɑ', 'ɛː', 'zi', 'kwi', 'ɔː']
viphoneme/test.py ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from __init__ import vi2IPA_split, syms
2
+ '''
3
+ cou=0
4
+ M=[]
5
+ with open("Popular.txt",encoding="utf-8") as f:
6
+ content=f.read().splitlines()
7
+ for line in content:
8
+ vi=vi2IPA_split(line,"/").split("/")
9
+ print(vi)
10
+ for v in vi:
11
+ if v=="" or v=="." or v==" ":
12
+ continue
13
+ if v not in syms:
14
+ print(v)
15
+ cou+=1
16
+ M.append(v)
17
+ print("Number of phoneme not in dict need to be modified",cou)
18
+ M=list(set(M))
19
+ print(M)
20
+ Modifi=['jw', 'ŋw', 'bw', 'vw', 'dw', 'eo', 'ʈw', 'mw', 'zw', 'fw', 'tw', 'tʰw', 'ɲw', 'cw', 'ʂw', 'ɣw', 'ʐw', 'xw', 'lw', 'hw', 'nw', 'sw', 'c']
21
+ listParse=['ʷiə', 'uəj', 'iəw', 'k͡p', 'ʷɤ̆', 'ɤ̆j', 'ŋ͡m', 'kwi', 'ɤ̆w', 'ɯəj', 'ʷen', 'ʷiu', 'ʷet', 'ɯəw', 'ʷɛ', 'ʷɤ', 'ɯj', 'oj', 'ăw', 'zi',
22
+ 'kw', 'aɪ', 'iɛ', 'ɤ̆', 'ɔ:', 'ăj', 'ʷa', 'eə', 'u:', 'uj', 'aʊ', 'uə', 'aj', 'iə', 'iw', 'əʊ', 'ɑ:', 'tʃ', 'ʷe', 'ɛu', 'ɔɪ', 'ʷi', 'eɪ', 'ɤj',
23
+ 'ɯw', 'ɛj', 'ɔj', 'i:', 't∫', 'ɪə', 'ʷă', 'ɜ:', 'tʰ', 'dʒ', 'ew', 'ʊə', 'ɯə', 'aw', '3', 'θ', 'v', 'ʊ', 'ʤ', 'ɔ', '1', 'ʧ', 'ʈ', ' ', 'd', 'i',
24
+ 'ɣ', 'ɲ', 'ɤ', '?', 'ɪ', 'l', '.', 'j', ':', 't', 'ʒ', 'ə', 'ʌ', 'm', '!', '∫', 'ð', 'u', 'e', 'w', 'p', 'ʃ', 'æ', "'", 'h', 'o', 'k', '5',
25
+ 'g', '4', 'n', ';', 'r', 'b', 'ɯ', 'a', 's', 'ʐ', 'η', 'ŋ', 'ɒ', 'ʂ', '_', 'f', ',', 'ɛ', 'z', '6', '2', 'x', 'ă']
26
+
27
+ '''
28
+ #a=vi2IPA_split("Được viết vào 6/4/2020, có thể xử lí những trường hợp chứa English","/")
29
+ #print(a)
30
+ #
31
+ import sys
32
+ cou=0
33
+ M=[]
34
+ with open("Small.txt",encoding="utf-8") as f:
35
+ content=f.read().splitlines()
36
+ for line in content:
37
+ tex=line.split("~")[1]
38
+ vi=vi2IPA_split(tex,"/").split("/")
39
+ for v in vi:
40
+ if v=="" or v=="(" or v==")" or v=='"' or v=="-" or v==' ':
41
+ continue
42
+ if v not in syms:
43
+ print(v)
44
+ cou+=1
45
+ M.append(v)
46
+ print (line)
47
+
48
+ sys.exit()
49
+
50
+ print("Number of phoneme not in dict need to be modified",cou)
51
+ M=list(set(M))
52
+ print(M)
53
+
54
+ # nếu làm được những điều trên chúng tôi nghĩ bạn sẽ là người mở shop quần áo trẻ em thành công nhất
55
+ check_sym="ɯəjɤ̆jʷiəɤ̆wɯəwʷetiəwuəjʷentʰwʷɤ̆ʷiukwiŋ͡mk͡pcwjwuəeəbwojʷivwăwʈwʂwaʊfwɛutʰtʃɔɪxwʷɤɤ̆ŋwʊəziʷădweɪaɪewiəɣwzwɯjʷɛɯwɤjɔ:əʊʷamwɑ:hwɔjujlwɪəăju:awɛjiwajɜ:kwnwt∫ɲweoswtwʐwiɛʷei:ɯədʒɲθʌlw1ɪɯd∫pəuo3ɣ!ðʧ6ʒʐzvgă_æɤ2ʤi.ɒbhnʂɔɛkm5cjxʈ,4ʊsŋaʃ?r:ηf;et'"
viphoneme/text2sequence.py ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import re
2
+ symbols =['ɯəj', 'ɤ̆j', 'ʷiə', 'ɤ̆w', 'ɯəw', 'ʷet', 'iəw', 'uəj', 'ʷen', 'tʰw', 'ʷɤ̆', 'ʷiu', 'kwi', 'ŋ͡m', 'k͡p', 'cw', 'jw', 'uə', 'eə', 'bw', 'oj', 'ʷi', 'vw', 'ăw', 'ʈw', 'ʂw', 'aʊ', 'fw', 'ɛu', 'tʰ', 'tʃ', 'ɔɪ', 'xw', 'ʷɤ', 'ɤ̆', 'ŋw', 'ʊə', 'zi', 'ʷă', 'dw', 'eɪ', 'aɪ', 'ew', 'iə', 'ɣw', 'zw', 'ɯj', 'ʷɛ', 'ɯw', 'ɤj', 'ɔ:', 'əʊ', 'ʷa', 'mw', 'ɑ:', 'hw', 'ɔj', 'uj', 'lw', 'ɪə', 'ăj', 'u:', 'aw', 'ɛj', 'iw', 'aj', 'ɜ:', 'kw', 'nw', 't∫', 'ɲw', 'eo', 'sw', 'tw', 'ʐw', 'iɛ', 'ʷe', 'i:', 'ɯə', 'dʒ', 'ɲ', 'θ', 'ʌ', 'l', 'w', '1', 'ɪ', 'ɯ', 'd', '∫', 'p', 'ə', 'u', 'o', '3', 'ɣ', '!', 'ð', 'ʧ', '6', 'ʒ', 'ʐ', 'z', 'v', 'g', 'ă', '_', 'æ', 'ɤ', '2', 'ʤ', 'i', '.', 'ɒ', 'b', 'h', 'n', 'ʂ', 'ɔ', 'ɛ', 'k', 'm', '5', ' ', 'c', 'j', 'x', 'ʈ', ',', '4', 'ʊ', 's', 'ŋ', 'a', 'ʃ', '?', 'r', ':', 'η', 'f', ';', 'e', 't', "'"]
3
+ abortsym =["","[","]","/"]
4
+ _symbol_to_id = {s: i for i, s in enumerate(symbols)}
5
+ _id_to_symbol = {i: s for i, s in enumerate(symbols)}
6
+ from viphoneme import syms, vi2IPA_split
7
+
8
+ def text_to_sequence(text,delimit):
9
+ text=re.sub(re.compile(r'\s+'), ' ', text)
10
+ text=text.rstrip(".").rstrip("?").rstrip("!").rstrip(" ")
11
+ ipa = vi2IPA_split(text,delimit)
12
+ print("Phoneme: ",ipa)
13
+ #*****************************************8Xử lí vụ cuối câu phải có simple dot : chưa làm
14
+ sequence = []
15
+ phonemes =ipa.split(delimit)
16
+ for pho in phonemes:
17
+ if pho in _symbol_to_id and pho not in abortsym:
18
+ sequence.append(_symbol_to_id[pho])
19
+ return sequence
20
+ def sequence_to_text(sequence,delimit):
21
+ result = ''
22
+ for symbol_id in sequence:
23
+ if symbol_id in _id_to_symbol:
24
+ s = _id_to_symbol[symbol_id]
25
+ result += delimit+s
26
+ return result
27
+
28
+
29
+
30
+
31
+ print(text_to_sequence("tui yêu em từ thuở nào.", "/"))
32
+ print("-----------------------------------------------------")
33
+ #print(sequence_to_text(text_to_sequence("tui yêu em từ thuở nào.","/"),"/"))
34
+
35
+
36
+ #max_decoder_steps=2000,
37
+ #batch_size=32, ???
38
+ #drop_out =0.5, ???