Примените Sphinx4 к голосовым данным, записанным на телефоне Android
Это звучит странно. Но я хотел бы проанализировать байтовые данные, записанные в моем телефоне Android с помощью Sphinx4. И нет хорошего результата. Я знаю, что это будет связано с моей проблемой конфигурации. Я хотел бы услышать некоторую идею, если у вас есть опыт работы со Sphinx4 и такой же опыт.
Я хотел бы описать мою среду:
Телефон (Android, Nexsus One)
- частота дискретизации = 8000
- audioFormat = AudioFormat.ENCODING_PCM_16BIT
- channelConfig = AudioFormat.CHANNEL_IN_MONO
Sphinx4
- sampleRate = 16000
- bigEndianData = false
- используя streamDataSource
Итак, я записываю голосовые данные (byte[]), а затем анализирую их по Sphinx4. Ниже приведен пример голоса (один, два, три), записанный моим телефоном.
-29:-1:84:0:-77:0:-88:0:-88:0:-99:0:-105:0:-82:0:-88:0:-99:0:101:0:89:0:118:0:95:0:44:0:22:0:28:0:39:0:56:0:50:0:28:0:22:0:-6:-1:-17:-1:-6:-1:-34:-1:-34:-1:-85:-1:-85:-1:-79:-1:115:-1:126:-1:-113:-1:-85:-1:-102:-1:104:-1:115:-1:121:-1:-102:-1:-113:-1:-96:-1:-57:-1:-96:-1:109:-1:104:-1:-79:-1:16:0:101:0:-105:0:-122:0:-122:0:-99:0:67:0:101:0:78:0:-6:-1:11:0:-6:-1:39:0:50:0:56:0:22:0:0:0:101:0:123:0:33:0:118:0:56:0:-40:-1:84:0:-85:-1:87:-1:76:-1:-54:-2:31:-1:31:-1:70:-1:0:0:-17:-1:-68:-1:56:0:50:0:-102:-1:-12:-1:-113:-1:-124:-1:-6:-1:11:0:106:0:101:0:50:0:-124:-1:104:-1:-102:-1:126:-1:81:-1:76:-1:-34:-1:-6:-1:44:0:-105:0:-110:0:78:0:67:0:-68:-1:-45:-1:33:0:-74:-1:-57:-1:-57:-1:33:0:28:0:39:0:-45:-1:5:0:25:1:123:0:-62:-1:-110:0:118:0:73:0:-93:0:73:0:16:0:-40:-1:-119:-1:-68:-1:101:0:61:0:-12:-1:-88:0:70:1:-48:0:-65:0:25:1:56:0:-34:-1:0:0:28:0:106:0:-127:0:-77:0:123:0:-68:-1:-29:-1:61:0:-12:-1:5:0:22:0:-79:-1:-96:-1:-102:-1:31:-1:70:-1:-96:-1:-79:-1:-107:-1:-96:-1:-51:-1:-107:-1:121:-1:-96:-1:-96:-1:104:-1:109:-1:81:-1:-79:-1:33:0:28:0:22:0:39:0:44:0:73:0:67:0:118:0:95:0:-17:-1:-17:-1:-113:-1:-57:-1:-107:-1:31:-1:98:-1:-124:-1:-29:-1:-57:-1:-79:-1:-45:-1:-62:-1:-12:-1:-85:-1:-34:-1:33:0:-51:-1:-102:-1:109:-1:-85:-1:109:-1:25:-1:115:-1:92:-1:109:-1:87:-1:25:-1:121:-1:-85:-1:92:-1:-85:-1:0:0:-6:-1:-29:-1:-119:-1:-62:-1:22:0:95:0:84:0:33:0:-122:0:-93:0:-99:0:-122:0:11:0:-40:-1:-51:-1:-79:-1:-12:-1:-23:-1:-45:-1:-34:-1:-12:-1:-34:-1:-23:-1:22:0:16:0:56:0:67:0:-34:-1:-102:-1:-113:-1:-107:-1:121:-1:-102:-1:11:0:39:0:28:0:11:0:89:0:95:0:123:0:-105:0:28:0:16:0:-45:-1:-85:-1:-6:-1:44:0
Данные каждого байта отделяются ":".
1 ответ
Если вы записываете на 8000 на Android, частота дискретизации sphinx4 тоже должна быть 8000 Гц. Вам также необходимо использовать модель 8 кГц из дистрибутива sphinx4 или любую другую модель 8 кГц, а также вам не нужно устанавливать параметры набора фильтров (верхняя частота и т. Д.) В соответствии с документацией.
Использование моделей Sphinxtrain в sphinx4
Пример правильно настроенного входа 8 кГц см. sphinx4/test/performance/wsj_8khz/config.xml
Также можно записать на Android с частотой 16000 Гц, установив соответствующий параметр AudioRecorder. Это повысит точность декодирования.