Python Pocketsphinx:无法从 .wav 文件中识别关键字

Python Pocketsphinx: Keyword not being recognised from a .wav file

我正在尝试从我只说相位温度的录音中检测关键字 temperature(没有其他词存在)。最初我使用关键字 hello 并且它工作正常但是每当我尝试使用任何其他词时它都没有。我现在的代码如下:

import pocketsphinx as ps
import requests
import json
import sys, os

model_path = ps.get_model_path()
data_path = ps.get_data_path()

# Call to API
def get_temperature():
    headers = {
        'accept': 'application/json',
        'x-api-key': 'REMOVED'
    }

    response = requests.get(url=TEMPERATURE_URL, headers=headers)
    print("Response Code: ", response)

    temperature_data = response.json()
    print(temperature_data)
    temp = temperature_data[0]["value"]
    return temp

print("start")
while True:
    speech = ps.AudioFile(lm=False, kws='keyphrase.list', kws_threshold=1e-1)
    for phrase in speech:
        print("--------------------------------------------------------------")
        print(phrase.segments(detailed=True))
        print(phrase)
        if phrase.__eq__('temperature '):
            print("if equal")
            temperature = get_temperature()
            print("Temperature: ", temperature)

我的 keyphrase.list 文件的内容是:

temperature /1e-1/

它当前启动并运行但未检测到任何内容。

编辑:Here 是我正在使用的音频文件

您的文件格式错误:

file client_audio.wav 
client_audio.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, 4 channels 20000 Hz

你必须在解码之前将它转换成正确的格式 16 位单声道 16khz,否则它不会工作。

如果阈值较小,您可以尝试使用不同的阈值,例如 1e-10、1e-20、1e-30、1e-40 来平衡检测和误报。