原文: https://pythonspot.com/personal-assistant-jarvis-in-python/

我认为在 Python 中创建个人助理很酷。 如果您喜欢电影,可能已经听说过 A.I. Jarvis。 钢铁侠电影中的角色 在本教程中,我们将创建 机器人

我要拥有的功能是:

对于本教程,您将需要(Ubuntu)Linux,Python 和可正常使用的麦克风。

视频

这是您要创建的(观看整个视频,最后是演示):

https://www.youtube-nocookie.com/embed/ErGAhUa_rlA?rel=0

识别语音

可以使用 Python 语音识别模块完成语音识别。我们使用 Google Speech API,因为它的质量很高。

以语音回答(文字转语音)

各种 API 和程序可用于文本到语音的应用程序。Espeak 和 pyttsx 开箱即用,但听起来很机器人。我们决定使用 Google 文字到语音 API gTTS。

  1. sudo pip install gTTS

使用它很简单:

  1. from gtts import gTTS
  2. import os
  3. tts = gTTS(text='Hello World', lang='en')
  4. tts.save("hello.mp3")
  5. os.system("mpg321 hello.mp3")

Python 中的个人助理(Jarvis) - 图1

完整程序

下面的程序将回答口头问题。

  1. #!/usr/bin/env python3
  2. # Requires PyAudio and PySpeech.
  3. import speech_recognition as sr
  4. from time import ctime
  5. import time
  6. import os
  7. from gtts import gTTS
  8. def speak(audioString):
  9. print(audioString)
  10. tts = gTTS(text=audioString, lang='en')
  11. tts.save("audio.mp3")
  12. os.system("mpg321 audio.mp3")
  13. def recordAudio():
  14. # Record Audio
  15. r = sr.Recognizer()
  16. with sr.Microphone() as source:
  17. print("Say something!")
  18. audio = r.listen(source)
  19. # Speech recognition using Google Speech Recognition
  20. data = ""
  21. try:
  22. # Uses the default API key
  23. # To use another API key: `r.recognize_google(audio, key="GOOGLE_SPEECH_RECOGNITION_API_KEY")`
  24. data = r.recognize_google(audio)
  25. print("You said: " + data)
  26. except sr.UnknownValueError:
  27. print("Google Speech Recognition could not understand audio")
  28. except sr.RequestError as e:
  29. print("Could not request results from Google Speech Recognition service; {0}".format(e))
  30. return data
  31. def jarvis(data):
  32. if "how are you" in data:
  33. speak("I am fine")
  34. if "what time is it" in data:
  35. speak(ctime())
  36. if "where is" in data:
  37. data = data.split(" ")
  38. location = data[2]
  39. speak("Hold on Frank, I will show you where " + location + " is.")
  40. os.system("chromium-browser https://www.google.nl/maps/place/" + location + "/&")
  41. # initialization
  42. time.sleep(2)
  43. speak("Hi Frank, what can I do for you?")
  44. while 1:
  45. data = recordAudio()
  46. jarvis(data)

相关文章: