logo

Lately I’ve been using the Alexa-hosted option for many of the Alexa skills I’ve created. It’s a convenient skill-building option since I don’t have to switch between the Alexa developer console and the AWS Lambda Console. Prior to that, my favorite option was to use the Alexa Skills Kit (ASK) Command Line Interface (CLI) with Visual Studio Code. I was thrilled to learn that I can now use the ASK CLI with skills that are Alexa-hosted skills. You can even create new Alexa-hosted skills from the ASK CLI using the “ask create-hosted-skill” command.

Evolution of the ASK Toolset

When the Alexa Skills Kit was first introduced, developers used the developer console to manage their skill and the AWS console to manage code running in AWS Lambda. This was the toolset I used to build my first skill, and like so many others, I was hooked on building skills.

We created the ASK CLI to enable developers to manage both the skill and the code from the same tool. The CLI didn’t require interacting with a web interface. I really liked this because it was easy to keep all the parts of my skill together, and it didn’t require copy/paste to deploy my skill configuration and interaction model. It was also easy to deploy my Lambda function code.

In addition to using the ASK CLI on your local development machine, you could also now use the ASK CLI on AWS Cloud9. This means you could set up different environments for each skill. Or if you were doing work with multiple companies or with multiple accounts, you could keep the environments separate. I also liked that I could spin up a new environment in less than five minutes, complete with the ASK CLI. This allowed me access to all the features of Cloud9, including sharing the environment with my team, and integration with Lambda.

Fast-forward to late last year when we announced Alexa-hosted skills. While this option still used AWS Lambda as the compute platform, now you didn’t have to create an AWS account to host your skill.  In addition, you didn’t have to switch between the Alexa developer console and AWS Console to copy/paste the ARN into the endpoint field and copy/paste the Skill ID into the skill verification trigger. That was handled automatically! Couple this with ability to create and manage your in-skill products from the developer console, and you have a powerful skill-building package.

This convenience wasn’t the only difference. Behind the scenes, your skill code was being stored not in a simple database, but in AWS CodeCommit. This difference doesn’t require developers to use a new tool – you manage your code from within the developer console, including saving, deploying, and pushing to your live skill.

How Alexa-Hosted Skill Code Flows Through AWS CodeCommit to AWS Lambda

AWS CodeCommit is a fully managed source control service that hosts secure Git-based repositories. If you’re familiar with Git, you know your code is organized into branches. Typically, you’ll have a working branch and a branch that reflects the code you have running in your live service.

With Alexa-hosted skills, the code is organized into three branches in each skill repository: dev, master, and prod. The dev branch is where your code is stored when you click the Save button in the console. When you click the Deploy button, the code stored on the dev branch is merged into the master branch.  This code is combined with the dependencies noted in your package.json, and then deployed to your Lambda function. This version deployed from the master branch is used for your skill’s development endpoint and is the code which is run when you test your skill in the simulator.

When you promote your code to Live, the code from the master branch is merged into the prod branch.  From there it is deployed to your Lambda function. To keep the development and prod versions of the code running separately, each is deployed to as separate versions of the same function, with Lambda aliases pointing to the correct version.

Although I liked the convenience of the one-stop approach offered by the developer console, I still also liked doing things from a command line since it allowed me to use my preferred code editor. Now that you can interact with your Alexa-hosted skills using the ASK CLI, I’m excited to start using the ASK CLI more.At a high level, using the ASK CLI is the same with an Alexa-hosted skill as with one where you host the Lambda function in your own account. To get a local copy of your skill, you use the “ask clone” command, and to deploy your skill, you use the “ask deploy” command. (Remember to create an Alexa-hosted skill using the ASK CLI, use the “ask create-hosted-skill” command instead of “ask new”.)

When you get into the details, there are a few differences that you should be aware of. First, when you setup the CLI, you don’t need to provide AWS account credentials. All of the deployment actions are taken using your developer account credentials. The second difference is that the local copy of the code is cloned using Git from CodeCommit, and all three branches (dev, master and prod) are cloned.

Your normal working branch is the dev branch, just like if you were using the console. You also will work with the branch like any standard git branch, using “git add” to add new files and “git commit” to commit your changes. If you want to make your changes just visible in the developer console, you can do a “git push” of the dev branch.

When it comes time to deploy the changes you made, you can use the same ‘ask deploy’ command (or ‘ask deploy –target lambda’ to just update the skill code). When you do this, your local dev branch is merged to master, and local changes are pushed to the origin (or remote repo). That push triggers the deployment to the Lambda function.

If you want to use standard git commands to deploy your changes to your development endpoint, you can merge and push your changes to the master branch. Similarly, you can merge and push your changes to the prod branch to deploy your changes to your live skill. Keep in mind that making changes like this will only impact your skill’s code, not your skill’s interaction model, in-skill products, or skill configuration. The non-code changes need to be deployed normally using the “ask deploy” command in order to change your development version of your skill. In order to change the live version of your skill, you will submit it for certification just like normal.

I find that I no longer have a favorite skill-building approach and will bounce between hosted and non-hosted, CLI and GUI depending on the task at hand. Regardless of which type of tool you prefer, you’ll find a hosting method and both GUI and CLI options for building your skill. Tweet me at @FranklinLobb to let me know which is your favorite!

Resources

ASK CLI QuickStart

ASK Toolkit for Visual Studio

Alexa-Hosted Skills

 

Source: Alexa Developer Blog

apl-checkers-blog.png

編集注: 下記のAPLオーサリングツールのAPLコンポーネントのドラッグアンドドロップ機能が利用できるようになりました。テンプレートで使用する事前定義済みのAPLコンポーネントを、オーサリングツールのワークスペースから簡単にドラッグアンドドロップすることで、自動的にユーザー定義のAPLテンプレートを作成できます。この新機能で、マルチモーダルスキルのオーサリングエクスペリエンスが、さらに直感的でスムーズになります。

このほど、Alexa Presentation Language(APL)の新しいバージョンが公開されました。今回のバージョンでは、アニメーションがサポートされ、ベクターグラフィックスが含まれています。また、ツールが改善されたほか、複数のViewportプロファイルを含むAPLスキルの開発時間を短縮できるデザインシステムが導入されています。APL 1.1は、すべてのロケールのAlexa開発者にご利用いただけます。現時点では、Echo Show、Echo Spot、新しいEcho Show 5が対応しています。近日中に、Fire TVやFireタブレットなどのデバイスにも対応する予定です。デバイスでAPL 1.1がサポートされているかどうかは、スキルリクエストでsupportedInterfacesオブジェクトを調べて、Alexa.Presentation.APLオブジェクトのmaxVersionを確認することでわかります。

 

アニメーションで実現できるエクスペリエンス

APL 1.1では、新しいAnimateItemコマンドを使用できます。このコマンドを使用すると、任意のAPLコンポーネントやレイアウトの位置、スケール、回転、透明度をアニメーション化できます。また、AnimateItemをAlexa Vector Graphics(Scalable Vector Graphics標準のサブセット)と組み合わせることで、ユーザーを引き付ける、まったく新しいエクスペリエンスを作成できます。

以下のアニメーションでは、APLのベクターグラフィックスを使用して電球を作成しています。アニメーションはすべて、新しいAnimateItemコマンドを使用して作成されています。アニメーションとベクターグラフィックスの全機能は、開発者コンソールのスキルテストシミュレーターでサポートされており、APL 1.1をベースにしたエクスペリエンスのテストに使用できます。以下は、Echo Show 5でベクターグラフィックスとテキストをアニメーション化した例です。

apl-checkers-gif-1.gif

この例を作成するために使用したスキル応答は以下のとおりです。新機能を使用する前に、新しいenvironment.aplVersionプロパティを使用して、APL 1.1がサポートされているかどうかを確認している点に注目してください。APL 1.0までしかサポートしていないデバイスの場合、このAPLドキュメントでは静止したテキストで「Welcome to APL 1.0」が表示されます。APL 1.1をサポートしているデバイスでは、上記のアニメーションが表示されます。電球のアイコンは、新しいAlexa Vector Graphics(AVG)コンポーネントを使用して表現されたベクターグラフィックスです。AVGはScalable Vector Graphics(SVG)仕様のサブセットです。ここでは、Parallel APLコマンドによって並行して実行される複数のAnimateItemコマンドで、電球とテキストをアニメーション化しています。

{
    "directives": [
        {
            "type": "Alexa.Presentation.APL.RenderDocument",
            "token": "none",
            "document": {
                "type": "APL",
                "version": "1.1",
                "theme": "auto",
                "graphics": {
                    "lightbulb": {
                        "type": "AVG",
                        "version": "1.0",
                        "height": 48.0,
                        "width": 48.0,
                        "parameters": [{
                            "default": "white",
                            "type": "color",
                            "name": "fillColor"
                        }],
                        "items": [{
                            "type": "path",
                            "fill": "${fillColor}",
                            "stroke": "pink",
                            "strokeWidth": 1,
                            "pathData": "M15.001,15c-0.032,0-0.064-0.001-0.096-0.004c-0.55-0.053-0.953-0.541-0.9-1.091c0.449-4.682,4.189-8.425,8.895-8.9 c0.56-0.052,1.041,0.346,1.096,0.895c0.055,0.55-0.345,1.04-0.895,1.096c-3.759,0.379-6.747,3.365-7.105,7.1 C15.946,14.613,15.51,15,15.001,15z M30.5,43c0-0.553-0.448-1-1-1h-11c-0.552,0-1,0.447-1,1s0.448,1,1,1h11 C30.052,44,30.5,43.553,30.5,43z M30.5,47c0-0.553-0.448-1-1-1h-11c-0.552,0-1,0.447-1,1s0.448,1,1,1h11 C30.052,48,30.5,47.553,30.5,47z M37.906,19.845c-0.54,1.272-1.177,2.482-1.821,3.652c-0.432,0.784-0.879,1.594-1.272,2.4 c-1.158,2.374-1.962,4.901-2.389,7.512c-0.041,0.251-0.075,0.513-0.11,0.779C32.074,35.988,31.676,39,28.304,39h-8.607 c-3.372,0-3.769-3.012-4.007-4.812c-0.036-0.267-0.068-0.528-0.109-0.779c-0.427-2.611-1.227-5.139-2.385-7.513 c-0.394-0.805-0.833-1.616-1.265-2.399c-0.645-1.17-1.296-2.38-1.836-3.652c-1.772-4.171-1.285-8.833,1.284-12.788 C13.964,3.076,18,0.457,23,0.059V0.008L23.938,0l0.006,0.003L25,0v0.059c5,0.398,9.036,3.017,11.622,6.998 C39.191,11.012,39.678,15.673,37.906,19.845z M31.781,28H16.219c0.589,1.651,1.047,3.348,1.331,5.087 c0.044,0.271,0.082,0.553,0.12,0.839C17.98,36.271,18.3,37,19.696,37h8.607c1.396,0,1.716-0.729,2.026-3.074 c0.038-0.287,0.075-0.568,0.12-0.839C30.734,31.348,31.191,29.651,31.781,28z M35.003,8.146C32.592,4.434,28.414,2.082,24.1,2.008 l-0.118-0.002L23.9,2.008c-4.314,0.074-8.492,2.426-10.903,6.138c-2.201,3.389-2.599,7.368-1.091,10.917 c0.5,1.179,1.113,2.291,1.762,3.469c0.443,0.805,0.902,1.638,1.317,2.487c0.157,0.322,0.29,0.654,0.435,0.981h17.16 c0.145-0.327,0.278-0.659,0.435-0.98c0.416-0.85,0.874-1.683,1.317-2.488c0.649-1.178,1.262-2.29,1.762-3.468 C37.602,15.514,37.204,11.535,35.003,8.146z"
                        }]
                    }
                },
                "import": [{
                    "name": "alexa-layouts",
                    "version": "1.0.0"
                }],
                "mainTemplate": {
                    "parameters": [
                        "payload"
                    ],
                    "item": {
                        "type": "Frame",
                        "width": "100%",
                        "height": "100%",
                        "backgroundColor": "black",
                        "item": {
                            "type": "Container",
                            "width": "100vw",
                            "height": "100vh",
                            "items": [
                                {
                                    "type": "VectorGraphic",
                                    "when": "${environment.aplVersion == '1.1'}",
                                    "id": "imageId1",
                                    "source": "lightbulb",
                                    "fillColor": "yellow",
                                    "position": "absolute",
                                    "width": "30vw",
                                    "height": "30vw",
                                    "left": "10vw",
                                    "top": "30vh",
                                    "opacity": 0
                                },
                                {
                                    "type": "Text",
                                    "text": "Welcome",
                                    "color": "teal",
                                    "textAlign": "center",
                                    "fontSize": 38,
                                    "id": "textId1",
                                    "opacity": "${environment.aplVersion == '1.1' ? 0 : 1}"
                                },
                                {
                                    "type": "Text",
                                    "top": "20dp",
                                    "text": "to",
                                    "color": "grey",
                                    "textAlign": "center",
                                    "fontSize": 50,
                                    "id": "textId2",
                                    "opacity": "${environment.aplVersion == '1.1' ? 0 : 1}"
                                },
                                {
                                    "type": "Text",
                                    "text": "${environment.aplVersion == '1.1' ? 'APL 1.1' : 'APL 1.0'}",
                                    "color": "crimson",
                                    "textAlign": "center",
                                    "fontSize": 92,
                                    "id": "textId3",
                                    "opacity": "${environment.aplVersion == '1.1' ? 0 : 1}"
                                }
                            ]
                        }
                    }
                }
            },
            "datasources": {}
        },
        {
            "type": "Alexa.Presentation.APL.ExecuteCommands",
            "token": "none",
            "commands": [{
                "type": "Parallel",
                "when": "${environment.aplVersion == '1.1'}",
                "commands": [
                    {
                        "type": "Sequential",
                        "commands": [{
                                "type": "AnimateItem",
                                "easing": "ease-in-out",
                                "duration": 6000,
                                "componentId": "imageId1",
                                "value": [{
                                        "property": "opacity",
                                        "to": 1
                                    },
                                    {
                                        "property": "transform",
                                        "from": [{
                                                "translateX": "100vw"
                                            },
                                            {
                                                "rotate": 720
                                            }
                                        ],
                                        "to": [{
                                                "translateX": 0
                                            },
                                            {
                                                "rotate": 0
                                            }
                                        ]
                                    }
                                ]
                            },
                            {
                                "type": "AnimateItem",
                                "easing": "ease-in-out",
                                "duration": 6000,
                                "componentId": "imageId1",
                                "value": [{
                                        "property": "opacity",
                                        "to": 1
                                    },
                                    {
                                        "property": "transform",
                                        "from": [{
                                                "translateX": 0
                                            },
                                            {
                                                "scale": 1
                                            }
                                        ],
                                        "to": [{
                                                "translateX": "25vw"
                                            },
                                            {
                                                "scale": 2.5
                                            }
                                        ]
                                    }
                                ]
                            },
                            {
                                "type": "Parallel",
                                "commands": [{
                                        "type": "AnimateItem",
                                        "easing": "ease-in-out",
                                        "duration": 4000,
                                        "componentId": "textId1",
                                        "value": [{
                                                "property": "opacity",
                                                "to": 1
                                            },
                                            {
                                                "property": "transform",
                                                "from": [{
                                                    "translateX": "100vw"
                                                } ],
                                                "to": [{
                                                    "translateX": 0
                                                } ]
                                            }
                                        ]
                                    },
                                    {
                                        "type": "AnimateItem",
                                        "easing": "ease-in-out",
                                        "duration": 6000,
                                        "componentId": "textId2",
                                        "value": [{
                                                "property": "opacity",
                                                "to": 1
                                            },
                                            {
                                                "property": "transform",
                                                "from": [{
                                                    "translateX": "-100vw"
                                                } ],
                                                "to": [{
                                                    "translateX": "0vw"
                                                } ]
                                            }
                                        ]
                                    },
                                    {
                                        "type": "AnimateItem",
                                        "easing": "ease-in-out",
                                        "duration": 8000,
                                        "componentId": "textId3",
                                        "value": [{
                                                "property": "opacity",
                                                "to": 1
                                            },
                                            {
                                                "property": "transform",
                                                "from": [{
                                                    "translateX": "100vw"
                                                }],
                                                "to": [{
                                                    "translateX": 0
                                                }]
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }]
        }
    ]
}

APL向けAlexaデザインシステム

画面付きのAlexa搭載デバイスのサイズや形状はさまざまです。画面付きのさまざまなAlexa搭載デバイスが利用可能になり、さらに多くのユーザーがデバイスを使用するようになっているため、APLスキルを迅速に作成してより多くのユーザーにリーチできるよう、最新のAlexaデザインシステムを導入しました。このデザインシステムにより、デザインする視覚エクスペリエンスの数が少なくて済むようになり、デザイン作業がスピードアップし、あらゆるデバイス向けに展開できます。

たとえば、alexa-stylesをAPLドキュメントに読み込み、textStyleBodyスタイルを使ってテキストのスタイルを作成すると、デバイスの一般的な視聴距離に合わせてテキストのサイズが自動的に調整されます。サイズは、Alexaデバイスに適した基本サイズを知るために実施した、ユーザーエクスペリエンスの調査から導き出したものです。Alexaデザインシステムのスタイルを利用すると、ユーザーが離れて見ることが多いTVでは、テキストやその他の視覚要素を別のデバイスで表示された場合とほぼ同じサイズで見ることができるよう、基本サイズを大きくすることができます。

ViewingDistance.gif

APL向けAlexaデザインシステムには、リソースとスタイルに加えて、APLドキュメントで使用できる新しいレスポンシブ対応コンポーネントとレスポンシブ対応テンプレートが導入されています。このレスポンシブ対応コンポーネントとレスポンシブ対応テンプレートでは、デバイスのモード、サイズ、形状に基づいた対応が行われるため、複数のデバイスを考慮した開発が簡単になります。レスポンシブ対応コンポーネントの例として、タッチデバイスやTVデバイスで必要な状態を備えたタッチ操作/選択可能要素であるAlexaButtonや、画像を表示するAlexaImageがあります。

レスポンシブ対応テンプレートは、レスポンシブ対応コンポーネントとプリミティブAPL UI要素(ScrollViewやPagerなど)を組み合わせたもので、Viewport全体を対象とするスタンドアロンのパターンを表示します。レスポンシブ対応テンプレートの例として、テキスト項目のスクロールリストを表示できるAlexaTextListや、スプラッシュスクリーンと背景をレンダリングできるAlexaBackgroundがあります。Alexaデザインシステムのレスポンシブ対応コンポーネントやレスポンシブ対応テンプレートなどの要素のリストについては、こちらをご覧ください。

今後は、Amazonとパートナー社製の新しいAlexaデバイスのリリースに合わせて、新しいレスポンシブ対応コンポーネントやレスポンシブ対応テンプレートを公開し、新しいViewportプロファイルのサポートを追加する予定です。現在や今後のAlexaデバイスをサポートするAPLドキュメントを作成する際に役立てていただけるよう、Alexaデザインシステムを使用したレスポンシブ対応APLドキュメントの作成方法を説明した新しいガイドを公開しています。こちら(英語)をご覧ください。

 

ツールの改善

APL 1.1では、APLオーサリングエクスペリエンスのさらなる充実を図っています(こちらをご覧ください)。今回のバージョンでは、デザイン層で選択した要素がコンポーネント階層で強調表示されるようになりました。これにより、デザインビューに表示されている要素と実際のコンポーネントを関連付けながらコンポーネントのプロパティを更新する作業が簡単になります。

今後、APLオーサリングエクスペリエンスでAPLコンポーネントのドラッグアンドドロップを有効にする更新を行う予定です。さらに、APL 1.1オーサリングツールは、レンダリング、データバインディング、式の評価コードを、Alexaデバイスで実行されるランタイムと共有しています。そのため、オーサリングエクスペリエンスと実際にデバイスに表示される内容が違うという状況がかなり少なくなります。

apl-checkers-gif-3.gif

自動スケーリング

APLオーサリングエクスペリエンスとスキルのテストシミュレーターには、Small Landscape Hubという新しいViewportプロファイルが追加されています。これは、Alexaデバイスに加わったばかりのEcho Show 5をサポートしています。スキルをEcho Show 5向けに最適化しながら、ユーザーに引き続きそのエクスペリエンスを提供できるように、Echo Show 5では画面に合わせてAPL応答が自動的にスケーリングされます。ただしAPLをEcho Show 5向けに最適化することを強くお勧めします。詳細については、このブログ記事をご覧ください。

最適化が完了し、シミュレーターのSmall Landscape HubまたはEcho Show 5でスキルをテストしたら、以下に示すボックスをオンにして自動スケーリングを停止できます。次に、スキルの認定を申請すると、Echo Show 5での認定作業が開始されます。2019年7月3日より前に認定されたスキルの場合は、視覚要素を最適化済みであっても、自動スケーリングを停止するにはボックスをオンにして再申請する必要があります。

apl-checkers-4.png

ssmlToSpeechトランスフォーマーとプログレッシブ応答APIの変更

APL 1.1の公開に合わせて、Alexaにテキストブロックと項目のリストを強調表示して発話させるための、SpeakItemコマンドとSpeakListコマンドで使用できるトランスフォーマーも拡張されました。具体的には、新しいtextToSpeechトランスフォーマーが追加されています。この新しいトランスフォーマーを使用すると、テキストを音声に変換することができます。既存のssmlToSpeechトランスフォーマーは有効な音声合成マークアップ言語(SSML)入力のみを受け入れるようになりました。このトランスフォーマーへの入力は、<speak></speak>タグで囲んだ有効なXMLである必要があります。また、プログレッシブ応答APIも有効なSSMLのみを入力として受け入れます。スキルに無効なSSMLや生のテキストが使用されている場合、APIからエラーが返されます。

問題が発生した場合やご質問がある場合は、Alexa開発者フォーラムでフィードバックをご共有ください。投稿する際は、トピックの欄で「APL」を選択してください。

新しいAPL 1.1の機能を活用して、すばらしいデザインが作成されることを楽しみにしています。

編集注:本ブログはIntroducing Alexa Presentation Language 1.1 (Beta): Animation, Improved Tools, and the Alexa Design Systemの翻訳です。

Source: Alexa Developer Blog

solution_provider_image.png

We are constantly looking for ways to enable better collaboration between Original Equipment Manufacturers (OEMs) and the rich portfolio of Alexa Voice Service (AVS) Solution Providers, including Systems Integrators (SIs), Original Design Manufacturers (ODMs), chipset suppliers, and development kit providers. With our newly launched tools and enhancements, OEMs can follow an easier Alexa integration path, benefiting from pre-qualified solutions and process efficiencies to achieve an accelerated path to market.

The AVS Solution Provider Program has resulted in a comprehensive portfolio of solutions from 18 SIs, 14 ODMs, and 12 development kit providers. Depending on an OEM’s needs for their Alexa project, a solution provider could provide end-to-end hardware and software Alexa integration support, ranging from help testing AVS devices and building a companion app, to providing reference solutions that assist in the development process. In order to ensure that OEMs have a successful and smooth Alexa integration process, we on-board, train, support, and monitor these solution providers to evolve their capabilities and empower them to drive innovative and high-quality experiences for Alexa customers.

Developer Portal Enhancements

To further foster collaboration between OEMs and Solution Providers, we have launched new features on the AVS developer portal. With the Product Access Control feature, OEMs can grant access to solution providers at the product level, allowing them to manage different parts of the development cycle. This same feature also allows OEMs to control product access and ensure confidentiality on specific projects, making it easier to innovate and iterate on products. The Role Based Access Control feature further enhances access control capabilities by allowing account administrators to assign roles to users in their account and control functionalities that their users can access.

New Development Kit Comparison Table

AVS also works with technology providers to bring OEMs a robust portfolio of development kits that help them prototype Alexa Built-in devices faster and at a lower cost, accelerating their path to market. This portfolio now includes 18 dev kits spanning smart speakers, smart screens, smart home, mesh WiFi routers, micro-controllers, headsets, and set top boxes, among others. To help OEMs select a dev kit that best fits their needs, we have launched a Development Kit Comparison Table that allows filtering and comparison across key metrics including the example target application, platform architecture type, and supported features. Not only does this Development Kit Comparison Table reduce the time spent searching for and comparing dev kits, it also increases developer confidence in their choices.

“With the growth of the Solution Provider Program and the recent enhancements made to the developer portal, we are further empowering developers to navigate the process of building and launching Alexa Built-in devices. By making the development process clearer and more efficient, we can help device makers to achieve their business goals,” says Priya Abani, director of Alexa Voice Service.

To further complement these process efficiencies, we are continually improving the developer experience for all levels of expertise. For developers just starting their AVS journey, we launched the Give Your Product a Voice with Alexa tutorial video, which provides an overview of the process and refers to relevant AVS Documentation pages. As questions arise along the way, developers can quickly check for answers on the revamped AVS Frequently Asked Questions page or submit a question on the highly-monitored AVS Knowledge Base and Forum for an AVS member to address within 48 hours.

AVS is committed to supporting developers along their Alexa integration journey. Stay tuned for more improvements coming soon.

Source: Alexa Developer Blog

... Trading; 14/05/2018 – Morgan Stanley Announces Amazon Alexa Skills — Offering Original Content and Market Insights Via Easy Voice Command.
Source: Alexa Skills - Google Alert RSS

With your Echo Input or Echo Dot installed, use Alexa to control thousands of Alexa skills and compatible smart home devices…right from your bed.
Source: Alexa Skills - Google Alert RSS

Say "Alexa, open Xbox," to your smart speaker and open the Alexa app on your smartphone, or search for Xbox in the Alexa Skills section of the Alexa ...
Source: Alexa Skills - Google Alert RSS

... Choose book series into more than 50 hours worth of interactive audio content, publishing twelve story bundles as Alexa skills in just over 90 days.
Source: Alexa Skills - Google Alert RSS

... Stanley Capital Services Exits Position in WageWorks; 14/05/2018 – Morgan Stanley Announces Amazon Alexa Skills – Offering Original Content ...
Source: Alexa Skills - Google Alert RSS

... of Alexa-enabled features – check the weather, set timers and alarms, control smart home devices, and access tens of thousands of Alexa skills.
Source: Alexa Skills - Google Alert RSS

... WITH ACTIVE ONSTAR ACCOUNT; 14/05/2018 – Morgan Stanley Announces Amazon Alexa Skills — Offering Original Content and Market Insights ...
Source: Alexa Skills - Google Alert RSS