找回密码
 立即注册
查看: 1045|回复: 0

如何使用Python构建TARS:Scratch的虚拟助手

[复制链接]

尚未签到

发表于 2020-8-26 17:58:28 | 显示全部楼层 |阅读模式
  今天我们将使用Python构建演示TARS。TARS可以帮助您自动执行任务,例如在YouTube中搜索视频并播放,发送电子邮件,打开网站,在Wikipedia中搜索材料并阅读它们,通知您所在国家的天气预报,问候等等。通过构建TARS,将增加您的Python知识,并学习许多有用的工具。想知道如何使用Python构建TARS,首先让我们首先创建虚拟环境并构建TARS的基本音频系统。! c& {% S4 h7 d3 b2 T
  1. <p>  mkdirTARS</p>; i5 ?; ^) ~, i8 Y: e
  2. <p>  cdTARS</p>
    1 }" C" W, q) W8 i3 f# |$ X
  3. <p>  virtualenvvenv</p>
复制代码

2 p& w. j8 j/ p! e1 z  要激活下面的venvrun命令- g9 F" A! t! j
  1.   .venv/bin/activate
复制代码
8 f& ^* T( C; u9 {% t' P( w; [
  什么是虚拟环境?
. Y& z" X; }: n  激活venv后,我们需要通过以下命令安装主库:
0 V8 B. d9 P0 S9 A9 w  pip3installgTTSSpeechRecognitionPyAudiopygame. Z/ ^- A8 {" x* d" ^4 R: Q7 u4 ?
  gTTS是一个Python库和CLI工具,可与GoogleTranslate的文本到语音API交互。此模块有助于将字符串文本转换为语音文本,并可以另存为.mp3
9 X8 W( y% F! v1 X" Z  语音识别是家庭自动化,人工智能等多种应用中的重要功能。语音识别需要音频输入,而语音识别使检索此输入变得非常简单。无需从头开始构建脚本来访问麦克风并处理音频文件,SpeechRecognition只需几分钟即可让您启动并运行。
3 Y+ g( j( E# l0 [; u* Y; D  要使用SpeechRecognizer访问麦克风,您必须安装PyAudio软件包& N' h# E0 T; k9 l6 U( h8 O
  Pygame是一组跨平台的Python模块,旨在编写视频游戏。它包括旨在与Python编程语言一起使用的计算机图形和声音库。& z. o7 V1 E7 L9 E6 V4 \' j0 P
  现在,让我们构建TARS的语音系统:+ I3 u, j$ d. i
  1. <p>  fromgttsimportgTTS</p>
    ) u( V; W3 X; z/ R. s; l2 V9 b) N( O
  2. <p>  importspeech_recognitionassr</p>/ |& n5 c" {* U
  3. <p>  frompygameimportmixer</p>1 u: x3 }) R, s0 @% s5 R# M
  4. <p>  deftalk(audio):</p>
    ; |) @( T- E8 \$ f8 W
  5. <p>  print(audio)</p>) N6 k! l. L) I" E& W7 i
  6. <p>  forlineinaudio.splitlines():</p>
    $ B. [/ o/ E3 ]8 v& l: p
  7. <p>  text_to_speech=gTTS(text=audio,lang='en-uk')</p>
    9 S* f2 J  ?7 @, k: b5 j. v
  8. <p>  text_to_speech.save('audio.mp3')</p>
    # F" ~8 J* J- K0 f8 @" ]: y$ `
  9. <p>  mixer.init()</p>
    - D. ~& b# K3 T; t4 y- Z
  10. <p>  mixer.music.load("audio.mp3")</p>% c  C" S! _* N6 Q* y& ^
  11. <p>  mixer.music.play()</p>
复制代码
6 w4 I: H3 I6 L3 U% W
  我们通过音频作为使TARS说话的一种论据。例如talk程序将在splitlines()方法的帮助下循环这些行。此方法用于在线边界处分割线。检查splitlines()了解更多。然后,gTTS将处理所有这些文本转换为语音。text参数定义要读取的文本,lang定义用于读取文本的语言(IETF语言标签)。循环完成后,save()方法将结果写入文件。2 d  x( r% j; _
  pygame.mixer是用于加载和播放声音的模块,必须在使用之前进行初始化。/ k" j4 r( a: M( S9 q3 k! Z
  现在,让我们创建一个监听命令的函数:
8 V$ ^! y- Y. ]7 i& f. C
  1. <p>  defmyCommand():</p>
      w) _, J3 U& O% K" f$ y( f7 Q
  2. <p>  #Initializetherecognizer</p>/ V1 P" s2 N; p7 k3 \$ P
  3. <p>  r=sr.Recognizer()</p>
    : K" _; M! D9 c( K. v
  4. <p>  withsr.Microphone()assource:</p>
    2 T  ]! U5 s  R
  5. <p>  print('TARSisReady...')</p>* p% f+ B7 }) f0 i2 m1 C& D/ E. _/ o
  6. <p>  r.pause_threshold=1</p>
    5 Z1 ~, F7 a& B- w
  7. <p>  #waitforasecondtolettherecognizeradjustthe</p>. a3 s4 S. p! [) k, M* j
  8. <p>  #energythresholdbasedonthesurroundingnoiselevel</p>9 L( h7 _; S8 n8 c  p1 A2 g
  9. <p>  r.adjust_for_ambient_noise(source,duration=1)</p>' l$ `  u  z! C3 F$ z! {: I
  10. <p>  #listensfortheuser'sinput</p>* Z) _* w% [6 H6 G. y1 g
  11. <p>  audio=r.listen(source)</p>
    9 e  [9 ^8 x$ f) R! `- w' \
  12. <p>  try:</p>. B1 ?# l3 p- F  v' L+ }9 G4 ?
  13. <p>  command=r.recognize_google(audio).lower()</p>
    ! Y8 g- a8 ^9 ^& m4 d8 F
  14. <p>  print('Yousaid:'+command+'\n')</p>, \+ D7 d0 m5 O' }3 O* P! E
  15. <p>  #loopbacktocontinuetolistenforcommandsifunrecognizablespeechisreceived</p>
    3 W" c1 ]) ^7 k4 r  m# l
  16. <p>  exceptsr.UnknownValueError:</p>& B# X! b$ t8 a) f  l
  17. <p>  print('Yourlastcommandcouldn\'tbeheard')</p>
    3 J8 z! _: t0 m  \( K
  18. <p>  command=myCommand();</p>8 f7 x7 F( }8 r' ^, _
  19. <p>  returncommand</p>
复制代码
$ g" D& t1 V3 ?5 }6 `) O( }$ J, @3 T
  在此功能中,我们使用了SpeechRecognition库。它充当几种流行语音API的包装,因此非常灵活。其中之一-GoogleWebSpeechAPI-支持默认API密钥,该密钥硬编码到SpeechRecognition库中。这意味着您可以不用注册服务就能站起来。
6 C: ~* a. Q2 P3 ~% a% q0 r  为了能够通过语音识别使用自己的声音,您需要PyAudio软件包。像用于音频文件的Recognizer一样,我们将需要使用Microphone来获取实时语音数据。
4 ?: ]5 s; [7 p9 H4 K. u  您可以使用with块内Recognizer类的listen()方法捕获来自麦克风的输入。此方法将音频源作为其第一个参数,并记录来自该源的输入,直到检测到静音为止。& U  S( f) d( r8 ]* _4 b
  尝试在安静的地方说出您的命令,否则TARS可能会造成混淆。- i: S! F7 J* |) _6 Q, h# U
  综上所述,对于如何使用Python构建TARS:Scratch的虚拟助手的信息,相信大家已经清楚了吧。: i. b! P3 e& W* ?/ H
; `& [8 W2 Y, S- T
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

点击这里给我发消息

QQ|小黑屋|Archiver|手机版|一路学IT论坛 专业视频教程网站

GMT+8, 2026-10-28 04:30

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表