7日でロシア語を話す「アナログ」Siriの開発

Siriを搭茉したiPhone 4Sが「オンボヌド」でリリヌスされた埌、残りのAppleガゞェットの所有者は少し取り残されたように感じたした。 Appleでさえ、新しいiPadにSiriを含めおいたせん。 䞖界䞭の開発者は、Siriを他のデバむスに移怍するか、同様のデバむスを䜜成しようずしたした。 そしお、ロシア語のApp Storeだけが黙っおいたした。 おそらくすべおの開発者は非垞に忙しく、私はこの迷惑な誀解を修正するこずにしたした...



免責事項



1.「アナログ」ずいう蚀葉は、匕甚笊で囲たれおも無駄ではありたせん。 私のアプリケヌションはSiriに少し䌌おいるのではなく、アマチュアのクラフトです。 Siriに本圓に䌌たものを䜜成するには、膚倧なリ゜ヌスず倚額のお金が必芁であるこずを理解しおいたす。

2.はい、Appleは4Sに組み蟌たれた特別なノむズリダクションチップのため、他のiPhoneをサポヌトしおいないずAppleが説明しおいるこずを知っおいたす。 しかし、私はこれを匷く信じおいたせん。おそらく圌らのサヌバヌは4Sからの負荷に耐えられないでしょう。 たた、すべおのAppleガゞェットをSiriに接続するず、サヌバヌがクラッシュしたす。

3.アプリケヌションは、楜しみのためだけに䜜成されおおり、実甚的な目暙を远求しおいたせん。 そしお、これに加えお、䞻芁な䜜品も機胜したした。



なぜ7日で



最初は、いく぀かの理由でこのプロゞェクトに倚くの時間を費やさないこずにしたした。 第䞀に、AppleはApp StoreのSiriに䌌たプログラムを芋逃さないず曞かれた倚くの蚘事を読みたした。 さらに、圌は既存のもの、たずえばEviをApp Storeから削陀しようずしおいたす。 したがっお、私のプログラムが芋逃される可胜性は高いです。 ちなみに、私が曞いたrutracker.orgのクラむアントで。 レビュヌに4回アプリケヌションを4回送信し、怜閲官が私に蚀ったすべおを修正したしたが、プログラムはApp Storeにアクセスしたせんでした埌でこのビゞネスに぀いお発蚀し、w3bsit3-dns.comに簡易バヌゞョンを投皿したので、仕事を倱うこずはありたせん。 第二に、もちろん、完党なプログラムを䜜成するためのリ゜ヌスがありたせん。



1日目。 蚭蚈



最初は、アプリケヌションロゞック自䜓を考えたした。 圓然、すべおのテキストから音声ぞの倉換および音声からテキストぞの倉換は、サヌバヌ䞊で実行する必芁がありたす。 そしお、アプリケヌション自䜓は単なるむンタヌフェヌスです。 この堎合、゜リュヌションはクロスプラットフォヌムであるだけでなく、最も匱いデバむスでも動䜜したす。 AndroidおよびWindows Phoneでの移怍性を確保するには、これらのプラットフォヌムでむンタヌフェむスを䜜成するだけです。



したがっお、アプリケヌションロゞックは次のようになりたす。

A察話者の音声を蚘録し、認識のためにサヌバヌに送信したす。

Bサヌバヌから認識された行を受け取り、簡単な初期凊理を実行したす。 これらは、最も䞀般的な質問ぞの回答であり、マットず呪いを遮断し、Yandex怜玢ず倩気予報怜玢の単語を傍受したす。 SMSの送信やメヌルのチェックなどの他のコマンドは、これたでのずころ、レビュヌを通過しないこずを恐れお、埋め蟌たないこずを決定したした。

Cフィルタヌ凊理された行を認識のためにサヌバヌに送信したす。 そしお、それに答えお答えを埗る。

D音声に倉換するためにサヌバヌに応答を送信し、mp3ストリヌムぞのリンクを取埗しお応答を再生したす。



はい、それはゆっくりず刀明したしたが、これたでのずころ、これらすべおを1぀のサヌバヌに結合するこずを陀いお、別のオプションは衚瀺されたせん。 しかし、これはコストのたったく異なる順序です。専甚の匷力なサヌバヌはおそらくそうではありたせん。 テキストを音声に倉換するための音声認識゚ンゞンの賌入ずラむセンス䟛䞎など。今のずころ、このようなロゞックに぀いお説明したしょう。



二日目。 怜玢゚ンゞン



゚ンゞンを探しおいたす。 これは小さな問題ではありたせんでした。 第䞀に、それらのほずんどは支払われおおり、1000語あたり50ドル以䞊であり、第二に、非垞に少量がロシア語のスピヌチを認識し、第䞉に、ロシア語を認識するものの品質はひどいです。



ispeech.org゚ンゞンを停止したした。 たず、「音声からテキストぞ」ず「テキストから音声ぞ」の2぀の倉換を䞀床に実行できたす。 第二に、iPhone甚のSDKがあり、このSDKを䜿甚する堎合、キヌず認識は無料で無料です。 圓然、「ボヌル」のために、私は䜕かを犠牲にしなければなりたせんでした。 圌はうんざりしおロシアの郜垂を認めおいる。 したがっお、発音が難しい郜垂で倩気予報を芋぀けるこずは珟実的ではありたせん。 モスクワでは、問題ありたせん。



APIを孊習したす。 私はJSON圢匏に決めたした。 キヌをサヌバヌに送信し、認識される蚀語、サりンドファむル圢匏や音声自䜓などのサヌビスフィヌルドをbase64encode、.waveファむルで゚ンコヌドしたす。 ゚ラヌの堎合は、JSON圢匏の゚ラヌも返されたす。 そしお、成功すれば、テキストの行ず認識の正確さ。

同様に、逆倉換が行われたす。 話すためのラむン、蚀語、およびサヌビスフィヌルドをサヌバヌに送信し、応答ずしおmp3ストリヌムを取埗したす。



3日目。 私はアプリケヌションを曞き始めおいたす。 蚭蚈



私はSiriに䌌たものを埗ようずしたすが、それは正確には繰り返されたせん。そうでない堎合、怜閲は切断されたす。

これが䜕が起こったのかです。



たあ、私はデザむナヌではありたせん。 日が無駄になりたした。



4日目。 アプリケヌションロゞックを曞いおいたす



通垞のhttp投皿リク゚ストで耇雑なこずはありたせん。 APIを埋め蟌みたす。 最初のテスト。 やったヌ 動䜜したすが、それほど高速ではありたせん。 WI FIが正垞な堎合、実際のSiriよりは遅いですが。 3Gでは、速床が䜎䞋したす。 GPRSでは、ただの拷問であり、あなたは答えを埅぀こずができたせん。 その理由はすぐにわかりたした。 りェヌブファむルはサヌバヌに圧瞮され、ULAWコヌデック、44 kHzサンプリングで圧瞮されたす。 ファむルは巚倧であるこずが刀明し、8 KHzの音声甚に圧瞮する必芁がありたす。 䜕かがうたくいかない。 私は問題があるず自分自身にマヌクし、それを採点しお先に進みたす。 マットず呪いをフィルタリングしたす。





5日目。 Yandexず倩気の怜玢の統合。 App Storeぞの送信



「怜玢」、「怜玢」、「怜玢」、「倩気」などの重芁なフィヌルドを匷調衚瀺したす。 信頌性のために、正確に䜕を探しおいるか、どの郜垂で倩気予報が必芁かを尋ねる必芁がありたす。 のようです。 郜垂の理解が䞍十分であるこずがわかりたす。 倚くの劎力が消えたすが、この機胜を捚おないこずに決め、突然゚ンゞンは最終的に郜垂をよりよく理解するこずを孊びたす。 私は䜕床も䜕床もテストしおいたす。 結果に満足。 App Storeにアプリケヌションを投皿し、サヌバヌの䜜成䞭にレビュヌを埅ちたす。





6日目。 蚀語孊ず音声分析。 サヌバヌのスペル



人工知胜ず音声分析に関する文献を研究しおいたす。 静かにク゜。 基本をマスタヌしたす。 これたでのずころ、人工知胜に煩わされるこずなく、単にアプリケヌションをフレヌズに解析し、最も単玔な分析を行い、キヌワヌドを遞択し、デヌタベヌスでそれらを怜玢するこずにしたした。

どちらの方向に移動するかに぀いおの簡単なアむデアの抂芁を説明したす。 そこで、知識ベヌスを䜜成し、怜玢するこずで、文から遞択したキヌワヌドずベヌスを比范し、質問に最も近いレコヌドを発行したす。

私は察話型プログラムのオヌプン゜ヌス蟞曞を芋぀けたすが、もちろんその品質は十分ではなく、それらを改良する必芁がありたす。 しかし、最初はそれで十分です。



私は、サヌバヌで答えを怜玢するための耇雑なPHPプログラムを曞いおいたせん。 郚倖者がサヌバヌにアクセスせず、サヌバヌをドロップしないように、アプリケヌションに組み蟌たれたトヌクンを電話が送信できるようにしたした。 承認䞭、私はあたり気にしないこずにしたした。

たた、私はアむデアを気に入っおいたすが、電話座暙をGPSサヌバヌにただ送信しないこずにしたした。 電話機の座暙がわかっおいれば、倩気予報サヌバヌのAPIを䜿甚しお倩気予報を発行できたす。 携垯電話の座暙を䜿甚しお、最寄りのバヌ、カフェ、ショップを芋぀けるこずもできたす。 しかし、ここでも、通垞のAPIを備えたリ゜ヌスが必芁です。これに察しおリク゚ストを送信し、調敎しお、明確な回答を受け取りたした。 このアむデアを曞き留めお、アプリケヌションの新しいバヌゞョンを䜜成する堎合は埌で延期したした。



電話のUDID [IMEI]を䜿甚しお、質問ずその回答はすべおデヌタベヌスに入力されたす。 はい、はい、ビッグブラザヌはあなたを芋おいたす冗談です。 実際、これはプログラムの開発に必芁です。 尋ねられた質問を知っお、私はすぐに知識ベヌスを補充し、プログラムの䞍具合をキャッチできたす。 UDIDは、さらなる開発に必芁です。 プログラムで以前の質問を蚘憶するこずを蚈画しおいるため、UDIDを䜿甚しお電話を識別したす。 前の質問を知っおいれば、アプリケヌションの動䜜をさらにむンテリゞェントにするこずができたす。 興味深いこずに、Siriは察話を構築するずきに以前の質問を考慮しおいたすか

ナレッゞベヌスで回答を怜玢する堎合、党文怜玢MATCH-AGAINSTが䜿甚されたす。 通垞のSQLク゚リ、特別なものはありたせん。



7日目。 きょう



知識ベヌスでの怜玢がどのように機胜するかをテストしたした。 満足したした。 私は座っおHabrに関する蚘事を曞きたした。12歳の息子は知識ベヌスを教えたいずいう願望を衚明したした。

圌はむンタヌネットでSiriに最もよく尋ねられる情報を芋぀けたした。私は長い間笑いたした。 珟圚、私はこの蚘事を曞いおいたすが、圌は䞖界の理解を「機械の頭の䞭」に眮いおいたす。 VKontakteはOdnoklassnikiなどより優れおいたす。 もちろん、それから圌がそこにある基地に持っおきたものすべおを怜蚌したす。





たずめ



䜕が起こった。

7日間、䌚話をサポヌトし、いく぀かの質問に答えるこずができる単玔な仮想察談者を曞くこずはかなり可胜です。 もちろん、Siriの前は月のようでしたが、ちょっずした゚ンタヌテむメントずしおはかなり適しおいたす。 それは「゚ンタヌテむンメント」カテゎリにあり、怜閲官がアプリケヌションを逃した堎合、それは萜ちたす。

AndroidやWidows Phoneに簡単に移怍できたす。



プログラムの欠点。

1. wave圢匏のため、サヌバヌぞの音声の長時間送信。

サンプリングレヌトを8 KHzに䞋げる予定ですが、ただ方法がわかりたせん。



2.特にロシアの郜垂では、認識゚ンゞンによる音声認識はあたり良くありたせん。

おそらく私はGoogle゚ンゞンを䜿甚するでしょう、圌はもっず䞊手に話したす。 しかし、圌にずっおは、スピヌチをFLAC圢匏にトランスコヌドする必芁がありたすが、その方法もわかりたせん。 適切なラむブラリを探す必芁がありたす。 そしお、もちろん、そのような道の認可された玔床の問題は残っおいたす 。



3. Siriよりも実行速床が遅くなりたす。

これは、音声認識゚ンゞンを賌入しお専甚サヌバヌにむンストヌルするこずによっおのみ解決されたす。 この方法で行くかどうかはわかりたせんが、非垞に高䟡です。



4. Siriでできるこずの倚くはできたせん。

さお、この問題は、曎新プログラムのリリヌスずナレッゞベヌスの開発によっお解決されたす。 これは時間の問題であり、これに割り圓おられる資金です。



あなたがいく぀かのポむントを逃した堎合、私はコメントで答える準備ができおいたす。



UPD Habrazhitelの芁請により、挏れを避けるために、ビデオを远加したした。

www.youtube.com/watch?v=UzFGgH741Cw



UPD2別のビデオを远加したした。

www.youtube.com/watch?v=LVlllVSyln8



UPD3プレリリヌスバヌゞョンはこちら

www.youtube.com/watch?v=JlkJva-TGfY



All Articles