Alexa App for PC

Download Amazon Alexa app for Windows PC

Amazon has just released a major update to the Alexa app for PCs, which now receives extra features on Windows computers. Until now, the application was just a tool for setting and managing options for Echo smart speakers and other such products. Now, with the latest version of the application, computer users will be able to communicate with the virtual assistant directly from the computer.

Amazon Alexa app for Windows PC

Basically, a computer user will be able to access Amazon Alexa app commands similar to those given through Google Assistant. You’ll be able to dictate messages, turn on music, set reminders, learn information, or access features in Alexa-integrated applications. Note that you can only access voice commands if the Alexa app is open on your computer. Download Alexa app by clicking the button below.

Alexa app download

How to use Alexa app?

It will recognize the keyword “Alexa”, but again only if the app is on, compared to Google Assistant and its “Hey Google”, which can be activated anytime, anywhere. The update will be in waves in the next period, so you probably have to wait. A similar update has been promised on smartphones, although it is not clear when it will come.

Keep in mind that some phone manufacturers like Huawei have been offering Alexa as an option for some time. Many of their devices come with Alexa pre-installed and fully functional. Download Amazon Alexa for PC by clicking on the button above.

Alexa app setup & Integration of a navigation application with the Amazon Alexa voice assistant (only for the geeks)

As time goes on, the available technologies evolve, but so does the way we interact with them. This growth is natural, as, for software companies, the use of technologies is found especially in the interaction with the end-user. The field of the human-machine interface or, in short, HMI is constantly expanding and creates many new ways of interacting with technologies already present or about to emerge.

One of these new ways of interacting is through voice assistants, which, as the name suggests, help us by processing our voice cues to perform certain tasks that only the technology they communicate with can perform. In this article, we will take a look at one of the best-known voice assistants, namely, Amazon Alexa.

As you read this article, you’ll learn about Amazon’s solution for deploying a voice assistant, how they plan to use it with software developers, and details about the internal structure of software development kits (SDKs) and how to integrate them with a navigation application.

Amazon has several software development kits for voice assistants, depending on the type of developer: the Alexa Voice Service (AVS) kit, which is intended to integrate Alexa into a generic device, and the Alexa Auto (AA) kit, which is intended to integrate Alexa into a car device.

Official Alexa Voice Service SDK interaction model

The official interaction diagram of the Alexa Voice Service kit The current version of the AVS kit is 1.18.0, providing support for C ++ development. Following the AVS diagram, the Audio Signal Processor module will capture and process sound from the device’s microphone or microphone group, generating a single audio stream, which is received by SDS. The Shared Data Stream module will make the audio stream available to readers, in this case, KWD and AIP.

The task of the Key Word Detection module is to monitor the stream and send a signal to the AIP to read when it detects a keyword. The task of the Audio Input Processor module is to read the stream from the SDS when it receives a signal and transmit the audio data to the AVS in the cloud via the ACL. The responsibilities of the Alexa Communication Library module include managing connections and events to and from AVS, being virtually an overlay over the HTTP-based AVS cloud module. Next in line is the Alexa Directive Sequencer Library module, which will manage the lifespan and order of events received from the ACL and pass them on to an appropriate Capability Agent.

Such an agent is an executor for a specific task or set of related tasks. For example, the Bluetooth agent is responsible for managing Bluetooth connections, while the Speech Synthesizer agent will take care of performing text-to-speech (TTS) and playing audio signals on the device. Last but not least, the Activity Focus Manager Library module is the device input and output manager, ensuring that ADSL directives are executed in the established order.

Official modular diagram of the Alexa Auto kit

The current version of the AA kit is 2.1, providing development support in both C ++ and Java for the Android platform. Although it does not provide a complete description of the kit, the information diagram above shows the information on how it is structured. At the base of the kit is Alexa Auto Engine along with the entire Alexa module.

These components are based on the AVS kit described above, extending the functionalities present for the automotive industry. In order for the software developers to be able to provide the kit with car functionalities, specific to the target platform, such as providing the current location, providing the status of the internet network, or writing logging messages, the Core module was created.

In addition, the Code Based Login module provides a way to initiate and maintain the connection between your device and the AVS Cloud by connecting to an Amazon user account. All other available modules consist of interfaces that software developers must implement on the target platform. The interface of the Navigation module is the main point of interest for the following sections, being the module through which the platform navigation application will communicate with Alexa.

The Phone Control module is responsible for generating telephone control events, the Address Book module is responsible for storing contacts and favorite browsing locations, the Alexa Presentation Language module provides an interface solution with custom Alexa Skills components, while the Car Control module provides ways in which Alexa can interact with machine-specific hardware devices, such as window motors, fans, temperature controllers, and so on.

Navigation module

Continuing, we will take a look at the C ++ API for this special module in the AA 2.1 kit. The client is obliged to implement the Navigator Handler interface, which has the following functionalities:

virtual std :: string getNavigationState () = 0;

This feature is periodically called by Alexa Auto Engine to retrieve the status of the navigation application. It is therefore preferable for it to return the actual navigation status, although it is possible to return an empty string at the cost of disabling interrupts, adding or deleting waypoints on the route, and requesting estimated time information. of arrival (ETA) and distance to arrival (DTA).

virtual void startNavigation ( const std :: string & payload) = 0;

This function instructs the client to start navigating to the destination in the string in the input parameter.

virtual void cancelNavigation () = 0;

This function informs the customer to stop browsing if AVS determines by querying the browsing status that it is active.

virtual void navigateToPreviousWaypoint () = 0;

This feature recommends that the application navigate to the waypoint or destination.

virtual void showPreviousWaypoints () = 0;

This feature directs the navigation application to display a list of all previous destinations and waypoints.

virtual void showAlternativeRoutes ( AACE :: navigation :: Navigation :: AlternateRouteType alternateRouteType) = 0;

This feature instructs the client application to display alternative navigation routes, such as a faster route or a shorter route, depending on the value of the input parameter.

virtual void controlDisplay ( AACE :: navigation :: Navigation :: ControlDisplay controlDisplay) = 0;

This function is more complex because the input parameter can have a multitude of values, but it generally refers to controlling how the map is viewed or the volume of sounds associated with the map. It has actions such as displaying the overview of the route and the list of directions to follow, enlarging, zooming, and panning the map, orienting the map, centering it and activating or deactivating the audible indications provided by the route guidance system.

virtual void announce maneuvers ( const std :: string & payload) = 0;

This function recommends that the navigation application announce the next maneuver, providing its type in the string in the input parameter. Accepted types are curves, outputs, inputs, bands, and joints.

virtual void announceRoadRegulation ( AACE :: navigation :: Navigation :: RoadRegulation roadRegulation) = 0;

This function recommends that the navigation application notifies the required traffic regulations on the current road, providing its type in the input parameter. Accepted types are carpool rules or speed limits. Some functions have a string in input parameters called the payload, which is in a JSON format predefined by Alexa Auto Engine. As the examples of client application implementations in the kit suggest, it is a good practice to use a template-based JSON translator to avoid the runtime overhead associated with payload interpretation as much as possible.

Integration with Qt QML

To explore the case of integrating the Alexa Auto kit into a navigation application, we will use the Qt framework, which is widely used in embedded applications, and assuming that the application HMI is written in Qt Modeling Language (QML). Because the Qt framework provides an advantageous solution for decoupling binary dependencies, allowing developers to create custom QML plugins from C ++ code, all we need to do is wrap the C ++ functions of the navigation module in such a plugin:

AlexaWrapper class: public QObject, public aace :: engine :: navigation :: NavigationHandlerInterface { Q_OBJECT public: static QObject * create (QQmlEngine * engine, QJSEngine * scriptengine) { … // return singleton instance } AlexaWrapper () { … // register the wrapper as a platform interface // in the Alexa engine } signals: void cancelNavigationRequested (); … // the rest of the associated signals private: void cancelNavigation () override { issue cancelNavigationRequested (); } … // the rest of the navigation interface // definitions }; class QAlexaVoiceAssistantPlugin: public QQmlExtensionPlugin { Q_OBJECT Q_PLUGIN_METADATA (IID QAlexaVoiceAssistantPlugin_IID) public: void registerTypes (const char * uri) override { qmlRegisterSingletonType (uri, 1, 0, "AlexaVoiceAssistant" , AlexaWrapper :: create); } };

After compiling the above code into a shared object called “” it is only necessary to create the qmldir file for the QML interpreter to load the Alexa Wrapper plugin: AlexaVoiceAssistant module plugin alexaVoiceAssistantPlugin Last but not least, we will connect the Alexa Voice Assistant singleton object to the HMI code of the application in the QML files:

import AlexaVoiceAssistant 1.0 … // other HMI imports and code Connections { target: AlexaVoiceAssistant onCancelNavigationRequested: { … // call routine to stop the navigation // if running } … // rest of the associated signals // from AlexaWrapper }

In conclusion, we hope that this article has aroused both readers’ interest in how such a voice assistant as Amazon Alexa Auto SDK is structured and the curiosity of those concerned about how these software solutions could be implemented in the layer. HMI of an embedded navigation application.