Rom*_*man 11 python signal-processing voice-recognition phoneme
如何将任何声音信号转换为列表音素?
即实际的方法和/或代码,从数字信号到录音的音素列表.
例如:
lPhonemes = audio_to_phonemes(aSignal)
Run Code Online (Sandbox Code Playgroud)
例如
from scipy.io.wavfile import read
iSampleRate, aSignal = read(sRecordingDir)
aSignal = #numpy array for the recorded word 'hear'
lPhonemes = ['HH', 'IY1', 'R']
Run Code Online (Sandbox Code Playgroud)
我需要这个功能 audio_to_phonemes
并非所有声音都是语言单词,因此我不能仅使用使用Google API的内容.
编辑
我不想要音频文字,我想要音频到音素.大多数图书馆似乎没有输出.您推荐的任何库都需要能够输出声音组成的有序音素列表.它需要在python中.
我也想知道声音到音素的过程是如何工作的.如果不是为了实现目的,那么为了利益起见.
Nik*_*rev 14
准确的音素识别并不容易归档,因为音素本身的定义非常松散.即使在良好的音频中,今天最好的系统也有大约18%的音素错误率(你可以检查由Alex Graves发布的TIMIT上的LSTM-RNN结果).
在CMUSphinx中,Python中的音素识别是这样完成的:
from os import environ, path
from pocketsphinx.pocketsphinx import *
from sphinxbase.sphinxbase import *
MODELDIR = "../../../model"
DATADIR = "../../../test/data"
# Create a decoder with certain model
config = Decoder.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)
# Decode streaming data.
decoder = Decoder(config)
decoder.start_utt()
stream = open(path.join(DATADIR, 'goforward.raw'), 'rb')
while True:
buf = stream.read(1024)
if buf:
decoder.process_raw(buf, False, False)
else:
break
decoder.end_utt()
hypothesis = decoder.hyp()
print ('Phonemes: ', [seg.word for seg in decoder.seg()])
Run Code Online (Sandbox Code Playgroud)
你需要从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'])
Run Code Online (Sandbox Code Playgroud)
另请参阅维基页面
看看Allosaurus,这是一个通用(~2000 lang)电话识别器,可以为您提供 IPA 音素。在示例波形文件中,我确实下载了最新模型并在 Python3 中进行了尝试。
\n$ python -m allosaurus.bin.download_model -m latest\n$ python -m allosaurus.run -i sample.wav\n\xc3\xa6 l u s \xc9\x94 \xc9\xb9 s\nRun Code Online (Sandbox Code Playgroud)\n
我需要创建函数audio_to_phonemes
您基本上是在说:
我需要重新实施40年的语音识别研究
您不应该自己实现这一目标(除非您将要成为语音识别领域的教授并采用一种革命性的新方法),而应该使用许多现有框架之一。看看狮身人面像/口袋狮身人面像!
| 归档时间: |
|
| 查看次数: |
8122 次 |
| 最近记录: |