วันนี้เรามาดูวิธีการทำ Siri Proxy กันดีกว่าครับ (วิธีการนี้เอามาจาก https://github.com/plamoni/SiriProxy) ลักษณะการทำงานของระบบ Siri จากที่สังเกต log ไฟล์จากโปรแกรม จะเป็นดังนี้
iPhone 4S จับคำพูดเป็น Package –> ข้อมูลส่งไปที่เครื่องเซอร์เวอร์ Siri ของแอบเปิ้ลเพื่อแปลงเป็น Text –> ประโยคที่พูดถูกส่งกลับมาเพื่อตรวจสอบกับ Application Server เพื่อทำงาน -> ผลลัพท์จาก Application Server ส่งกลับไปไอโฟนเพื่อพูดหรือแสดงผล
เรามาดูวิธีการติดตั้งกันด้านในเลยครับ
ความต้องการของระบบ
– Ubuntu Linux 9.1 -> 11.1 ตัวไหนก็ได้
– iPhone 4S
ขั้นที่ 1) เพื่อเป็นความง่ายในการติดตั้งและลองทดสอบใช้งาน ให้ล๊อคอินเป็น root เสียก่อนครับ และมาลงไฟล์ที่ต้องการใช้งานกับระบบ SiriProxy ด้วยคำสั่ง apt-get
# apt-get install dnsmasq ruby build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion
ขั้นที่ 2) ตั้งระบบ DNS สำหรับ SiriProxy เพื่อดักข้อมูลที่ส่งไป Siri ของแอปเปิ้ล และการ forward การใช้งาน DNS อื่นๆ ที่ไม่เกี่ยวข้อง
#vi /etc/dnsmasq.conf
address=/guzzoni.apple.com/<server_ip_address>
#/etc/init.d/dnsmasq restart
#bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
#[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
#echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile
#/usr/local/rvm/bin/rvm install 1.9.3
ถ้าใครไปอ่านขั้นตอนจากเว็บต่างประเทศแล้วยังทำไม่ได้ ให้ทำตามนี้เพิ่มเติมครับ
# ln -s /usr/local/rvm/bin/gem-ruby-1.9.3-p0 /usr/bin/gem
# ln -s /usr/local/rvm/bin/ruby-1.9.3-p0 /usr/bin/ruby
#/usr/local/rvm/bin/rvmsudo gem install rake bundler
# ln -s /usr/local/rvm/bin/rake-ruby-1.9.3-p0 /usr/bin/rake
cd /root
#git clone git://github.com/plamoni/SiriProxy.git
#cd SiriProxy
#/usr/bin/rake install
#mkdir /root/.siriproxy
#cp ./config.example.yml ~/.siriproxy/config.yml
#./bin/siriproxy gencerts
การเชื่อมต่อระบบเข้ากับ SiriProxy จะทำผ่าน SSL Server โดยจะมีการใช้ Private/Public key คำสั่งสุดท้ายที่ทำจะเป็นการสร้างไฟล์ ca.pem เพื่อให้เครื่อง iPhone 4S รู้จักกับ SiriProxy ของคุณหลังจากนี้ก็ให้ทำการ copy ไฟล์ ca.pem ที่อยู่ใน /root/.siriproxy/ca.pem ส่งเมล์เข้าไปในเครื่อง iPhone แล้วทำการติดตั้ง CA นี้ในเครื่องให้เรียบร้อยขั้นที่ 6) เตรียมความพร้อมของ SiriProxy
#./bin/siriproxy bundle
#/usr/local/rvm/bin/rvmsudo ./bin/siriproxy server
เท่านี้เครื่อง Server ของคุณก็พร้อมใช้งานกับ iPhone 4S ผ่านระบบ Siri แล้วครับ
การทดสอบก็พูดว่า “test siri proxy” แล้วรอฟังผลลัพท์