准确的音素识别不容易存档,因为音素本身定义得很松散。即使在良好的音频中,当今最好的系统也有大约18%的音素错误率(您可以在Alex
Graves发布的TIMIT上查看LSTM-RNN结果)。
在CMUSphinx中,Python中的音素识别是这样完成的:
from os import environ, pathfrom pocketsphinx.pocketsphinx import *from sphinxbase.sphinxbase import *MODELDIR = "../../../model"DATADIR = "../../../test/data"# Create a deprer with certain modelconfig = Deprer.default_config()config.set_string('-hmm', path.join(MODELDIR, 'en-us/en-us'))config.set_string('-allphone', path.join(MODELDIR, 'en-us/en-us-phone.lm.dmp'))config.set_float('-lw', 2.0)config.set_float('-beam', 1e-10)config.set_float('-pbeam', 1e-10)# Depre streaming data.deprer = Deprer(config)deprer.start_utt()stream = open(path.join(DATADIR, 'goforward.raw'), 'rb')while True: buf = stream.read(1024) if buf: deprer.process_raw(buf, False, False) else: breakdeprer.end_utt()hypothesis = deprer.hyp()print ('Phonemes: ', [seg.word for seg in deprer.seg()])
您需要从github签出最新的pocketsphinx,才能运行此示例。结果应如下所示:
('Best phonemes: ', ['SIL', 'G', 'OW', 'F', 'AO', 'R', 'W', 'ER', 'D', 'T', 'AE', 'N', 'NG', 'IY', 'IH', 'ZH', 'ER', 'Z', 'S', 'V', 'SIL'])
另请参阅维基页面
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)