Read my thoughts

Asiri: Let Siri Speak Your Language


I would like to introduce to you Asiri, the SiriProxy plugin that allows Siri to talk and interpret many other languages, that are not currently supported by Apple. As with SiriProxy, It doesn’t require you to jailbreak your iPhone 4S, unless you’re not using iPhone 4S.

The First Idea and Its Quick Death

I had this idea when the guys from Applidium first reverse-engineered the Siri protocol, and published their work. I knew there’s no technical limitation for my idea, since I can intercept the bit flow, see all kind of communication that’s going from the iPhone to Apple, and back, well, except for one. I didn’t have access to a good Arabic, or multi-language, speech recognition system.

Since developing one from scratch will take a lot of time and effort. I quickly scratched the idea out of my head and continued with my life.

Reviving The Idea

Then, while I was reading about the new features of HTML5, and draft papers, I came across the speech API. It was proposed by Google. Further research led me to an actual implementation and usage of Google APIs.

I saw Siri idea coming back to life with this new finding. However, there’s one tiny problem, the access to the APIs is not documented, which means shouldn’t be used by the public.

Seeing that my project depends not only on one undocumented API, but two, I figured I will use it for testing out my idea at least.

Different Audio Codecs

I faced a small issue during my testing. Apple uses Speex for encoding the voice bit stream, while Google uses FLAC. I think Speex is also used by Google, but I couldn’t figure out why it wasn’t working out for me. I came to the same finding as Mike Pultz, that they’re using a special form of Speex.

I wrote a small library in C called speer, to convert Apple’s Speex to raw PCM 16bit LE. I may enhance it in the future to convert to FLAC directly, but I just needed something quick and dirty for my idea, and to proof my concept.

When the library was ready, I wrote Asiri, which depends on it, as well as ffmpeg, to convert the PCM from speer to FLAC, and I had the first implementation of my idea working. Few days pass by, and further enhancing both speer, and Asiri, led to today, the public release of Asiri.

Now, both Asiri and speer are a work in progress, and I really hope anyone who wants to participate, to do so freely. Both are released under dual-license terms, GPL and MIT.

I hope you will enjoy playing with Asiri.