首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pocketsphinx未运行

pocketsphinx未运行
EN

Stack Overflow用户
提问于 2020-08-05 23:58:20
回答 1查看 162关注 0票数 0

我使用pip命令安装了pocketsphinx

pip安装pocketsphinx

我引用了链接pocketsphinx installation

然后添加一个test.py并添加如下代码

代码语言:javascript
复制
from pocketsphinx import LiveSpeech


for phrase in LiveSpeech():
    print(phrase)

然后,我使用python test.py命令运行我的文件

但是显示错误

代码语言:javascript
复制
    for phrase in LiveSpeech():
  File "/home/pi/Sphinix/newvenv/lib/python3.7/site-packages/pocketsphinx/__init__.py", line 206, in __init__
    self.ad = Ad(self.audio_device, self.sampling_rate)
  File "/home/pi/Sphinix/newvenv/lib/python3.7/site-packages/sphinxbase/ad_pulse.py", line 122, in __init__
    this = _ad_pulse.new_Ad(audio_device, sampling_rate)
RuntimeError: new_Ad returned -1

我试过了

代码语言:javascript
复制
import pyaudio

p = pyaudio.PyAudio()
for i in range(p.get_device_count()):
    print(p.get_device_info_by_index(i))

我知道结果了

代码语言:javascript
复制
{'index': 0, 'structVersion': 2, 'name': 'USB PnP Sound Device: Audio (hw:2,0)', 'hostApi': 0, 'maxInputChannels': 1, 'maxOutputChannels': 0, 'defaultLowInputLatency': 0.008684807256235827, 'defaultLowOutputLatency': -1.0, 'defaultHighInputLatency': 0.034829931972789115, 'defaultHighOutputLatency': -1.0, 'defaultSampleRate': 44100.0}
{'index': 1, 'structVersion': 2, 'name': 'dmix', 'hostApi': 0, 'maxInputChannels': 0, 'maxOutputChannels': 2, 'defaultLowInputLatency': -1.0, 'defaultLowOutputLatency': 0.021333333333333333, 'defaultHighInputLatency': -1.0, 'defaultHighOutputLatency': 0.021333333333333333, 'defaultSampleRate': 48000.0}

然后我试着

代码语言:javascript
复制
from pocketsphinx import LiveSpeech
    

    for phrase in LiveSpeech(audio_device=1):
        print(phrase)

再一次展示

代码语言:javascript
复制
   for phrase in LiveSpeech(audio_device=1):
  File "/home/pi/Sphinix/newvenv/lib/python3.7/site-packages/pocketsphinx/__init__.py", line 206, in __init__
    self.ad = Ad(self.audio_device, self.sampling_rate)
  File "/home/pi/Sphinix/newvenv/lib/python3.7/site-packages/sphinxbase/ad_pulse.py", line 122, in __init__
    this = _ad_pulse.new_Ad(audio_device, sampling_rate)
TypeError: in method 'new_Ad', argument 1 of type 'char const *'

我怎么才能解决这个问题..?

EN

回答 1

Stack Overflow用户

发布于 2021-10-15 14:23:47

让我们看看你的输出:如果一切正常,你的输出应该是你在上面的代码文本中说的短语列表,但抛出一个错误。这是您的LiveSpeech识别器无法识别的明确指示。为了让它工作,你的LiveSpeech需要一个MIC.in你的情况下,很明显,你的音频设备正在被其他进程使用。您可以确定哪个服务正在使用您的音频设备,并终止其进程以释放音频设备,以便您的代码可以使用它。

您可以使用以下命令查找进程:

代码语言:javascript
复制
lsof /dev/snd/*

一旦从使用声卡的进程中释放了声卡,就应该能够运行代码了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63269037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档