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

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

[复制链接]

尚未签到

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

( s5 [9 r5 _; r: q; A  要激活下面的venvrun命令6 N$ L6 r* o4 A1 v+ J0 c" [0 W' s  b
  1.   .venv/bin/activate
复制代码
2 u1 G, d6 Y8 s+ w: k4 \. m% E  G
  什么是虚拟环境?
3 {+ E4 ^- t4 N/ H, [% U3 U  激活venv后,我们需要通过以下命令安装主库:
/ s7 O% [/ Y! u  pip3installgTTSSpeechRecognitionPyAudiopygame
# q( ?& V- t7 w; F+ t& u! ?- L  gTTS是一个Python库和CLI工具,可与GoogleTranslate的文本到语音API交互。此模块有助于将字符串文本转换为语音文本,并可以另存为.mp3" G+ L% R! B! a& K1 o
  语音识别是家庭自动化,人工智能等多种应用中的重要功能。语音识别需要音频输入,而语音识别使检索此输入变得非常简单。无需从头开始构建脚本来访问麦克风并处理音频文件,SpeechRecognition只需几分钟即可让您启动并运行。
# ^) G  D6 q* q7 M$ |& x  要使用SpeechRecognizer访问麦克风,您必须安装PyAudio软件包8 [" k" |: S; t" R* s
  Pygame是一组跨平台的Python模块,旨在编写视频游戏。它包括旨在与Python编程语言一起使用的计算机图形和声音库。( a7 n& {/ h7 ?; v
  现在,让我们构建TARS的语音系统:
8 c3 ~% R0 ?' ]" I; r6 f
  1. <p>  fromgttsimportgTTS</p>; Z$ S9 n9 A3 M
  2. <p>  importspeech_recognitionassr</p>
    & t# s7 `$ ~7 y/ M
  3. <p>  frompygameimportmixer</p>9 k& K; h1 C: z. O" Y
  4. <p>  deftalk(audio):</p>
    0 i& A7 O* a, {9 y' I9 K
  5. <p>  print(audio)</p>  h) W7 p# C) ^  N, p7 P2 B
  6. <p>  forlineinaudio.splitlines():</p>! O7 f# L* u2 J+ u. V5 ?  n& D% ^
  7. <p>  text_to_speech=gTTS(text=audio,lang='en-uk')</p>+ e" I. ?. U/ h0 \. a  N' Z2 y/ _
  8. <p>  text_to_speech.save('audio.mp3')</p>+ M- g' m% _5 S9 V
  9. <p>  mixer.init()</p>
    / }3 g! {& b0 y$ Q1 ~) b0 h
  10. <p>  mixer.music.load("audio.mp3")</p>
    ) f& H* R9 A, I* D* }' p5 z
  11. <p>  mixer.music.play()</p>
复制代码

% L9 {  v+ N3 O! Q/ h! m; f/ Q  我们通过音频作为使TARS说话的一种论据。例如talk程序将在splitlines()方法的帮助下循环这些行。此方法用于在线边界处分割线。检查splitlines()了解更多。然后,gTTS将处理所有这些文本转换为语音。text参数定义要读取的文本,lang定义用于读取文本的语言(IETF语言标签)。循环完成后,save()方法将结果写入文件。* Z; z" k. @" J: @! P
  pygame.mixer是用于加载和播放声音的模块,必须在使用之前进行初始化。. v  L  u, u" h* n5 ^- d3 B" M" F, }
  现在,让我们创建一个监听命令的函数:
: i5 J2 O, i* }" }- h* f
  1. <p>  defmyCommand():</p>( v- T! F2 i% H4 w2 ?: E
  2. <p>  #Initializetherecognizer</p>
    6 R) f" j& w6 s+ w4 c3 l. Z; W
  3. <p>  r=sr.Recognizer()</p>% B9 P, L2 C* O2 p1 K
  4. <p>  withsr.Microphone()assource:</p>- O, [- a9 c; z4 z' e, E+ g5 v; ]
  5. <p>  print('TARSisReady...')</p>$ D- h- c- ^- R, z$ `. H. \6 z9 h8 a
  6. <p>  r.pause_threshold=1</p>
    0 n9 a$ A7 T2 S$ Z1 i9 G$ u
  7. <p>  #waitforasecondtolettherecognizeradjustthe</p>1 n7 A3 W$ I: R
  8. <p>  #energythresholdbasedonthesurroundingnoiselevel</p># S. G* p+ l4 g" _
  9. <p>  r.adjust_for_ambient_noise(source,duration=1)</p>$ T9 Q% Y* ~) v  c
  10. <p>  #listensfortheuser'sinput</p>
    6 q4 {8 q: o( h7 Q; j$ D" ~  M
  11. <p>  audio=r.listen(source)</p>
    % j8 d- X+ d+ R5 a! A  Q* o
  12. <p>  try:</p>& Z& u. ~8 w/ }% ?6 }& u% S
  13. <p>  command=r.recognize_google(audio).lower()</p>( T; G  S* G5 F! r
  14. <p>  print('Yousaid:'+command+'\n')</p>  |; F% W$ c9 B. ^
  15. <p>  #loopbacktocontinuetolistenforcommandsifunrecognizablespeechisreceived</p>: m2 x9 J' B# Z$ v3 i
  16. <p>  exceptsr.UnknownValueError:</p>
    . v4 M! ^1 h7 [( P: ?. H( t
  17. <p>  print('Yourlastcommandcouldn\'tbeheard')</p>" M( Q' c3 c* [' R  C
  18. <p>  command=myCommand();</p>4 J8 `$ l. ~$ ~. K3 b: u
  19. <p>  returncommand</p>
复制代码

% g* t: s! d, N7 F! m: }  在此功能中,我们使用了SpeechRecognition库。它充当几种流行语音API的包装,因此非常灵活。其中之一-GoogleWebSpeechAPI-支持默认API密钥,该密钥硬编码到SpeechRecognition库中。这意味着您可以不用注册服务就能站起来。
, E& l( f3 j+ d0 D* @  为了能够通过语音识别使用自己的声音,您需要PyAudio软件包。像用于音频文件的Recognizer一样,我们将需要使用Microphone来获取实时语音数据。
, `8 m! ~8 t2 q; r4 W5 v  您可以使用with块内Recognizer类的listen()方法捕获来自麦克风的输入。此方法将音频源作为其第一个参数,并记录来自该源的输入,直到检测到静音为止。
, {: I% V! h" h) L  尝试在安静的地方说出您的命令,否则TARS可能会造成混淆。
( s; {' i6 A* C9 Q7 N/ S0 c  综上所述,对于如何使用Python构建TARS:Scratch的虚拟助手的信息,相信大家已经清楚了吧。/ s" c1 D) ]- a* k1 _

3 ?2 d. g% b' E3 Q' o) ^2 |. [9 ]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

点击这里给我发消息

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

GMT+8, 2026-4-18 02:34

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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