CMUSphinx thực hiện đốm từ khóa trong công cụ pocketsphinx, xem để biết chi tiết các FAQ entry.
Để nhận ra một keyphrase duy nhất bạn có thể chạy bộ giải mã trong chế độ “tìm kiếm cụm từ”.
Từ dòng lệnh try:
pocketsphinx_continuous -infile file.wav -keyphrase “oh mighty computer” -kws_threshold 1e-20
Từ mã:
ps_set_keyphrase(ps, "keyphrase_search", "oh mighty computer");
ps_set_search(ps, "keyphrase_search);
ps_start_utt();
/* process data */
Bạn cũng có thể tìm thấy ví dụ cho Python và Android/Java trong các nguồn của chúng tôi. Python mã trông như thế này, ví dụ hoàn here:
# Process audio chunk by chunk. On keyphrase detected perform action and restart search
decoder = Decoder(config)
decoder.start_utt()
while True:
buf = stream.read(1024)
if buf:
decoder.process_raw(buf, False, False)
else:
break
if decoder.hyp() != None:
print ([(seg.word, seg.prob, seg.start_frame, seg.end_frame) for seg in decoder.seg()])
print ("Detected keyphrase, restarting search")
decoder.end_utt()
decoder.start_utt()
Threshold phải được điều chỉnh cho mỗi keyphrase trên dữ liệu thử nghiệm để có được sự cân bằng cánh phải, Lệch phát hiện và báo động sai. Bạn có thể thử các giá trị như 1e-5 đến 1e-50.
Để có độ chính xác tốt nhất, tốt hơn nên có cụm từ khóa bằng 3-4 âm tiết. Cụm từ quá ngắn có thể dễ dàng bị nhầm lẫn.
Bạn cũng có thể tìm kiếm nhiều keyphrase, tạo một keyphrase.list tập tin như thế này:
oh mighty computer /1e-40/
hello world /1e-30/
other_phrase /other_phrase_threshold/
Và sử dụng nó trong bộ giải mã với -kws tùy chọn cấu hình.
pocketsphinx_continuous -inmic yes -kws keyphrase_list
Tính năng này chưa được triển khai trong bộ giải mã sphinx4.
Có giải thích thuật toán hoặc thư viện để thực hiện tìm kiếm từ khóa trên luồng âm thanh mà không sử dụng CMUSphinx không? –
Chắc chắn, bạn có thể google cho "từ khoá đốm" –
Có rất nhiều nghiên cứu giấy nhưng không có thực hiện đơn giản chết –