devAIce Web API 4.0.0 Update

,
Caro Bauer

What’s new in devAIce Web API 4.0.0 

We are proud to announce version 4.0.0 as a major update to devAIce Web API that is available to customers today. Most notably, this release introduces a modernized and simplified set of new API endpoints, all-new client libraries with support for more programming languages, OpenAPI compatibility, as well as an enhanced command-line interface tool. It also includes recent model updates and performance improvements from the latest devAIce SDK release, i.e. support for the Dominance emotion dimension and accuracy improvements of up to 15 percentage points. 

New API (version 2) 

While overall, our existing API has served customers well over the years, we nevertheless received clear feedback on a number of aspects that made API integration less intuitive and convenient than what we expect from a modern API. Since fixing some of these flaws would inevitably result in backwards-incompatible changes, we took the opportunity to think big and define a major new version of our API, which allowed us to also improve other parts of the API without having to restrict ourselves to maintain compatibility with existing clients. 

Highlights of the new v2 API include: 

  • Simplified authentication 

The legacy API required clients to go through a custom authentication mechanism to obtain a temporary session token that could then be used for subsequent requests. This step made it hard to call the API from tools like curl or Postman because extra code had to be written to perform authentication. In the new API, the extra authentication step has been replaced with a simple API key that is passed as an HTTP header in every request, which is well supported by common web development tools. 

  • Intuitive request and response formats 

In the existing v1 API, requests and responses sometimes followed rather unintuitive design choices in how data had to be passed or was returned. This was due to the requirement for backwards-compatibility of clients that still targeted sensAI, the predecessor of devAIce. In the new API, we got rid of all legacy design remnants which leads to a significantly simpler and easier development experience. 

  • Dedicated endpoint to retrieve account information 

The legacy API returned user quota information as part of the session creation response but there was no way for clients to retrieve this information independently. The new API provides a dedicated endpoint to obtain this and other account information whenever clients need it. 

New client libraries and OpenAPI compatibility 

Since the first versions of devAIce Web API and its predecessor sensAI, we have provided official client libraries for different programming languages to make integration of the API easier. However, since these libraries were hand-written and had to be maintained by us, we could only offer stable libraries for Python and C# and had to leave libraries for Java/Android and JavaScript in an experimental state. The libraries also did not share a consistent public interface, which raised the effort needed to support them. 

For the new v2 API, we took a different approach by making the API compatible to the OpenAPI Specification 3 and relying on OpenAPI Generator to automatically generate clients for various programming languages based on the API specification. This has several advantages: the generated clients have more consistent interfaces, additional languages can be more easily supported, and customers can use the OpenAPI specification of our API to generate clients themselves or use it with other OpenAPI-compatible tools. 

We currently offer official stable clients for the following languages: Python, C#, Java and JavaScript. A PHP client is up next on our roadmap. If you would like to use devAIce Web API in any other language, we’d be happy to hear from you. 

Command-line upload tool (CLI) 

As part of the latest devAIce Web API release, we ship an enhanced new version of a command-line client that is powered by the new Python client. In the past, we offered a Python script that could be used to upload a single audio file but it was not very convenient to use and limited in functionality. The new tool has been written from scratch, has straight-forward command-line parameters and also supports batch uploading of an arbitrary number of files. 

For example, to upload a folder of .wav files and analyze them using the VAD and Emotion modules, you run the following command: 

devaice-web-api-cli –api-key <api-key> –vad –emotion *.wav 

Results can be output either directly on the console or in a single file in JSON format. 

Emotion model updates 

All the recent enhancements and updates made to our emotion models in devAIce SDK 3.6.1 are also available in the 4.0.0 release of the Web API. For more information, see our separate blog post on the devAIce SDK 3.6.1 release. 

Other improvements 

As with every release, you can find a complete changelog of what is new in the latest release by consulting the Web API documentation. 

Do I have to pay for these updates? 

Customers who own a commercial or trial license for our devAIce Web API cloud service get all of these updates for free. 

Do I have to update? 

No, you may continue to use whatever version you are currently on. devAIce Web API users need to explicitly opt-in to receive the new version. Nevertheless, we recommend to update to the latest version when possible in order to benefit from the latest model additions, improvements and fixes. 

Where can I get more information? 

If you are interested in updating to the new version of devAIce or have any questions on these updates or devAIce in general, please contact audEERING’s Customer Experience Manager Sylvia Szylar (sszylar@audeering.com).