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

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

[复制链接]

尚未签到

发表于 2020-8-26 17:58:28 | 显示全部楼层 |阅读模式
  今天我们将使用Python构建演示TARS。TARS可以帮助您自动执行任务,例如在YouTube中搜索视频并播放,发送电子邮件,打开网站,在Wikipedia中搜索材料并阅读它们,通知您所在国家的天气预报,问候等等。通过构建TARS,将增加您的Python知识,并学习许多有用的工具。想知道如何使用Python构建TARS,首先让我们首先创建虚拟环境并构建TARS的基本音频系统。6 v! k: H0 O' P( I, H9 v7 b
  1. <p>  mkdirTARS</p>
    2 R8 _0 t1 H' O- c0 X0 j9 L
  2. <p>  cdTARS</p>( \6 @5 W+ ^9 z4 D
  3. <p>  virtualenvvenv</p>
复制代码

! a2 K$ v) `! O3 l' X1 H  要激活下面的venvrun命令
5 r! ]2 o0 E" |  j; X( ?7 S: |3 M! E
  1.   .venv/bin/activate
复制代码

" [& }! m5 @4 u; Z, c  什么是虚拟环境?
" c* q5 r& G2 k: j  t  激活venv后,我们需要通过以下命令安装主库:
+ W& T9 D, ?7 R  pip3installgTTSSpeechRecognitionPyAudiopygame
. l1 B. `, Z" @6 Q. D  gTTS是一个Python库和CLI工具,可与GoogleTranslate的文本到语音API交互。此模块有助于将字符串文本转换为语音文本,并可以另存为.mp3
. \- |$ u3 X( C3 U/ W6 x6 C3 }  语音识别是家庭自动化,人工智能等多种应用中的重要功能。语音识别需要音频输入,而语音识别使检索此输入变得非常简单。无需从头开始构建脚本来访问麦克风并处理音频文件,SpeechRecognition只需几分钟即可让您启动并运行。0 b* a5 Q8 e6 f% t. J/ A' m7 a
  要使用SpeechRecognizer访问麦克风,您必须安装PyAudio软件包
! _6 L3 |- G+ H- M5 e  Pygame是一组跨平台的Python模块,旨在编写视频游戏。它包括旨在与Python编程语言一起使用的计算机图形和声音库。
* z- F7 w7 L9 ^8 }$ y  现在,让我们构建TARS的语音系统:" ?8 ?" c( T0 @. {+ y5 C6 ]9 ?
  1. <p>  fromgttsimportgTTS</p>* J. ~1 c3 W3 k: ~# Z5 R
  2. <p>  importspeech_recognitionassr</p>+ G  ]5 S, }6 K" B0 h
  3. <p>  frompygameimportmixer</p>$ u! a# X6 X7 ^/ _3 h- @% P
  4. <p>  deftalk(audio):</p>+ w1 d% h# {. h/ y. o$ N/ o
  5. <p>  print(audio)</p>/ j9 x2 t  ?. V
  6. <p>  forlineinaudio.splitlines():</p>
    ' w; y- S9 v. s/ u% G
  7. <p>  text_to_speech=gTTS(text=audio,lang='en-uk')</p>
    ; j. O( g3 ~8 J
  8. <p>  text_to_speech.save('audio.mp3')</p>
    ! [/ M; [' h  s
  9. <p>  mixer.init()</p>
    ) l7 ~5 B" D* }- N/ D0 h
  10. <p>  mixer.music.load("audio.mp3")</p># H, W8 S  D# i$ V% q
  11. <p>  mixer.music.play()</p>
复制代码

( x$ X0 d! o. m! p  我们通过音频作为使TARS说话的一种论据。例如talk程序将在splitlines()方法的帮助下循环这些行。此方法用于在线边界处分割线。检查splitlines()了解更多。然后,gTTS将处理所有这些文本转换为语音。text参数定义要读取的文本,lang定义用于读取文本的语言(IETF语言标签)。循环完成后,save()方法将结果写入文件。
1 F* [6 i2 X0 L" {" ]/ g0 v  \  pygame.mixer是用于加载和播放声音的模块,必须在使用之前进行初始化。# _# w8 i3 V3 l" f) k+ X! h* c
  现在,让我们创建一个监听命令的函数:
  p  Z) J0 }) W) x, ^" ]  t
  1. <p>  defmyCommand():</p># b/ M. h1 y2 p( V! U, @  O8 l' ]+ s
  2. <p>  #Initializetherecognizer</p>
    ' E) A! z5 M6 i! B+ f
  3. <p>  r=sr.Recognizer()</p>1 ^+ M1 i$ L( `6 ^8 e& p
  4. <p>  withsr.Microphone()assource:</p>
    + V9 l/ P" Y4 a; D
  5. <p>  print('TARSisReady...')</p>
    2 f0 R  a, y, e; F3 c, V# [2 {
  6. <p>  r.pause_threshold=1</p>
    7 R& ~$ e) q, N) M
  7. <p>  #waitforasecondtolettherecognizeradjustthe</p>8 Q5 S  {$ L* m( [0 \4 ~
  8. <p>  #energythresholdbasedonthesurroundingnoiselevel</p>
    8 h5 [5 B  \% \: T, T% h# }
  9. <p>  r.adjust_for_ambient_noise(source,duration=1)</p>
    0 A/ l, ]0 C6 z* [/ y/ V
  10. <p>  #listensfortheuser'sinput</p>( Q- y  v  O4 v1 ^' ~
  11. <p>  audio=r.listen(source)</p>
    2 t9 _; j: T$ P( w, @- |4 y3 c
  12. <p>  try:</p>1 H- q5 l) g# g% ^% H4 ]6 B
  13. <p>  command=r.recognize_google(audio).lower()</p>7 T; H& I: x, R7 w4 C) R
  14. <p>  print('Yousaid:'+command+'\n')</p>
      w" E5 X. y" i* u* Q$ c
  15. <p>  #loopbacktocontinuetolistenforcommandsifunrecognizablespeechisreceived</p>% o$ s; E8 ?/ e) D0 r
  16. <p>  exceptsr.UnknownValueError:</p>% x( n% `; p! r4 w! _- S
  17. <p>  print('Yourlastcommandcouldn\'tbeheard')</p>
    ; `) }( r2 c& Q0 Y( ?' B8 g. S
  18. <p>  command=myCommand();</p>
    - a. A3 i+ q2 h/ d# \3 O9 C3 n) l7 a
  19. <p>  returncommand</p>
复制代码
+ `/ N/ k8 w0 h" y, ]/ Q  L
  在此功能中,我们使用了SpeechRecognition库。它充当几种流行语音API的包装,因此非常灵活。其中之一-GoogleWebSpeechAPI-支持默认API密钥,该密钥硬编码到SpeechRecognition库中。这意味着您可以不用注册服务就能站起来。
, h: A! Z) U: |8 h) K  为了能够通过语音识别使用自己的声音,您需要PyAudio软件包。像用于音频文件的Recognizer一样,我们将需要使用Microphone来获取实时语音数据。. r4 u: ~# ~) R& ~5 O2 r/ P$ T
  您可以使用with块内Recognizer类的listen()方法捕获来自麦克风的输入。此方法将音频源作为其第一个参数,并记录来自该源的输入,直到检测到静音为止。, h' ]& u" E, V! r
  尝试在安静的地方说出您的命令,否则TARS可能会造成混淆。
$ @3 r8 I* }( H8 P, |9 h% |( ]/ @  综上所述,对于如何使用Python构建TARS:Scratch的虚拟助手的信息,相信大家已经清楚了吧。2 Q; K" d6 v3 o! z, b
3 Q2 i: @2 V. f2 e5 V% o0 y
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

点击这里给我发消息

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

GMT+8, 2026-9-2 01:45

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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