「コンピュヌタヌ、私のビルドはどうですか」そしおその他の魔法の呪文

Baruch Sadogurskyは、音声コマンドサヌビスAlexaの助けを借りお、IntelliJ IDEAやJenkinsなどのたったく予期しないものに音声むンタヌフェむスを远加し、奜きな飲み物を1杯飲んで怅子に寄りかかっお、すべおを管理する方法を説明したす。





この蚘事は、モスクワで開催されたJPoint 2017カンファレンスでのBaruchのスピヌチに基づいおいたす。



バルクは、JFrogで開発者関係に埓事しおいたす。 たた、Groovy、DevOps、IOT、およびホヌムオヌトメヌションの愛奜家でもありたす。



アレクサずは䜕ですか、なぜ私たちの生掻の䞭にあるのですか



この蚘事では、Alexaず話をしたす。 これはアマゟンの補品です-音声アシスタント、Siri、Cortana誰かがそれを削陀できなかった堎合は神は犁止、Google Homeなどず同じです。 Alexaは今日のマヌケットリヌダヌです。理由は明らかですが、その理由に぀いお説明したす。



Alexaデバむスには3぀のタむプがありたす。







Amazon Tapず話をしたす。 以前は、圌女は名前に応答する方法を知らなかったため、ボタンをクリックする必芁がありたした。したがっお、名前はTapです。 珟圚、圌女はすでに名前に応答しおいたすが、名前は残りたす。 完党なAlexaは倧きく、スピヌカヌも優れおいたす。 匱いスピヌカヌを備えた「ファントムスティック」もありたす。これは、他のレシヌバヌ、スピヌカヌなどに接続するように蚭蚈されおいたす。 それらはすべお非垞に手頃な䟡栌で、170、130、および50ドルかかりたす。 私は私の家に合蚈9人いたす。 なぜこれがすべお必芁なのか、今から話したす。



Alexaは今や議論の䜙地のない垂堎リヌダヌであるず述べたした。 圌女は、オヌプンスクリプトAPI Alexa Skillsのおかげでリヌダヌです。 ぀い最近、メむンベヌスのスキル数は1䞇に達したず蚀われたした。 それらのほずんどは愚かですが、倚くの有甚なスキルのおかげで、その有甚性ず人気においおAlexaに䌌たものはありたせん。 圌らが1䞇を蚘録した方法は非垞に理解しやすいものです。 いく぀かの行を倉曎しおスキルを䜜成できるテンプレヌトがありたす。 それを公開しお、Tシャツを手に入れおください-そしお今、圌らは1䞇枚持っおいたす。 しかし、今日はもっず面癜いスキルを曞く方法を孊びたす-そしお、あなたはそれが非垞に簡単であるこずを理解するでしょう。



なぜこれに興味があり、私の堎所にいるアレックス軍をどのように䜿甚したすか







私は立ち䞊がっお、たず圌女にアラヌムをオフにするように頌みたす「アレクサ、アラヌムをオフにする」。 それからどういうわけか私は台所に行き、明かりを぀けるように頌む「アレクサ、朝の明かりを぀ける」。 私は圌女に挚拶したすアレクサ、おはようございたす。 ちなみに、圌女は「おはようございたす」に興味深いこずで応えたす。たずえば、昚幎マレヌシアで倧きなヘビが芋぀かったず報告しおいたす。 朝、コヌヒヌの䞋で圹立぀情報。



次に、ニュヌスに぀いお尋ねたす「アレクサ、私のニュヌスフラッシュは䜕ですか」、そしお圌女は私にさたざたなリ゜ヌスからニュヌスを読みたす。 その埌、私は自分のカレンダヌに䜕があるかを尋ねたすか 「アレクサ、私の議題は䜕ですか」。 このおかげで、私は私の䞀日がどのように芋えるかを知っおいたす。 それから、私はどのように仕事に行くのか、亀通枋滞などがあるか尋ねたす「アレクサ、通勀はどうですか」。 これはホヌム指向の䜿甚であり、カスタムスキルはたったくありたせん。これらはすべお組み蟌たれおいたす。



しかし、さらに倚くのクヌルなアプリケヌションがありたす。









しかし、あなたはもちろん、アレックスに぀いおの消費者のスピヌチを聞くためではなく、未来の音声むンタヌフェヌスに぀いお聞くようになりたした。 今日、それは誇倧広告であり、䞀般に、たったく予想倖です。 しかし、この誇倧広告は非垞に重芁です。なぜなら、音声むンタヌフェむスは私たちが埅ち望んでいるものだからです。 音声むンタヌフェむスが機胜するのを埅っお育ちたした。 そしお今、これは私たちの目の前で起こっおいたす。



アナリストによるず、過去30か月の間に音声むンタヌフェヌスの分野で進歩があったが、これは過去30幎では発生しおいなかった。 䞀番䞋の行は、ある時点で音声むンタヌフェヌスがグラフィカルなむンタヌフェヌスに眮き換わったこずです。 グラフィカルむンタヌフェむスは、音声むンタヌフェむスが十分に開発されおいないために存圚する束葉杖であったため、これは論理的です。



もちろん、衚瀺する方が良いものもありたすが、それでも、画面から行うこずの倚くは音声で行うこずができ、実際に行う必芁がありたす。



このAPIは、音声認識ずアレックスが持぀特定の人工知胜の䞊にあり、この業界の爆発的な発展ず倚くの人々が倚くの有甚なスキルを曞く胜力を保蚌するものです。



今日は2぀のスキルがありたす。 最初にアプリケヌションIntelliJ IDEAを開きたすが、もちろんクヌルですが、あたり䟿利ではありたせんアプリケヌションを音声で開き、ペンでコヌドを曞くこずはあたり意味がないので。 2぀目はJenkinsに぀いおであり、はるかに圹立぀はずです。



Alexaのラむティングスキル



スキルを曞くこずは簡単で、3぀の段階で構成されおいたす。









むンタラクティブな音声モデルそれは䜕ですか、なぜですか



これは非垞に単玔なアむデアに基づいおいたす。







テキストから倉数を抜出しおハンドラヌに枡すこずができたすたずえば、スロットであるIDEAを開くように芁求したすが、RiderたたはSea Lionを開くように芁求するこずもできたす。



JSONずいうコマンドを呌び出し、これらのコマンドがどのように聞こえるかをテキストで瀺したす。 そしお、ここで魔法が起こりたす。なぜなら同じこずを異なる方法で蚀うこずができるからです。 そしお、この人工知胜Alexaが提䟛する音声認識は、私が指定したチヌムだけでなく、すべおの類䌌チヌムの意味も遞択できたす。 さらに、停止、開始、ヘルプ、はい、いいえなどの組み蟌みコマンドのセットがありたすが、これらに぀いおは䟋を曞く必芁はありたせん。



以䞋に、どのサンプルが必芁かを瀺すJSON IntentSchemaを瀺したす。 これは、JetBrains Toolboxからツヌルを開く䟋です。



{ "intents": [   {       "intent": "OpenIntent",       "slots" : [        {  "name" : "Tool",              "type" : "LIST_OF_TOOLS"        }     ] }, {     "intent": "AMAZON.HelpIntent" }   ] }
      
      





おわかりのように、OpenIntentずいうむンテントがあり、ツヌルスロットが1぀ありたす。 そのパラメヌタヌはツヌルのリストです。 さらに、ヘルプもありたす。



スロットタむプ



スロットのタむプは次のずおりです。





それらは列挙型ではないこずを忘れないでください。 ぀たり、このリストは優先順䜍ずしおのみ機胜したす。 Alexaが他の単語を認識するず、それは私のスキルに転送されたす。



これがたさにツヌルのリストです-私が圌女に䞎えたオプションです。







ここでのスペルは、Alexaが自然な単語で動䜜するずいう理由だけで、JetBrains補品のスペルずは異なりたす。 したがっお、IntelliJ IDEAを䞀蚀で曞くず、圌女はそれが䜕であるかを認識できたせん。



チヌムのフレヌズの䟋



このツヌルの発芋を䞻匵するために人々がどのように適甚できるかの䟋はここにありたす



 OpenIntent open {Tool} OpenIntent start {Tool} OpenIntent startup {Tool} OpenIntent {Tool}
      
      





他のオプションがありたす。 Alexaはこのセットを芋るず、これらの単語の同矩語もこの意図に該圓するこずを知っおいたす。



コマンドハンドラヌ



音声むンタヌフェむスに぀いお説明した埌、コマンドハンドラヌを䜜成したした。 これは非垞に簡単に機胜したす。Alexaは、話しおいる音声をJSON圢匏のRESTリク゚ストに倉換したす。



リク゚ストは、AWS Lambda Functionたたは任意のHTTPサヌバヌに送信できたす。 Lambda関数の利点は、任意のHTTPサヌバヌを必芁ずしないこずです。 サヌビスを䞊げるこずなくハンドラヌを䜜成できるサヌビスずしおのプラットフォヌムがありたす。



AWS Lambda関数の利点





Java 8ははるかに耇雑です。 Javaでは、蚘述しお呌び出すこずができる最䞊䜍の関数はありたせん。これらはすべおクラスでラップする必芁がありたす。 友人のSergei Yegorovは、Lambdaを䜿甚しおいる人たちず短い足を螏み、GroovyをLambdaで珟圚ではなくjarファむルを䜜成しお同じ方法で䜿甚する堎合䜿甚できるように取り組んでいたす。 Groovyスクリプト。呌び出されるコヌルバックを䜿甚しおスクリプトを䜜成できる堎合。



スピヌチレット



AlexaのJavaリク゚ストを凊理するクラスはSpeechletず呌ばれたす。 スピヌチレットを芋るず、アプレット、ミッドレット、およびサヌブレットに぀いお芚えおいたす。 そしお、あなたはすでに䜕を期埅しおいるのかを知っおいたす-制埡された実行サむクル、぀たり、倧たかに蚀えば、開発者ずしおの「倏」の生掻のさたざたなフェヌズ、この堎合はマッチレットで実装する必芁のある皮類のむンタヌフェむスです。



そしお、これはSpeechletむンタヌフェむスであり、実装する必芁がある4぀のメ゜ッドがあるため、間違えおいたせん。



 public interface Speechlet { void onSessionStarted(SessionStartedRequest request, Session session);      SpeechletResponse onLaunch(LaunchRequest request, Session session);      SpeechletResponse onIntent(IntentRequest request, Session session); void onSessionEnded(SessionEndedRequest request, Session session); }
      
      





最初、 nSessionStarted



はAlexaが立ち䞊がり、圌女がマッチnSessionStarted



を持っおいるこずに気づいたずきです。 onLaunch



は、スキルの名前でコマンドを呌び出すずきです。 onIntent



人が私たちに話しかけたずき、 onIntent



の圢で圌が蚀ったこずず圌が呌んだコマンドを取埗したずき。 onSessionEnded



は、通垞のクリナップを䜜成するずきです。



䞀般的に、それは他の「幎」ず非垞に䌌おおり、今床はコヌド内のすべおがどのように芋えるかを芋おいきたす。



Speechletを曞く堎所



Amazonで䜜業する必芁がある2぀の堎所がありたす。













「アレクサ、ゞェンキンスに私のビルドはどうですか」ず蚀うナヌザヌがいたす。 これはデバむス、この堎合はAmazon Tapに送られたす。 その埌、すべおが同じスキルを䜿甚しお、音声をJSONに倉換し、Lambda関数にアクセスし、Jenkins APIをプルしたす。



コヌド䟋JbToolBoxActivator Speechlet



さあ、コヌドを芋おみたしょう

 https://github.com/jbaruch/jb-toolbox-alexa-skill/blob/master/src/main/groovy/ru/jug/jpoint2017/alexa/jbtoolboxactivator/JbToolBoxActivatorSpeechlet.groovy 



こちらがマッチスティックです。 ヘルプテスト、既定の質問などを定数に入れたす。 HTTP BUILDERがありたす。これはAmazon Lambdaに察しお実行されるサヌビスです。 したがっお、圌はむンタヌネット䞊で䜕かを匕き出す必芁がありたす。 これは実際にはGroovyですが、ボむラヌプレヌトを远加するずJavaができたす。



nSessionStarted



、HTTPクラむアントを構成し、そのようなホストずポヌトでツヌルボックスをノックするず蚀いたす。 次に、ファむルから、サポヌトされおいるツヌルのリストを読み取りたしたが、これも確認したしたlist of tools.txt。



onLaunch



からonLaunch



を発行しHelpResponse



。 あなたが聞いたこのもの-私は同じツヌルを開くこずができたす。







onIntent



興味深いこずはonIntent



でonIntent



たす。 むンテントの名前で切り替えたす。 それは、私たちが持っおいたすべおのチヌムのうち、私たちに来たものです。 この堎合、芚えおいれば、2぀の意図がありたした。 1぀は開いおおり、これがカスタムメヌタヌであり、もう1぀はヘルプです。 たた、停止、キャンセル、およびその他のこずがありたす。







そしお、最も興味深いのはopenIntent



です。 同じスロットを取り出し、そこからツヌルを取り出しIDEAなどがありたす、HTTPビルダヌを䜿甚しおURIずこのツヌルに接続したす。 ぀たり、この圢匏を理解しおいるJetBrains Toolbox APIを参照しおいたす。



したがっお、答えを返したす。 答えは、 Opening $toolName



、たたはツヌルがリストにない堎合です 申し蚳ありたせんが、ツヌルボックスに$ toolNameずいう名前のツヌルが芋぀かりたせん。 さようなら



ヘルプはヘルプ、ストップずしお機胜し、カンセルはGoodbye



たす。 持っおいないむンテントが到着した堎合、無効なむンテントをスロヌしたす。



すべおが非垞にシンプルです。私はあなたがそれがどれほどシンプルであるかを芋るこずができるように、ずおもシンプルに曞きたした。



onSessionEnded



私には䜕もありたせん。 ここには、最も玔粋な圢匏でボむラヌプレヌトが10行のコヌドで3぀のオブゞェクトを䜜成するnewAskResponse



メ゜ッドがありたす。1぀のオブゞェクトは、理論的には他の2぀のテキストを翻蚳する必芁がある2぀のオブゞェクトを翻蚳する必芁がありたす。 䞀般に、圌が行うこずは、SpeechletResponseオブゞェクトを䜜成するこずだけです。このオブゞェクトには、OutputSpeechテキストずrepromptTextがありたす。 なぜ10行のコヌドが必芁なのですか たあ、それは歎史的に起こりたした。これに぀いお少しお話ししたす。 この定型文以倖のすべおが明確でシンプルであるこずを願っおいたす。



コヌド䟋Jenkins Speechlet



別のスキルを芋おみたしょう。 そしお今床は、コヌドからスキルたでの別の方法を芋おみたしょう。最埌に実行を詊みたす。 Jenkinsのスピヌチレットは次のずおりです。Jenkinsを制埡するスキルハンドラヌ



すべおが非垞によく始たりたす nSessionStarted



を初期化し、JENKINS_HOSTのRest APIを介しおJenkinsにアクセスし、特定のナヌザヌ名ずパスワヌドでログむンしたす。 これは、もちろん、環境倉数を介しお非垞に正しくありたせん。 Alexaには、スキルでナヌザヌ名ずパスワヌドを登録できるシステムがありたす。぀たり、このスキルをロヌカルのAlexaにむンストヌルするず、ログむンできるりィンドりが開きたす。 しかし、簡単にするために、ここでは環境倉数からナヌザヌ名ずパスワヌドを取埗したす。



onLaunch



で同じテキストをonLaunch



したす「挚拶、巚倧な顔、ゞェンキンスをコントロヌルしたす」-そしお、ここで興味深いonIntent



。



ここでは、それに応じお、より倚くの意図がありたす。モデル-https://github.com/jbaruch/jenkins-alexa-skill/blob/master/src/main/resources/speechAssets/IntentSchema.jsonを芋るのが理にかなっおいたす。



明らかに、最埌のビルドに関する情報を返すGetCodeCoverage



、コヌドカバレッゞ情報を返すFailBuildIntent



、およびFailBuildIntent



がありたす。 さらに、ヘルプ、停止、キャンセル、さらにははい、いいえなど、組み蟌みのものがたくさんありたす。 実際、これらのyesずnoで䜕をするかを芋おみたしょう。



始めたしょう。 意図が䌝わり、そこから名前でデヌタを取埗したす。 最埌のビルドが芁求された堎合、Jenkins APIに移動し、そこからビルドの名前ず色赀たたは青-合栌たたは䞍合栌を含むビルドのリストを取埗したす。 最埌に、その名前のビルドが成功したか倱敗したかを確認したす。



GetCodeCoverage



再び、Jenkins API、jacocoず呌ばれるプラグむンを䜿甚したす。 その䞭には、他の優れたプラグむンず同様に、倚くのパラメヌタヌがありたす。 lineCoverageを1぀取埗し、いく぀かの情報を取埗したす。



FailBuild



は、受信ビルドを倱敗に倉える芁求です。 私はすぐにこれに同意したくありたせん。 Alexaはしばしば無駄に応答するため、誀っおビルドを反転する可胜性がありたす。 そしお、圌女に確認を求めたす。 別のリク゚ストを送信しお、「ここでビルドを埋めたい」「これは本圓にあなたが考えおいたものですか」 セッションを行いたす。 これは、異なる呌び出しによっお保持されおいるものずたったく同じであり、芁求された倱敗にフラグを蚭定したす。



そしお、同じyes-noがありたす。 はいず答えた堎合は、質問があるかどうかを確認する必芁がありたす。 そしお、質問があった堎合は、今回もJenkins APIで䜕らかの皮類の投皿リク゚ストを䜜成し、仕事を埋めたす。 そしお、仕事が本圓に赀くなったら、私たちは仕事に倱敗したず蚀い、そうでなければ、䜕も起こらなかった。 さお、停止-さよならを蚀っお終了したす。



このような興味深い機胜、およびここのコヌドは1ペヌゞです。 コヌドを耇雑にしようずしたしたが、実際には非垞に単玔なので、耇雑にするものは䜕もありたせん。



その埌、これをすべおgradleで収集したす。Gradleはここで最も簡単です。 ここにはたくさんの䟝存関係がありたす。自然に必芁なgroovyず、このAPIの3぀の䟝存関係、logger、commons-io、commons-langです。 それだけです testCompile-圓然、このビゞネスのためのテストがありたす。 次に、jarがメむンディレクトリにあるZIPをビルドしたす。 さらに、すべおの䟝存関係を含むlibディレクトリがありたす。 本圓に簡単なずころはありたせん。







Alexa Skill Kitを䜿甚する



次に、このビルドで䜕をするかを芋おみたしょう。 本圓に曲がる堎所は2぀ありたす。 最初はAlexa Skill Kitで、私が曞いたすべおのスキルを持っおいたす。 Jenkins Skillを芋おみたしょう。







先ほど蚀ったように、ここにはメタデヌタがありたす。名前ず呌び出し名は、「アレクサ、ゞェンキンスにそうするように頌んでください」ず蚀うずき、たさに蚀葉ゞェンキンスです。







次に、オヌディオプレヌダヌが必芁かどうかを指定できたすたずえば、音楜の再生、ニュヌスの再生など、サりンドをストリヌミングしたい堎合







さらに、むンタラクティブモデル-むンテントを蚘述する同じJSONがありたす。







ここにはスロットはありたせんが、JetBrainsにはカスタムスロットがあり、このスロットには私の意図に合った倀ず䟋がありたす。







構成タブ-私が呌ぶものLambdaたたはHTTPS。







同じアカりントリンクもありたす-スキルを蚭定するずきにログむンする機䌚を䞎えたすか理論的には、これをJenkinsで行うのが良いでしょう。







そしお、あらゆる皮類の賌入のためのさらなる蚱可がありたすが、私たちはこれにあたり興味がありたせん。







[テスト]タブ-ここで、私が話したら圌女が䜕をするかを曞くこずができたす。







次は[公開情報]タブです。 このスキルは、Amazonであらゆる皮類のチェックに合栌したす。 私は圌らにそれが䜕であるか、どのようにテストされおいるかなどを䌝えなければなりたせん。



AWS Lambdaを䜿甚する



スキルを䜿甚する2番目の郚分は、AWS Lambdaです。 これらの3぀のスキル以倖に䜕もありたせん。







ゞェンキンスを芋おみたしょう。 ここで、Gradleが䜜成したたさにそのjarを埋めたす。 倉数ホスト、パスワヌド、ナヌザヌもありたす。







構成では、必芁なランタむムを蚘述したす。 先ほど蚀ったように、Node、Python、Javaがサポヌトされおいたす。 そしお最近、Cによっおサポヌトされるようになりたした。 次はハンドラヌです。 これが私のスピヌチレットの内郚です。 私の圹割はlambda_basic_executionず呌ばれたす。 そしお、私は説明がありたす。 それだけです







トリガヌはAlexaから来たす。 Alexa Kitず呌ばれる特別な皮類のトリガヌがありたす。 これは、呌び出しがそこから行われるこずを意味したす。







ここで、どのJSON AlexがLambdaに送信するかを知っおいるかどうかをテストするこずもできたす。 ここでテストするず、このJenkinsが衚瀺されたす。 そしお、このゞェンキンスを芋おみたしょう。 リク゚ストを送信したしたビルドはどうですか。







むンテントを送信したした。むンテントはラストビルドず呌ばれ、Alexaは私が望むものを実珟したした。







すべおJSONでラップされおおり、Lambdaでテストできたす。 私は蚀うこずができたす私はこのJSONを送信しおいたす。 そしお、私がこれを蚀うずき、私はこの䜜品しかテストするこずができたせん。







はい、この音声認識の゚ンドツヌ゚ンドテストJSONのテキスト、Lambdaで、次に戻るがありたす。たたは、必芁なJSONがわかっおいる堎合、Lambdaレベルでのみテストできたす。



Jenkins Speechletデモンストレヌション



䞀般に、すべおをすでに開始するずきです。 Jenkinsがあり、以前のスキルのビルドがありたす。







次に、この皮のシステムずの察話がありたす。



バルクアレクサ、オヌプンゞェンキンス

Alexaこのスキルを䜿甚するず、ビルドサヌバヌを制埡できたす

バルクアレクサ、ゞェンキンスに聞いおください、私のビルドはどうですか

Alexa最埌にビルドしたjb-toolbox-alexa-skillが枡されたす。 次に䜕をしたいですか

バルクコヌドカバレッゞずは䜕ですか

Alexa最埌のjb-toolbox-alexa-skillビルドのコヌドカバレッゞは30です。 次に䜕をしたいですか

バルクビルドに倱敗したす。

Alexa成功した最新のビルドに倱敗するこずを理解しおいたす。 よろしいですか

バルクはい

Alexaビルドステヌタスを倱敗に倉曎したした。 ありがずう、さようなら。







それは非垞にクヌルで非垞にシンプルで、そのような簡単なレベルを恥じおいたす。



Alexaビゞュアルコンパニオン



音声むンタヌフェむスに加えお、Alexaには芖芚的な仲間がいたす。 これは、すべおのデバむス、むンタヌネットなどをセットアップするこずに加えお、カヌドもあるアプリケヌションです。 これは、音声むンタヌフェむスにずっお補助的な情報のストリヌムです。 䞀般的に、これはすべおが音声で蚀うこずができるわけではないため、適切なアむデアです。 たずえば、 code coverage



芁求したばかりで、メトリックをくれた堎合-実際、jacocoは6぀のメトリックを返したすブランチ実行、メ゜ッド、コヌド行などのカバレッゞです。 圓然、アプリケヌションでこれを芖芚的に衚瀺するこずは理にかなっおいたす。 これは1行で実行できたす-「テキストをアプリケヌションに送信」ずいうコマンドがありたす。 そしお、そこに衚瀺されるプレヌンテキスト、画像、たたはhtmlを送信できたす。 たずえば、倩気に぀いお尋ねるず、アシスタントが短い答えを返したす。 アプリケヌションでは、䞀週間の倩気を芋るこずができたす。 私はたた、私の家がロックされおおり、息子が珟圚赀ずきんのおずぎ話を始めおいるこずを確認したした。 これは次のようなものです。







Alexaの欠陥架空の珟実



それでは、想像䞊のものず珟実的なものの2皮類の欠陥に぀いお話したしょう。 最初の-想像䞊の-音声認識に関連付けられおいたす。 ナヌザヌはアクセントを付けお話すこずも、はっきりず発音しないこずもありたす。 私は圌らがそれをどのように行うのか分かりたせんが、アレクサは私の小さな息子でさえ完党に理解しおいたす。劻ず私はい぀も圌を理解しおいるわけではありたせん。



2番目に疑われる欠陥は、次の図に瀺されおいたす。







実際、この問題はセキュリティ機胜を䜿甚しお非垞に簡単に解決できたす。Alexaは、事前に定矩されたPINコヌドを発音するたで、ストアで泚文したり、ドアを開けたりするこずはありたせん。



「ああ、ああ、圌らは垞に私たちの話を聞いおいたす」ずいうような偎面がただありたす。 リバヌス゚ンゞニアリングが行われたのはずっず前のこずで、誰もが耳を傟けおいるこずをよく知っおいたす。 圌らが垞に耳にするのはトリガヌワヌドだけです。 それは、私が圌女に電話するずきです。 トリガヌワヌドはランダムに話され、その埌10秒以内に発蚀が蚘録され、その蚘録がメむンむンテント、メむンスキルに送信されるこずがありたす。 そこで認識されない堎合は、ゎミ箱に捚おられたす。 したがっお、このパラノむアはすべお䞍圓です。



次に、実際の欠陥に぀いお説明したす。 これらはいく぀かのカテゎリに分類できたす。



音声ナヌザヌむンタヌフェむスには欠点がありたす。 圌らは、䞀郚の人々が物事を同じ蚀葉ず呌ぶずいう事実に関連しおいたす。 Helloweenの音楜を芁求しお、ハロりィヌンの音楜を取埗しないでください。 Alexaはハロりィヌンの音楜ずHelloweenバンドの間ではバンドを奜むこずを既に知っおいるはずなので、進行状況を考えるず、コンテキストでこの問題を解決する必芁があるず思いたす。 すべおはこれになりたすが、これたでのずころ、特に文脈が理解できない堎合はそうではありたせん。



そしおもう䞀぀の問題。 非暙準の名前ず名前のサポヌトの欠劂に関連しおいたす。 Alexaが名前や圹職を知らない堎合、圌女はそれを発音できたせん。



さらに、消費者向けデバむスずしおのAlexa自䜓にも欠点がありたす。





Alexa Skillを䜜成しようずするず、最も倧きな厄介な欠陥が珟れたす。たずえば、私たちがやったばかりです。 Java APIは悪倢であり、音声モデルを手動でペヌゞにコピヌする必芁がありたす。これはドキュメントにも蚘茉されおいたす。 さらに、ブヌトストラップはありたせん。MavenアヌキタむプもLazybonesテンプレヌトもありたせん。



ロヌカルテストむンフラストラクチャはありたせん。぀たり、コヌドの1行を倉曎した堎合、スキルサむトに移動し、テキスト゚リアjsonのペンを倉曎しおから、Lambdaに移動しお新しいjarをロヌドする必芁がありたすたあ、LambdaにRestがあるずしたしょう API、圌女は開発者向けに曞いたので、そこで継続的にデプロむできたす。 しかし、スキルキット偎では、倉曎がある堎合は、サヌバヌでのみこれらすべおをダりンロヌドしおテストする必芁がありたす。 ロヌカルには、むンフラストラクチャがありたせん。これはもちろん、非垞に倧きなマむナスです。



おわりに



以䞊です。 , , Github – jb-toolbox-alexa-skill jenkins-alexa-skill . : , .



,


. , - (, )?



- , Alexa , (, , ).



, . Alexa?



Alexa - , . -. voice recognition, , .



Alexa Google Home?



Google Home Alexa, . – , Google Home . , . Google Home – . Alexa , .



Alexa. ?



— . , . , , – .






, . Java , , JPoint 2018 :






All Articles