问题描述
我正在尝试创建一个小程序,如果我说的话(不仅是一个单词,而且是一个短语)(使用Speech_recognizer)中包含一个单词,并且该单词包含在单词列表(word_list)中,该程序应该打印一些内容。同样,如果我说一个或另一个单词,输出也会发生变化,因此我需要检查确切是哪个单词。
import speech_recognition as sr
word_list = ['Giotto','Raffaello','Michelangelo']
recognizer_instance = sr.Recognizer()
with sr.Microphone() as source:
recognizer_instance.adjust_for_ambient_noise(source)
print("I'm listening...")
audio = recognizer_instance.listen(source)
print('Printing what I heard...')
try:
text = recognizer_instance.recognize_google(audio,language='it-IT')
print(text)
except Exception as e:
print(e)
这是目前的代码,我不知道如何检查text_variable中包含的单词之一是否在我的word_list中
解决方法
如果您只想查看列表中所说的内容,可以使用:
if text in word_list:
#Some logic
如果变量的True
内容位于text
内,它将返回word_list
。
编辑:
您可以定义字典而不是列表,并像这样存储每个艺术家的简历:
artists_bio = {'artist1': 'artist1 bio','artist2': 'artist2 bio'...}
然后,如果识别器听到匹配的单词,则可以打印此简历:
if text in artist_bio.keys():
print(artist_bio[text])
EDIT2:
如果您的文本是一个完整的句子,则可以先将其拆分,然后再使用与以前相同的逻辑。
list_text = text.split(' ')
for text in list_text:
if text in artist_bio.keys():
print(artist_bio[text])