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

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

[复制链接]

尚未签到

发表于 2020-8-26 17:58:28 | 显示全部楼层 |阅读模式
  今天我们将使用Python构建演示TARS。TARS可以帮助您自动执行任务,例如在YouTube中搜索视频并播放,发送电子邮件,打开网站,在Wikipedia中搜索材料并阅读它们,通知您所在国家的天气预报,问候等等。通过构建TARS,将增加您的Python知识,并学习许多有用的工具。想知道如何使用Python构建TARS,首先让我们首先创建虚拟环境并构建TARS的基本音频系统。, d; j) s3 ^8 a" c- H: c0 @
  1. <p>  mkdirTARS</p>
    , _8 X9 q7 j$ o' g; l
  2. <p>  cdTARS</p>
    9 F0 l  n/ {! Z( V8 A$ @
  3. <p>  virtualenvvenv</p>
复制代码

3 _$ X, ?1 j' i  X( y# N  要激活下面的venvrun命令
% l+ G' ~' `& u9 A) S& w! R
  1.   .venv/bin/activate
复制代码

4 o: J; O: ~! B; h  }; }# e& c  什么是虚拟环境?
8 U! l8 B" b- o, \  激活venv后,我们需要通过以下命令安装主库:. Z- K+ y8 J% l: W+ C1 }% v
  pip3installgTTSSpeechRecognitionPyAudiopygame7 L; e. z. `( h# {! K/ f4 _
  gTTS是一个Python库和CLI工具,可与GoogleTranslate的文本到语音API交互。此模块有助于将字符串文本转换为语音文本,并可以另存为.mp3- F1 g, h4 t$ l* \  u, S! C* ?
  语音识别是家庭自动化,人工智能等多种应用中的重要功能。语音识别需要音频输入,而语音识别使检索此输入变得非常简单。无需从头开始构建脚本来访问麦克风并处理音频文件,SpeechRecognition只需几分钟即可让您启动并运行。: H7 g6 w  p* k  D8 _
  要使用SpeechRecognizer访问麦克风,您必须安装PyAudio软件包( C& m4 e+ Q! L/ B
  Pygame是一组跨平台的Python模块,旨在编写视频游戏。它包括旨在与Python编程语言一起使用的计算机图形和声音库。1 J* p: s/ ]; {
  现在,让我们构建TARS的语音系统:
. Y. v9 A4 o9 V$ ]
  1. <p>  fromgttsimportgTTS</p>: S( R3 W: q2 X$ A
  2. <p>  importspeech_recognitionassr</p>7 V0 P) Q# f% `! k
  3. <p>  frompygameimportmixer</p>1 D& F1 w* A$ R) ?
  4. <p>  deftalk(audio):</p>
    7 S3 `5 O  U- d% A
  5. <p>  print(audio)</p>
    1 |+ U" b7 b8 J4 Q: J/ x" j6 T9 |
  6. <p>  forlineinaudio.splitlines():</p>9 k# l$ d/ P9 p2 t# x6 ^3 P  E; z
  7. <p>  text_to_speech=gTTS(text=audio,lang='en-uk')</p>
    0 c4 B4 |. h' M8 P. V$ [8 B
  8. <p>  text_to_speech.save('audio.mp3')</p>8 Y% s8 ^" ~5 @+ O( x
  9. <p>  mixer.init()</p># p7 F5 `2 @2 _! u! M, Y; K2 h
  10. <p>  mixer.music.load("audio.mp3")</p>
    3 F! v4 \' s$ |1 \0 k+ G
  11. <p>  mixer.music.play()</p>
复制代码

( r7 h  `! I+ ?4 z8 O8 O  我们通过音频作为使TARS说话的一种论据。例如talk程序将在splitlines()方法的帮助下循环这些行。此方法用于在线边界处分割线。检查splitlines()了解更多。然后,gTTS将处理所有这些文本转换为语音。text参数定义要读取的文本,lang定义用于读取文本的语言(IETF语言标签)。循环完成后,save()方法将结果写入文件。
+ @: N/ Z# m) B1 x  pygame.mixer是用于加载和播放声音的模块,必须在使用之前进行初始化。: \3 o2 S- [& t6 p6 B
  现在,让我们创建一个监听命令的函数:
2 ~$ u4 m, b" K) Y/ L
  1. <p>  defmyCommand():</p>
    5 I5 x" Q" o7 }$ C- C* |
  2. <p>  #Initializetherecognizer</p>
    8 x* t/ j" `. ?1 T! _  s
  3. <p>  r=sr.Recognizer()</p>8 I$ P! D' |+ X% {* |5 n  |
  4. <p>  withsr.Microphone()assource:</p>
    ( y" j0 H7 X0 g, P
  5. <p>  print('TARSisReady...')</p>! E, o: U' n1 W- ]( t
  6. <p>  r.pause_threshold=1</p>
    6 ?) ^5 i& ]6 s% l
  7. <p>  #waitforasecondtolettherecognizeradjustthe</p>+ `7 R" J* M9 F+ P
  8. <p>  #energythresholdbasedonthesurroundingnoiselevel</p>
    / d$ |0 s+ p' \% @; n3 L  ]
  9. <p>  r.adjust_for_ambient_noise(source,duration=1)</p>  K! ^' Z' c, e% x' t' g% G
  10. <p>  #listensfortheuser'sinput</p>
    ' z) j# j! @  ^: y! {1 v$ t. g: r
  11. <p>  audio=r.listen(source)</p>
    ! r0 m  {* w7 f& V: c, [% w7 l
  12. <p>  try:</p>; N* |% W  ^# M% Q- ^! H
  13. <p>  command=r.recognize_google(audio).lower()</p>
    ; E1 a9 o" y3 S7 [
  14. <p>  print('Yousaid:'+command+'\n')</p>
    ; k) k9 i( x) V9 U
  15. <p>  #loopbacktocontinuetolistenforcommandsifunrecognizablespeechisreceived</p>
    1 C: n% \8 B3 Z8 [) N
  16. <p>  exceptsr.UnknownValueError:</p>' ^" F4 h$ [' Y( }
  17. <p>  print('Yourlastcommandcouldn\'tbeheard')</p>( @& `  f( k" g# D% [* Y
  18. <p>  command=myCommand();</p>
    9 }- |5 v# f% T* U4 W% \8 I: p6 S
  19. <p>  returncommand</p>
复制代码

( m3 Z8 t( z# k  在此功能中,我们使用了SpeechRecognition库。它充当几种流行语音API的包装,因此非常灵活。其中之一-GoogleWebSpeechAPI-支持默认API密钥,该密钥硬编码到SpeechRecognition库中。这意味着您可以不用注册服务就能站起来。
7 s; X1 }+ ~5 {! f  为了能够通过语音识别使用自己的声音,您需要PyAudio软件包。像用于音频文件的Recognizer一样,我们将需要使用Microphone来获取实时语音数据。
2 _' _: k$ X% \8 q  您可以使用with块内Recognizer类的listen()方法捕获来自麦克风的输入。此方法将音频源作为其第一个参数,并记录来自该源的输入,直到检测到静音为止。
, x. S+ w! ^% ]) S  尝试在安静的地方说出您的命令,否则TARS可能会造成混淆。5 |" a: \9 x& |! w! }0 K- k4 F' r" @
  综上所述,对于如何使用Python构建TARS:Scratch的虚拟助手的信息,相信大家已经清楚了吧。6 Q! {* r2 y  b! z, z7 a

: D+ b. V; U+ s, l8 m* ~; d) q
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

点击这里给我发消息

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

GMT+8, 2026-10-29 07:35

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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