จาร์วิสบนคอมพิวเตอร์รัสเซีย ประเภท - คอมพิวเตอร์ควบคุมด้วยเสียง

ผู้ใช้ส่วนใหญ่ทราบดีว่าระบบ Siri ถือเป็นผู้ช่วยส่วนตัวและเทคโนโลยีคำถามและคำตอบที่ได้รับความนิยมสูงสุดในอุปกรณ์ iOS โชคดีที่ไม่เพียงแต่ระบบ Siri เท่านั้นที่มีจำหน่ายในท้องตลาด ดังนั้น แฟน ๆ ของนิยายวิทยาศาสตร์และการ์ตูนที่สร้างโดย Marvel จะได้รับ JARVIS ผู้ช่วยส่วนตัวจากภาพยนตร์เรื่อง "Iron Man"

หากเจ้าของอุปกรณ์ได้ดูหนังเรื่อง "Iron Man" แล้ว เขาคงรู้จักพ่อบ้านของ Tony Stark ซึ่งชื่อจาร์วิส ดังนั้นผู้ใช้จะสามารถขอความช่วยเหลือจากคนรับใช้เสมือนบนอุปกรณ์พกพาของเขาเอง นอกจากนี้ โปรแกรม JARVIS ยังเป็นการพัฒนาที่ไม่เหมือนใครซึ่งใช้เสียงและภาพของตัวละครจาร์วิส

ยูทิลิตี JARVIS เริ่มต้นด้วยคำสั่งเสียงตามปกติสำหรับการใช้และจัดการเครื่องมือที่ระบุ เมื่อสิ้นสุดการตั้งค่า ผู้ใช้จะต้องระบุเพศ (เพื่อให้ผู้ช่วยเสมือนสามารถติดต่อเจ้าของอุปกรณ์ได้อย่างถูกต้อง) นอกจากนี้ ที่นี่คุณจะต้องตั้งค่าหน่วยการวัดสำหรับสภาวะอุณหภูมิหลัก (โดยเฉพาะ องศาเคลวิน ฟาเรนไฮต์ หรือแน่นอน เซลเซียส)


คุณสามารถดูรายการคำแนะนำโดยละเอียดได้โดยแตะไอคอนที่มุมด้านบนของจอแสดงผล ในเวลาเดียวกัน คำสั่งทั้งหมดต้องเริ่มต้นด้วยการรักษา "จาร์วิส" และมักจะมีคำเดียว (เช่น "จาร์วิส พยากรณ์อากาศ") นอกจากนี้ JARVIS ยังสามารถแจ้งเจ้าของอุปกรณ์เกี่ยวกับการประชุมในอนาคตและแสดงเวลาปัจจุบันได้อีกด้วย คุณยังสามารถสร้างเสียงเตือนความจำได้หลากหลายในโปรแกรม

สิ่งสำคัญคือต้องทราบว่ายูทิลิตี้ JARVIS ให้คุณสมบัติเพิ่มเติมแก่เจ้าของออปติคัลดิสก์ที่มีภาพยนตร์ดังเรื่อง Iron Man ตัวอย่างเช่น ผู้ใช้สามารถควบคุมการเล่นของภาพยนตร์ที่เกี่ยวข้องได้อย่างง่ายดายด้วยความช่วยเหลือของพ่อบ้านเสมือนจริงนี้


ข้อมูลที่เป็นประโยชน์: หากคุณถามคำถามกับผู้ช่วยเสมือนของคุณ: ฉันควรซื้อ BMW 740 (http://www.bmw-avtoport.ru/auto/7/) หรือไม่ คำตอบของเขาที่มีความน่าจะเป็นร้อยเปอร์เซ็นต์จะได้รับการยืนยัน! อย่างไรก็ตาม คุณสามารถซื้อ BMW 7 Series ได้ในเงื่อนไขที่ดีที่สุดสำหรับตัวคุณเอง! สิ่งที่คุณต้องทำคือไปที่เว็บไซต์ www.bmw-avtoport.ru

วันนี้เราจะพูดถึงคำพูดของเรา คุณชอบ ควบคุมคอมพิวเตอร์ด้วยเสียงโดยไม่ต้องใช้นิ้วช่วย? และอย่างที่พวกเขาพูดด้วยพลังแห่งความคิด! จริงอยู่ เราจะไม่ควบคุมคอมพิวเตอร์ด้วยพลังแห่งความคิด แต่ด้วยพลังเสียง มันค่อนข้างจริง

พิมพ์โปรแกรม- นี่เป็นหนึ่งในซอฟต์แวร์ที่ดีที่สุดสำหรับการควบคุมคอมพิวเตอร์ผ่านเสียง บนเว็บไซต์ในความคิดเห็นของโปรแกรมนี้ ความคิดเห็นมาบรรจบกัน

จริงอยู่ มันมีข้อบกพร่อง แต่เพิ่มเติมในภายหลัง อย่างไรก็ตาม หากคุณสนใจ อ่านบทวิจารณ์ของฉัน

คุณสามารถดาวน์โหลดโปรแกรมได้ที่นี่: http://freesoft.ru/type

วิธีการใช้งาน? ขั้นแรก ให้เรียกใช้และดูปุ่มควบคุมหลัก:

โปรแกรมยินดีต้อนรับเราและให้คำแนะนำเกี่ยวกับวิธีใช้ Type ทันที ในตอนเริ่มต้น เราจะกดปุ่ม "เพิ่ม" และเขียนคำนั้นลงไป เช่น "เปิด" เมื่อต้องการทำสิ่งนี้ ให้พูดคำนี้ลงในไมโครโฟน:

จากนั้นคลิกเพิ่ม ดังนั้นเราจึงบันทึกคำว่า "เปิด" ในโปรแกรมด้วยเสียงของเรา คุณสามารถพูดคำอื่นๆ ลงในไมโครโฟนได้ สิ่งสำคัญคืออย่าสับสน

ขั้นตอนต่อไปคือการเพิ่มคำสั่ง โดยไปที่จุดนี้:

จากนั้นเราทำเครื่องหมายที่ช่องถัดจากรายการที่เราต้องการ:

เลือกโปรแกรม แอปพลิเคชัน หรือการดำเนินการ แล้วคลิกปุ่มบันทึกสีแดง หากคอมพิวเตอร์ยอมรับเสียงของเรา ให้คลิก "เพิ่ม":

และตอนนี้คำสั่งเสียงหนึ่งคำสั่งจะปรากฏในโปรไฟล์ของเรา ในกรณีนี้อันที่เปิด 7-Zip:

และตอนนี้โดยการกดปุ่มสุดท้าย "เริ่มพูด"

เราพูดวลี "open Seven Zip" ในกรณีของฉัน ทุกอย่างจะได้ผล และโปรแกรม 7-zip จะเปิดขึ้น จำวลีนี้: ซิมเปิด? นี่คือสิ่งที่เหมือนกัน

โปรแกรมทำงานไม่ถูกต้องเสมอไป ตอนนี้ภาษารัสเซียอันยิ่งใหญ่ยังไม่ได้รับการศึกษาอย่างเต็มที่จากโปรแกรมเมอร์นักภาษาศาสตร์ ... แต่ก็ยังดีที่คอมพิวเตอร์จะเชื่อฟังคุณ

ดังนั้นสำหรับการทดสอบและความอยากรู้ซ้ำซาก โปรแกรม Typle จึงเหมาะสม 100%

ในวิดีโอนี้ คุณสามารถดูประวัติของการสร้างเครื่องมือเสียงแรกและสิ่งอื่นที่เราต้องดำเนินการ:

มีชื่อที่น่าสยดสยองของแอนะล็อกอื่น ๆ ของโปรแกรมเช่น Gorynych, Perpetuum, Dictograph, Voice Commander แต่ทั้งหมดนั้นไม่ใช่ "อันนั้น" อย่าผ่านการวิพากษ์วิจารณ์โปรแกรมที่คู่ควร

ฉันใช้เวลา 5 นาทีในการเรียนรู้โปรแกรมนี้ ค่อนข้างนาน (ส่วนใหญ่ฉันเข้าใจโปรแกรมดังกล่าวใน 1-2 นาที) หากคุณมีคำถามใด ๆ - เขียน แล้วพบกันใหม่เพื่อนๆ :)!


เป็นเวลานานที่ความคิดของ "จาร์วิส" ของฉันและการควบคุมอุปกรณ์ในบ้านด้วยเสียงของฉันไม่ได้หายไป และในที่สุดมือก็มาถึงการสร้างปาฏิหาริย์นี้ ฉันไม่ต้องคิดถึง "สมอง" เป็นเวลานาน Raspberry Pi เข้ากันได้ดี

เหล็กดังนั้น:

  • Raspberry pi 3 รุ่น b
  • กล้องโลจิเทค usb

การดำเนินการ

ผู้ช่วยของเราจะทำงานตามหลักการของ Alexa/Hub:
  1. เปิดใช้งานออฟไลน์สำหรับคำเฉพาะ
  2. รู้จักทีมในระบบคลาวด์
  3. เรียกใช้คำสั่ง
  4. รายงานงานที่ทำหรือรายงานข้อมูลที่ร้องขอ
เพราะ กล้องของฉันได้รับการสนับสนุนตั้งแต่แกะกล่อง ฉันไม่ต้องวุ่นวายกับไดรเวอร์ ดังนั้นเราจะไปที่ส่วนซอฟต์แวร์โดยตรง

การเปิดใช้งานออฟไลน์

การเปิดใช้งานจะเกิดขึ้นโดยใช้ CMU Sphinx และทุกอย่างจะดี แต่การรู้จำนอกกรอบนั้นช้ามาก มากกว่า 10 วินาที ซึ่งไม่เหมาะอย่างยิ่งในการแก้ปัญหา คุณต้องล้างพจนานุกรมของคำที่ไม่จำเป็น

ติดตั้งทุกสิ่งที่คุณต้องการ:

pip3 ติดตั้ง SpeechRecognition pip3 ติดตั้ง pocketsphinx
ไกลออกไป

sudo nano /usr/local/lib/python3.4/dist-packages/speech_recognition/pocketsphinx-data/en-US /pronounciation-dictionary.dict
ลบทุกอย่างยกเว้นจาร์วิสที่เราต้องการ:

จาร์วิส JH AA R V AH S
ตอนนี้พ็อกเก็ตสฟิงซ์รู้จักค่อนข้างเร็ว

การรู้จำเสียง

ตอนแรกมีแนวคิดที่จะใช้บริการของ Google นอกเหนือจากการสนับสนุนอยู่ใน SpeechRecognition แต่เมื่อปรากฏว่า Google ใช้เงินสำหรับสิ่งนี้และไม่สามารถใช้งานได้จริง คน.

โชคดีที่ยานเดกซ์ยังให้โอกาสดังกล่าวฟรีและง่ายมาก

ลงทะเบียน รับคีย์ API งานทั้งหมดสามารถทำได้ด้วย curl'om

Curl -X POST -H "ประเภทเนื้อหา: เสียง/x-wav" --data-binary "@file" "https://asr.yandex.net/asr_xml?uuid=ya_uid&key=yf_api_key&topic=queries"

การสังเคราะห์เสียงพูด

ที่นี่ยานเดกซ์จะช่วยเราอีกครั้ง เราส่งข้อความตอบกลับ เราได้ไฟล์ที่มีข้อความสังเคราะห์

Curl "https://tts.voicetech.yandex.net/generate?format=wav&lang=ru-RU&speaker=zahar&emotion=good&key=ya_api_key" -G --data-urlencode "text=text" > ไฟล์

จาร์วิส

เรารวบรวมทุกอย่างเข้าด้วยกันและรับสคริปต์ดังกล่าว

#! /usr/bin/env python # -*-coding:utf-8-*- import os import speech_recognition as sr from xml.dom import minidom import sys import random r = sr.Recognizer() ya_uuid = "" ya_api_key = "" # os.system("echo "Assist+ent za+en" |festival --tts --language russian") def convert_ya_asr_to_key(): xmldoc = minidom.parse("./asr_answer.xml") itemlist = xmldoc.getElementsByTagName ("ตัวแปร") ถ้า len (รายการ) > 0: ส่งคืน itemlist.firstChild.nodeValue อื่น: คืนค่า False def jarvis_on(): ด้วย sr.WavFile("send.wav") เป็นแหล่งที่มา: เสียง = r.record (แหล่งที่มา) ลอง: t = r.recognize_sphinx(audio) print(t) ยกเว้น LookupError: print("ไม่สามารถเข้าใจเสียง") return t == ("jarvis") def jarvis_say(phrase): os.system("curl "https: //tts.voicetech.yandex.net/generate?format=wav&lang=ru-RU&speaker=zahar&emotion=good&key="+ya_api_key+"" -G --data-urlencode "text=" + phrase + "" > jarvis_speech.wav" ) os.system("aplay jarvis_speech.wav") def jarvis_say_good(): วลี = ["เสร็จสิ้น", "เสร็จสิ้น", "ใช่" ", "ใช่", "มีอะไรอีกไหม", ] randitem = random.choice(phrases) jarvis_say(randiitem) ลอง: ในขณะที่ True: os.system("arecord -B --buffer-time=1000000 -f dat -r 16000 -d 3 -D plughw:1,0 send.wav") ถ้า jarvis_on(): os.system("aplay jarvis_on.wav") os.system("arecord -B --buffer-time=1000000 - f dat -r 16000 -d 3 -D plughw:1,0 send.wav") os.system("curl -X POST -H "ประเภทเนื้อหา: เสียง/x-wav" --data-binary "@send .wav" "https://asr.yandex.net/asr_xml?uuid="+ya_uuid+"&key="+ya_api_key+"&topic=queries" > asr_answer.xml") command_key = convert_ya_asr_to_key() if (command_key): if ( command_key ใน ['key_word", 'key_word1', 'key_word2"]): os.system('') jarvis_say_good() ดำเนินการต่อยกเว้นข้อยกเว้น: jarvis_say("มีบางอย่างผิดพลาด")
เกิดอะไรขึ้นที่นี่. เราเริ่มวนซ้ำอนันต์ arecord'om เขียนสามวินาทีและส่งสฟิงซ์เพื่อการรับรู้หากคำว่า "jarvis" เกิดขึ้นในไฟล์

ถ้า jarvis_on():
เราเล่นไฟล์การแจ้งเตือนการเปิดใช้งานที่บันทึกไว้ล่วงหน้า

เราบันทึกอีกครั้ง 3 วินาทีแล้วส่งไปยัง Yandex เพื่อรับคำสั่งของเรา ต่อไป เราดำเนินการตามคำสั่ง

นั่นคือทั้งหมดที่ คุณสามารถสร้างสถานการณ์จำลองการดำเนินการได้หลากหลาย

ใช้กรณี

ตัวอย่างการใช้งานจริงของฉัน

ฟิลิปส์ฮิวส์

ติดตั้ง

pip ติดตั้ง phue
ในแอป Hue ให้ตั้งค่า IP แบบคงที่:

เราเปิดตัว:

#!/usr/bin/python import sys from phue import Bridge b = Bridge("192.168.0.100") # ป้อน IP ของบริดจ์ที่นี่ #หากใช้งานครั้งแรก ให้กดปุ่มบนบริดจ์แล้วรันด้วย b.connect() uncommented #b.connect() print (b.get_scene())
เราเขียนรหัสของรูปแบบที่ต้องการเช่น "470d4c3c8-on-0"

สคริปต์สุดท้าย:

#!/usr/bin/python import sys from phue import Bridge b = Bridge("192.168.0.100") # ป้อน IP ของบริดจ์ที่นี่ #หากใช้งานเป็นครั้งแรก ให้กดปุ่มบนบริดจ์และรันด้วย b.connect() uncommented #b.connect() if (sys.argv == "off"): b.set_light(,"on", False) อื่น: b.activate_scene(1,sys.argv)
เพิ่มในจาร์วิส:

ถ้า (command_key ใน ["เปิดไฟ", "เปิดไฟ", "ไฟ"]): os.system("python3 /home/pi/smarthome/hue/hue.py a1167aa91-on-0") jarvis_say_good() ดำเนินการต่อหาก (command_key ใน ["หรี่ไฟ", "หรี่ไฟ"]): os.system("python3 /home/pi/smarthome/hue/hue.py ac637e2f0-on-0") jarvis_say_good( ) ดำเนินการต่อหาก (command_key ใน ["ปิดไฟ", "ปิดไฟ"]): os.system("python3 /home/pi/smarthome/hue/hue.py "off"") jarvis_say_good() ดำเนินการต่อ

LG TV

เราใช้สคริปต์จากที่นี่ หลังจากเปิดตัวครั้งแรกและป้อนรหัสการจับคู่ โค้ดจะไม่เปลี่ยนแปลง ดังนั้นคุณจึงสามารถตัดส่วนนี้ออกจากสคริปต์และปล่อยให้ส่วนควบคุมเพียงส่วนเดียว

เพิ่มในจาร์วิส:

#1 - POWER #24 - VOLUNE_UP #25 - VOLUME_DOWN #400 - 3D_VIDEO ถ้า (command_key ใน ["turn off TV", "turn off TV"]): os.system("python3 /home/pi/smarthome/TV/ tv2. py 1") jarvis_say_good() ดำเนินการต่อหาก (command_key ใน ['เพิ่มระดับเสียง', "ดังขึ้น"]): os.system("python3 /home/pi/smarthome/TV/tv2.py 24") jarvis_say_good () ดำเนินต่อ

วิทยุ

sudo apt-get ติดตั้ง mpg123
เพิ่มในจาร์วิส:

ถ้า (command_key ใน ["news", 'turn off the news', 'what's going on']): os.system('mpg123 URL') ดำเนินการต่อ
คุณยังสามารถใส่โฮมบริดจ์และจัดการทุกอย่างผ่าน Siri ได้ หากคุณไม่สามารถตะโกนใส่จาร์วิสได้

สำหรับคุณภาพของการรู้จำเสียง แน่นอนว่าไม่ใช่ Alexa แต่ในระยะทางสูงสุด 5 เมตร เปอร์เซ็นต์ของการเข้าชมที่ถูกต้องนั้นเหมาะสม ปัญหาหลักคือคำพูดจากทีวี / ลำโพงจะถูกบันทึกพร้อมกับคำสั่งและขัดขวางการจดจำ

นั่นคือทั้งหมดที่ ขอบคุณ

แท็ก:

  • ราสเบอร์รี่ pi
  • หลาม
เพิ่มแท็ก
กำลังโหลด...กำลังโหลด...