O artigo a seguir mostra como, pelo uso de dois módulos chamados, pyttsx3 e PyDictionary , podemos fazer nosso sistema dizer o significado da palavra dada como entrada. É um módulo que fala o significado quando queremos ter o significado de uma palavra particular.

Módulos necessários

  • PyDictionary: Ele é um Módulo Dicionário Python 2-3 para obter significados, traduções, sinônimos e antônimos de palavras. Ele usa WordNet para fazer conforme sua funcionalidade sugere e tem dependências em módulos chamados Requests, BeautifulSoup4 e goslate.
  • pyttsx3: É uma biblioteca de texto para fala. Este módulo é o que dá voz ao nosso sistema para que eles possam se comunicar conosco. Pyttsx3 usa sapi5 em janelas e espeak em janelas.

Ambos os módulos podem ser instalados usando pip da seguinte maneira:

pip install PyDictionary
pip install pyttsx3  

Trabalhando

Conforme mencionado acima, pela combinação de dois módulos iremos gerar a funcionalidade necessária e para isso foram dados os seguintes passos:

  • Um método é definido para fazer o sistema pesquisar o significado da palavra fornecida como entrada
  • Outro método é definido para fazer o sistema dizer em voz alta a saída gerada correspondente à entrada fornecida.
  • A saída retornada neste pode ser um dicionário, então temos que extrair cada significado da palavra fornecida, pois estará em um formato de valor-chave.

Abaixo está a implementação.

import pyttsx3 
from PyDictionary import PyDictionary 
  
  
class Speaking: 
  
    def speak(self, audio): 
      
      engine = pyttsx3.init('sapi5') 
        
        voices = engine.getProperty('voices') 
        
        engine.setProperty('voice', voices[0].id) 
        engine.say(audio) 
        engine.runAndWait() 
  
  
class GFG: 
    def Dictionary(self): 
        speak = Speaking() 
        dic = PyDictionary() 
        speak.speak("Which word do u want to find the meaning sir") 
        
        query = str(input()) 
        word = dic.meaning(query) 
        print(len(word)) 
        for state in word: 
            print(word[state]) 
            speak.speak("the meaning  is" + str(word[state])) 
  
  
if __name__ == '__main__': 
    GFG() 
    GFG.Dictionary(self=None) 

Resultado: