5 ก.พ. 2555

ไม่มี IPhone 4s แต่อยากใช้ Siri (Setup Spire Server or Siri Server on Windows 7))

อย่างที่รู้กันดี ถ้าไม่ใช่ IPhone 4S ก็ไม่มีสิทธิ์ใช้งาน Siri ได้ หรือก็มีอีกวิธีหนึ่ง คือเอาเครื่อง IPhone 4 หรือ 3GS ไป Jailbreak แล้วก็ติดตั้ง Spire แต่ก็ยังไม่จบเพราะ Spire ต้องการติดต่อกับ Server ของ apple อยู่ดี จึงจำเป็นต้องมี Server ตัวกลาง (Siri Proxy) ในการหลอก Apple Server ว่าเราส่งข้อมูลมาว่าเครื่อง IPhone 4s นะ บนโลกอินเตอร์เน็ตก็มี Siri Proxy ไว้บริการฟรีด้วย แต่ผมไม่กล้าที่จะใช้เพราะตอนที่เราติดต่อกับ Siri Proxy (ที่เค้าให้บริการฟรีๆ หรือบางทีก็ต้องจ่ายเงินก่อน) ข้อมูลส่วนตัวของเราก็จะถูกส่งไปด้วยเช่น รายชื่อ Contact, Apple id, SMS, Location พอมาถึงจุดนี้ เรายังจะไปใช้ Proxy ของคนอื่นอีกต่อไปไหม
จากที่ผมได้อ่านตามเวบต่างๆ ในการทำ Siri Proxy นี้ จำเป็นต้องมีเครื่อง IPhone 4S จริงๆ มา Copy ข้อมูลเครื่องมาเก็บไว้ที่ Siri Proxy แต่ผมไม่มีนินา แต่โชคดีครับ เดียวนี้ไม่ต้องง้อ IPhone 4S และไม่ต้องทำ Siri Proxy ด้วย เพราะวิธีที่ผมจะเขียนต่อไปนี้ก็คือวิธีการทำ Siri Server หรือ Spire Server ที่ทำหน้าแบบเดียวกับ Apple Server เลย คือเครื่อง IPhone 4 ของเราจะติดต่อกับ Spire Server ที่เรากำลังจะติดตั้งไว้ใช้ที่บ้านเอง หรือจะอธิบายว่า Siri ก็จะคุยกับ Spire Server โดยตรงเลย โดยที่จะไม่ต้องคุยกับ Apple อีกต่อไป Spire Server ซึ่งใช้วิธีการ Speech-to-Text ของ Google ในการแปลคำสั่ง และตอนนี้ยังไม่สมูบรณ์ คือไม่สามารถรับคำสั่งที่ยาวเกิน 10 วินาทีได้ ในอนาคตทางทีมผู้ผลิตก็คงจะมีการพัฒนาต่อไป
ของสำคัญที่ต้องมี (ผมติดตั้งทุกอย่างบน VMWare)

Step One: Installing Ubuntu 11.10 Linux.
ติดตั้ง UBNT และ๊Update ตาม VDO นี้

Step Two: Installing Siri Server dependencies.
nano /tmp/siri.sh
แล้วโดย Copy Script ข้างล่างนี้ไปวางใน siri.sh เลยครับ
#!/bin/bash.o

#
# 64-bit version (if you're running 32-bit delete the "--disable-asm-opt.."
#
# This script will download all necessary dependencies (and curl)
# both for audio handling and for python
# Then it will proceed to fetch the SiriServer from
# Github and install it, it will then proceed
# and generate SSL-certs for both the server and client
# Remeber to run Script as root as the installation will fail otherwise
# Author of installation script johanberglind
# I am not the author nor the creator of the server
#

mkdir serverfolder
cd serverfolder
echo "--------- SiriServer Installation Script --------"
echo "If you don't have any of the dependencies installed the script will take a while to finish"
read -p "Expect atleast 1-2 minutes, Press [ENTER] if you're ready to continue"
clear
if [ "$(which curl)" != "" ]
then echo "Curl is already installed, proceeding"
else echo "Downloading and installing Curl"
sudo apt-get install curl
fi
read -p "Press [ENTER] to continue"
# Checks for libogg package and if it's already installed scripts moves on to libspeex
echo "Checking if Libogg is installed [10%--------]"
clear
if [ -f /usr/local/lib/libogg.a ]
then echo "Libogg is already installed, proceeding to next step"
else echo "Not installed, downloading libogg"
curl http://downloads.xiph.org/releases/ogg/libogg-1.3.0.zip > libogg-1.3.0.zip
unzip libogg-1.3.0.zip
cd libogg-1.3.0
echo "Installing libogg"
./configure
make
sudo make install
cd ..
fi
read -p "Press [ENTER] to continue"
# Checks for libspeex and if it's already installed the scripts moves on to checking for flac
echo "Checking if Libspeex is installed [-20%--------]"
clear
if [ -f /usr/local/lib/libspeex.a ]
then echo "Libspeex is already installed, proceeding to next step"
else echo "Not installed, downloading Libspeex"
curl http://downloads.xiph.org/releases/speex/speex-1.2rc1.tar.gz > speex-1.2rc1.tar.gz
clear
echo "Download complete, unzipping"
tar -xf speex-1.2rc1.tar.gz
cd speex-1.2rc1
clear
# Installing Speex.."
echo "Installing Speex... [--30%------]"
./configure
make
sudo make install
cd ..

fi
read -p "Press [ENTER] to continue"
clear
# Checks for FLAC and if it's already installed the scripts moves on
clear
echo "Checking for Flac… [----50%----]"
if [ "$(which flac)" != "" ]
then echo "FLAC is already installed, proceeding to next step"
sudo apt-get install g++
else curl -L http://sourceforge.net/projects/flac/files/flac-src/flac-1.2.1-src/flac-1.2.1.tar.gz/download > flac-1.2.1.tar.gz
clear
echo "Download complete, unzipping"
tar -xf flac-1.2.1.tar.gz
clear
echo "Installing Libflac.. [-----60%---]"
cd flac-1.2.1
./configure
make
sudo make install
cd ..
fi
read -p "Press [ENTER] to continue"
clear
# Downloading and installing necessary python packages and easy_install if they're not already installed
if [ "$(which easy_install)" != "" ]
then echo "easy_install is installed, proceeding"
else echo "Downloading and installing easy_install"
sudo apt-get install python-setuptools
clear
fi
clear
echo "Installing Python-packages [------70%--]"
sudo easy_install biplist
sudo apt-get install python-m2crypto
sudo easy_install jsonrpclib
clear
echo "Python installation complete"
read -p "Press [ENTER] to continue"
echo "Downloading SiriServer from Github... [---------80%-]"
curl -L https://github.com/Eichhoernchen/SiriServer/tarball/master > siriserver.tar.gz
clear
echo "Unzipping"
tar -xf siriserver.tar.gz
cd Eich*
cd gen_certs/
clear
echo "Time to generate SSL-certs, what is the IP of the Siriserver (this computer)? [----------90%]"
read IP
./gen_certs.sh $IP
clear
cd ..
cp ca.pem ~/Desktop/
clear
echo "Ok, now you need to transfer the ca.pem file to your iOS device"
echo "I've copied the file to your desktop for easy access"
echo "The easiest way is to mail it to yourself and open it on your iOS device"
read -p "Press [ENTER] to continue to the next step when you've installed it"
clear
echo "(NON 4S ONLY) Go ahead and download Spire from Cydia"
echo "That should take a while, but once you're done enter your IP in"
echo "the settings page of Spire: $IP"
read -p "Press [ENTER] to continue to the next step [100%]"
clear
echo "Starting Siriserver..."
echo "Now go ahead and enable Siri in the general-tab in the Settings-app"
echo "If everything went smooth, you should be up and running"
echo "Try saying: Hello Siri"
echo "Press CTRL+C to STOP"
sudo python siriServer.py


sudo chmod +x /tmp/siri.sh
./siri.sh

ถ้าทุกอย่างไปได้ดีจะมาค้างตรงที่ข้อความด้านล่างนี้
INFO Starting Server
INFO __init__ Listening on port 443

Step Three: Installing Spire Server certificate to iDevice.
หลังจาก generated certificate แล้ว ไพล์ ca.pem จะอยู่ที่ "Eichhoernchen-SiriServer-1ef4b65/" นำไพล์ ca.pem นี้ส่ง email ไปที่เครื่อง IPhone ที่ได้ติดตั้ง Spire แล้ว. หลังจากนั้นก็เปิดไพล์ที่ IPhone แล้ว Install มันเลยครับ
สุดท้ายแล้วครับ รีบไปลงทะเบียนเพื่อเอา API Keys มาใส่ที่ไพล์ apiKeys.conf
Link ตามข้างล่างเลยครับ (ฟรีครับ)

Wolfram Alpha : http://products.wolframalpha.com/developers/
Wordnik : http://developer.wordnik.com/
Weather Wunderground : http://www.wunderground.com/weather/api/

ในส่วนของการใส่หมายเลข Spire Proxy ให้ใส่เป็นหมายเลข IP ของ Siriserver ครับ เช่น https://192.168.1.1 หลังจากนั้นกลับมาที่ Server สั่งให้ Siri ทำงาน
sudo python siriServer.py

ข้างล่างคือตัวอย่างหน้าจอของ Siri ที่เริ่มทำงานได้ปกติ ครับ
INFO handle_accept Incoming connection from ('192.168.1.165', 50197)
INFO read_next_object_from_unzipped Received a Ping (1)
INFO read_next_object_from_unzipped Returning a Pong (1)
INFO read_next_object_from_unzipped Received a Ping (2)
INFO read_next_object_from_unzipped Returning a Pong (2)
INFO read_next_object_from_unzipped Received a Ping (3)
INFO read_next_object_from_unzipped Returning a Pong (3)



ไม่มีความคิดเห็น:

แสดงความคิดเห็น