es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

AttributeError: el objeto de tipo ‘NoneType’ no tiene el atributo ‘count’

¡Hey, necesito ayuda! Esta es mi primera publicación aquí, así que no sé cómo hacer esto, pero me gustaría descubrir cómo solucionar mi problema. Soy nuevo en la programación.

def get_audio():
    with sr.Microphone() as source:
        audio = listener.listen(source)
        said = ''

        try:
            said = r.recognize_google(audio)
            print(said)
        except Exception as e:
            print('Exception' + str(e))

Wake = 'hey friday'
while True:
    text = get_audio()
    if text.count(Wake) < 0:
        talk('Estoy listo, señor')
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el código proporcionado carece de algunos componentes, como las importaciones de las bibliotecas sr y r, así como la función talk() que se llama en la última línea.

    Sin embargo, el problema en cuestión parece ser que la declaración if verifica si el recuento de Wake en la variable text es menor que 0, pero en realidad debería verificar si el recuento es igual o mayor que 1. Esto se debe a que si la palabra clave ‘hey friday’ no se detecta en el audio, la función get_audio() devolvería una cadena vacía, que tiene un recuento de 0.

    Para solucionar este problema, podemos cambiar la condición de la declaración if a if text.count(Wake) >= 1 en lugar de if text.count(Wake) < 0.

    El código corregido se vería así:

    import speech_recognition as sr
    
    def get_audio():
        r = sr.Recognizer()
    
        with sr.Microphone() as source:
            audio = r.listen(source)
            said =''
    
            try:
                said = r.recognize_google(audio)
                print(said)
            except Exception as e:
                print('Excepción' + str(e))
    
        return said
    
    Wake = 'hey friday'
    
    while True:
        text = get_audio()
        if text.count(Wake) >= 1:
            talk('Estoy listo, señor')
    

    Ten en cuenta que agregamos una declaración de importación para la biblioteca speech_recognition, que se utiliza para el objeto Recognizer() para convertir el habla a texto. También agregamos una declaración return a la función get_audio() para devolver el texto transcrito. Finalmente, eliminamos el objeto listener, ya que no se inicializó en el código proporcionado.

Comments are closed.