我正在使用pocketsphinx 和festival 玩一个简单的语音助手模型。Livespeech 通过麦克风收听,然后festival.sayText() 通过扬声器播放该短语。这建立了一个迷人但无用的反馈循环,Pocketsphinx 反复尝试破译通过麦克风拾取的自己的话语(我假设)。我需要在festival.sayText() 函数播放之前抑制麦克风,然后再将其恢复。你是怎样做的。
import os
from pocketsphinx import LiveSpeech, get_model_path
import festival
model_path = '/data/python/Eliza'
print(model_path)
speech = LiveSpeech(
verbose=False,
sampling_rate=16000,
buffer_size=2048,
no_search=False,
full_utt=False,
hmm=os.path.join(model_path, 'en-us-mm'),
lm=os.path.join(model_path, 'en-us.lm.bin'),
dic=os.path.join(model_path, 'cmudict-en-us.dict')
)
for phrase in speech:
festival.sayText(str(phrase))