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

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

[复制链接]

尚未签到

发表于 2020-8-26 17:58:28 | 显示全部楼层 |阅读模式
  今天我们将使用Python构建演示TARS。TARS可以帮助您自动执行任务,例如在YouTube中搜索视频并播放,发送电子邮件,打开网站,在Wikipedia中搜索材料并阅读它们,通知您所在国家的天气预报,问候等等。通过构建TARS,将增加您的Python知识,并学习许多有用的工具。想知道如何使用Python构建TARS,首先让我们首先创建虚拟环境并构建TARS的基本音频系统。9 R6 s) Y  S% l5 A1 {7 R' ^% z: J$ s
  1. <p>  mkdirTARS</p>
    / @: n( ?6 l  f7 @& f
  2. <p>  cdTARS</p>& f" a1 W+ t+ M0 r0 f0 n
  3. <p>  virtualenvvenv</p>
复制代码
! B: k" j% J; P2 [4 U" j
  要激活下面的venvrun命令
: @3 v1 e$ V9 Q( l  W0 _( b
  1.   .venv/bin/activate
复制代码

& U& W% @4 o9 M( Z6 o  |  什么是虚拟环境?$ j) q" u; t0 l$ n1 s; @0 E
  激活venv后,我们需要通过以下命令安装主库:
3 ~' i# @1 @0 X; G5 W7 I  pip3installgTTSSpeechRecognitionPyAudiopygame
9 }* z: l7 Z9 h* j8 o  gTTS是一个Python库和CLI工具,可与GoogleTranslate的文本到语音API交互。此模块有助于将字符串文本转换为语音文本,并可以另存为.mp36 f& J8 @; p7 k4 i% D
  语音识别是家庭自动化,人工智能等多种应用中的重要功能。语音识别需要音频输入,而语音识别使检索此输入变得非常简单。无需从头开始构建脚本来访问麦克风并处理音频文件,SpeechRecognition只需几分钟即可让您启动并运行。
+ h$ s4 z+ s! k5 j7 J# P  要使用SpeechRecognizer访问麦克风,您必须安装PyAudio软件包' N% @8 s- K! N( L. D! X
  Pygame是一组跨平台的Python模块,旨在编写视频游戏。它包括旨在与Python编程语言一起使用的计算机图形和声音库。
5 ^4 I* h8 s+ C1 S, c2 i  现在,让我们构建TARS的语音系统:$ k* V6 k* s9 k5 J' P* N
  1. <p>  fromgttsimportgTTS</p>0 @+ n) t* {5 H% E& g! d
  2. <p>  importspeech_recognitionassr</p>
    ) n4 G( {3 _4 Q
  3. <p>  frompygameimportmixer</p>9 Q0 b# N! q6 w8 {) y! N
  4. <p>  deftalk(audio):</p>
    1 X2 R5 n* O  E3 j/ `4 r" _9 @
  5. <p>  print(audio)</p>
    " ]6 s7 Q- L4 G
  6. <p>  forlineinaudio.splitlines():</p>5 |" H# H1 V9 `9 N, i
  7. <p>  text_to_speech=gTTS(text=audio,lang='en-uk')</p>. o. `) ?. G7 ]+ J2 v+ @
  8. <p>  text_to_speech.save('audio.mp3')</p># h2 ?: `$ Q; C; b) S$ @- y
  9. <p>  mixer.init()</p>5 n9 P9 X0 b# ]8 k% |- U4 X
  10. <p>  mixer.music.load("audio.mp3")</p>
    , ^! X6 c3 K* E5 m
  11. <p>  mixer.music.play()</p>
复制代码
' C' e2 @" R1 ?+ U7 p6 }4 D2 V, o' J' B
  我们通过音频作为使TARS说话的一种论据。例如talk程序将在splitlines()方法的帮助下循环这些行。此方法用于在线边界处分割线。检查splitlines()了解更多。然后,gTTS将处理所有这些文本转换为语音。text参数定义要读取的文本,lang定义用于读取文本的语言(IETF语言标签)。循环完成后,save()方法将结果写入文件。
% o5 l0 T: _: ~3 A  pygame.mixer是用于加载和播放声音的模块,必须在使用之前进行初始化。: W7 C$ G6 N, J3 i1 c! e0 m
  现在,让我们创建一个监听命令的函数:. ^% B" f% a. s; j9 U# E# u/ g/ b
  1. <p>  defmyCommand():</p>
    # n$ F1 a$ ?2 Z; l+ `2 ^
  2. <p>  #Initializetherecognizer</p>
    ; H) Z1 j- K7 U
  3. <p>  r=sr.Recognizer()</p>/ P; t  `* @0 M" |" x
  4. <p>  withsr.Microphone()assource:</p>9 c0 `7 Z- x6 q6 u& r
  5. <p>  print('TARSisReady...')</p>
    $ f, C) p3 d/ }3 L, L
  6. <p>  r.pause_threshold=1</p>
    ( C. R5 ?0 X' U2 ]5 t3 ]# }
  7. <p>  #waitforasecondtolettherecognizeradjustthe</p>$ w. X7 o; I( p  r8 z
  8. <p>  #energythresholdbasedonthesurroundingnoiselevel</p>) k- v* \6 F; @) q, x
  9. <p>  r.adjust_for_ambient_noise(source,duration=1)</p>
    5 B" O( G* m2 \
  10. <p>  #listensfortheuser'sinput</p>" m, c/ W* e3 U# P
  11. <p>  audio=r.listen(source)</p>2 X/ c. v! \. z$ l% ^
  12. <p>  try:</p>
    * f0 @+ ]  E& E3 n4 z
  13. <p>  command=r.recognize_google(audio).lower()</p>$ s( |! V$ ?! E' h; y( ^$ v6 I
  14. <p>  print('Yousaid:'+command+'\n')</p>& x6 N' W, Q& k. S7 d: a4 t4 t( q
  15. <p>  #loopbacktocontinuetolistenforcommandsifunrecognizablespeechisreceived</p>! l+ _8 p$ S# A
  16. <p>  exceptsr.UnknownValueError:</p>
    2 U% j$ M2 v) @0 U: W7 i% r/ }$ o+ q
  17. <p>  print('Yourlastcommandcouldn\'tbeheard')</p>! s. B" m, P! r
  18. <p>  command=myCommand();</p>1 g7 d: p; w0 @9 }! l4 w
  19. <p>  returncommand</p>
复制代码
; x& y5 r* B, G
  在此功能中,我们使用了SpeechRecognition库。它充当几种流行语音API的包装,因此非常灵活。其中之一-GoogleWebSpeechAPI-支持默认API密钥,该密钥硬编码到SpeechRecognition库中。这意味着您可以不用注册服务就能站起来。' `" f3 p$ v; Q* p% A$ O9 V. ^/ i0 }
  为了能够通过语音识别使用自己的声音,您需要PyAudio软件包。像用于音频文件的Recognizer一样,我们将需要使用Microphone来获取实时语音数据。
9 ]4 P! U' x- P6 [+ d  您可以使用with块内Recognizer类的listen()方法捕获来自麦克风的输入。此方法将音频源作为其第一个参数,并记录来自该源的输入,直到检测到静音为止。
3 x% q* d& \" a5 Z7 a* D8 Z( R  尝试在安静的地方说出您的命令,否则TARS可能会造成混淆。8 O* `! g/ j# f5 m
  综上所述,对于如何使用Python构建TARS:Scratch的虚拟助手的信息,相信大家已经清楚了吧。( E3 A: G/ t$ J6 M
3 e* w" G2 u( x2 X/ z8 B3 W+ G
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

点击这里给我发消息

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

GMT+8, 2026-10-28 06:15

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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