朗讀單詞定義的 Python 指令碼



在這裡,您將學習如何建立一個 Python 指令碼,該指令碼能夠獲取使用者的單詞並朗讀其定義。然後,指令碼呼叫 **PyDictionary** 來確定使用者輸入的單詞或短語的定義,並呼叫 **pyttsx3** 進行文字到語音轉換。

這對於那些透過聽覺學習效果更好或沒有時間閱讀定義的使用者非常有用。該指令碼允許使用者輸入一個單詞,然後檢索該單詞的含義並將其語音化;這極大地提高了簡單字典搜尋的便捷性。

安裝所需的模組

1. pyttsx3

這是一個 Python 中的離線文字到語音 (TTS) 轉換庫。

您可以使用 pip 輕鬆安裝它:

pip install pyttsx3

2. PyDictionary

這是一個用於字典服務的 Python 包,允許我們檢索單詞的含義、同義詞和反義詞。

您可以使用 pip 輕鬆安裝它:

pip install PyDictionary

程式碼解釋

程式碼解釋以及建立和使用的函式如下:

1. get_word_definition(word)

此函式接受一個輸入引數,即一個單詞,它將從 **PyDictionary** 物件中返回該單詞的含義。如果它有定義,則返回該單詞的第一個名詞定義。如果未識別到有效的定義,則顯示訊息“未找到定義”。

2. text_to_speech(text)

此函式是 TTS 引擎的入口點,它將文字合成語音。它使用 **say()** 方法將要朗讀的文字排隊,並使用 **runAndWait()** 方法執行佇列並朗讀文字。

3. main()

指令碼的直接任務。它首先顯示並提示使用者輸入一個單詞,並等待使用者的輸入。收到單詞後,它使用 **get_word_definition()** 函式檢索單詞的定義,然後使用 **text_to_speech()** 函式“說出”定義。

朗讀單詞定義的 Python 程式碼

import pyttsx3
from PyDictionary import PyDictionary

def get_word_definition(word):
   dictionary = PyDictionary()
   definition = dictionary.meaning(word)
   if definition:
      return definition.get('Noun', ['No definition found'])[0]
   else:
      return 'No definition found'

def text_to_speech(text):
   engine = pyttsx3.init()
   engine.say(text)
   engine.runAndWait()

def main():
   # Provide spoken prompt
   prompt_text = "Which word do you want to find the meaning of? Please write the word and I will wait."
   text_to_speech(prompt_text)

   # Wait for user to input the word
   print(prompt_text)
   word = input("Word: ").strip()

   if word:
      definition = get_word_definition(word)
      print(f"Definition: {definition}")

      # Provide the definition in audio form
      text_to_speech(definition)
   else:
      print("No word provided.")

if __name__ == "__main__":
   main()

輸出

Word Definitions

輸出摘要

在此輸出中,機器將首先說出:“您想查詢哪個單詞的含義?請寫下單詞,我將等待。”

然後您需要輸入正確的單詞,等待 20-30 秒,機器將回答並列印答案。

python_projects_from_basic_to_advanced.htm
廣告