Ignite 2020 Neural TTS updates: new language support, more voices and flexible deployment options

This article is contributed. See the original author and article here.

Ignite 2020 Neural Text-to-Speech updates: new language support, more voices and flexible deployment options

 

This post was co-authored by Garfield He, Melinda Ma, Yueying Liu and Yinhe Wei  

   

Neural Text to Speech (Neural TTS), a powerful speech synthesis capability of Cognitive Services on Azure, enables you to convert text to lifelike speech which is close to human-parity.  Since its launch, we have seen it widely adopted in a variety of scenarios by many Azure customers, from voice assistants to audio content creation. We continue to push the envelope to enable more developers to add natural-sounding voices to their applications and solutions.

 

Today, we are happy to announce a series of updates to Neural TTS that extends its reach globally and allows developers to deploy it anywhere the data resides. This includes new languages available, new voices with rich personas, and on-prem deployment through docker containers.

 

18 new languages/locales supported

 

Neural TTS has now been extended to support 18 new languages/locales. They are Bulgarian, Czech, German (Austria),  German (Switzerland), Greek, English (Ireland), French (Switzerland), Hebrew, Croatian, Hungarian, Indonesian, Malay, Romanian, Slovak, Slovenian, Tamil, Telugu and Vietnamese. 

 

You can hear samples of these voices below.

 

Locale  

Language

Gender

Voice 

Sample

bg-BG

Bulgarian

Female

Kalina

Архитектурното културно наследство в България е в опасност. 

cs-CZ

Czech

Female

Vlasta

Policisté většinou chodí v uniformě a jsou označeni hodnostmi.

de-AT

German (Austria)

Female

Ingrid

Ab Herbst werden Lehrer, die sich dafür interessieren, eigens ausgebildet.

de-CH

German (Switzerland)

Female

Leni

Dreizehn Millionen Liter mehr als im Vorjahr.

el-GR

Greek

Female

Athina

Για να βρεις ποιος σε εξουσιάζει, απλώς σκέψου ποιος είναι αυτός που δεν επιτρέπεται να κριτικάρεις .

en-IE

English  (Ireland)

Female

Emily

Now we have seventy members and two dragon boats.

fr-CH

French (France)

Female

Ariane

Chaque équipe jouera donc 5 matchs de 20 minutes dans sa poule.

he-IL

Hebrew (Israel)

Female

Hila

הכל פתוח במאבק על המקום האחרון לפלייאוף העליון של ליגת העל בכדורגל.

hr-HR

Croatian

Female

Gabrijela

Idemo na pobjedu u Maksimiru, pred našem publikom dat ćemo sto posto.

hu-HU

Hungarian

Female

Noemi

A macska felmászott a tetőre és leugrott.

id-ID

Indonesian

Male

Ardi

Inflasi dapat digolongkan menjadi empat golongan, yaitu inflasi ringan, sedang, berat, dan hiperinflasi.

ms-MY

Malay

Female

Yasmin

Beg berkenaan dibawa ke hospital untuk menjalankan proses pengenalan.

ro-RO

Romanian

Female

Alina

Temperaturile maxime se vor încadra între 15 şi 23 de grade Celsius.

sk-SK

Slovak

Female

Viktoria

Kúzelné miesta nájdete aj za jej hranicami, v malebnej prírode.

sl-SI

Slovenian

Female

Petra

Predlagani zakon vključuje tudi načrt nadaljnjega ukrepanja.

ta-IN

Tamil

Female

Pallavi

உச்சிமீது வானிடிந்து வீழுகின்ற போதினும், அச்சமில்லை அச்சமில்லை அச்சமென்பதில்லையே

te-IN

Telugu

Female

Shruti

అందం ముఖంలో ఉండదు. సహాయం చేసే మనసులో ఉంటుంది

vi-VN

Vietnamese

Female

HoaiMy

Hà Nội là thủ đô của Việt Nam.

 

With these new voices, Microsoft Azure Neural TTS supports 49 languages/locales in total.

 

14 additional voices released to enrich the variety

 

Customers use TTS for different scenarios and their requirements for voice personas can vary. To provide more options to developers, we continue to create more voices in each language. Besides the extension to support new locales, we’ve announced 14 new voices to enrich the variety in the existing languages.

 

Hear samples of these voices below.

 

Locale

Language

Gender

Voice 

Sample

de-DE

German

Male

Conrad

Je würziger das Fleisch, desto würziger und kräftiger sollte auch der Wein sein.

en-AU

English (Australia)

Male

William

They have told me nothing, and probably cannot tell me anything to the purpose.

en-GB

English  (UK)

Male

Ryan

Today’s temperature was a record 26.5 degrees Celsius.

en-US

English (US)

Female

Jenny

For example, we place a session cookie on your computer each time you visit our Website.

es-ES

Spanish (Spain)

Male

Alvaro

Dos helicópteros medicalizados tuvieron que acudir al lugar a rescatar a los heridos.

es-MX

Spanish (Mexico)

Male

Jorge

El niño mencionó que si pudiera caminar, pediría un balón para poder patearlo o una cuerda para poder saltar.

fr-CA

French  (Canada)

Male

Jean

Ce jour tant attendu arrive enfin!

fr-FR

French (France)

Male

Henri

Jusqu’ici, nous vous avons toujours fait confiance et accordé le bénefice du doute.

it-IT

Italian

Female

Isabella

I gel igienizzanti sono aumentati di prezzo.

it-IT

Italian

Male

Diego

Domani preparerò dei biscotti con le gocce di cioccolato.

ja-JP

Japanese

Male

Keita

キャッシュレス決済を利用して、支払いを簡単にする。

ko-KR

Korean

Male

InJoon

규모가 더욱 확대되었다.

pt-BR

Portuguese (Brazil)

Male

Antonio

O que você quer ganhar de presente de natal?

th-TH

Thai

Female

Premwadee

วิกฤตแบบนี้บริษัทยิ่งต้องการคนที่พร้อมเผชิญปัญหา

 

 

With these updates, Microsoft Azure Text-to-Speech service offers 68 neural voices. Across standard and neural TTS capabilities, we now offer 140+ voices in total. Check the 70+ standard voices here.

 

More than 15 speaking styles available in en-US and zh-CN voices

 

Today, we’re building upon our Neural TTS capabilities in English (US) and Chinese (CN) with new voice styles. By default, the Text-to-Speech service synthesizes text using a neutral speaking style. With neural voices, you can adjust the speaking style to express different emotions like cheerfulness, empathy, and calm, or optimize the voice for different scenarios like customer service, newscasting and voice assistant that fit your need.

 

With the English (US) new voice, Jenny, which is created with a friendly, warm and comforting voice persona focusing on conversational scenarios, we provide additional speaking styles including chatbot, customer service, and assistant.

 

You can hear the different speaking styles in Jenny’s voice below:

 

Style

Style description

Sample

General

Expresses a neutral tone and available for general use

Valentino Lazaro scored a late winner for Austria to deny Northern Ireland a first Nations League point.

Chat

Expresses a casual and relaxed tone in conversation

Oh, well, that’s quite a change from California to Utah.

Customer service 

Expresses a friendly and helpful tone for customer support

Okay, great.  In the meantime, see if you can reach out to Verizon and let them know your issue. And Randy should be calling you back shortly.

Assistant

Expresses a warm and relaxed tone for digital assistants

United States spans 2 time zones. In Nashville, it’s 9:45 PM.

 

A new speaking style is also available for the en-US male voice, Guy.  Guy’s newscast style can be a great choice for a male voice that can read professional and news related content. 

In addition, 10 new speaking styles are available with our zh-CN voice, Xiaoxiao. These new styles are optimized for audio content creators and intelligent bot developers to create more engaging interactive audios that express rich emotions.  

 

You can hear the new speaking styles in Xiaoxiao’s voice below:

 

Calm

Affectionate

Angry

那,那我再问你,你之前有养过宠物嘛?

老公,把灯打开好吗,好黑呀,我很怕。

没想到,我们八年的感情真的完了!

Disgruntled

Fearful

Gentle

这你都不明白吗?真是个榆木脑袋。

先生,你没事吧?要不要我叫医生过来?

我今天运气特别好,如果没有遇到您,还不知道会怎么样呢!

Cheerful

Serious

Sad

太好了,恭喜你顺利通过考核。

不要恋战,等待时机,随时准备突围。

没想到,你居然是这么一个无情无义的的人!

 

For the Chinese voice Xiaoxiao, the intensity (‘style degree’) of speaking style can be further adjusted to better fit your use case. You can specify a stronger or softer style with ‘style degree’ to make the speech more expressive or subdued.

 

没想到,你居然是这么一个无情无义的的人!

Sad=0.5

Sad=1.0

Sad=1.5

Sad=2.0

 

The style degree can be adjusted from 0.01 to 2 inclusive. The default value is 1 which means the predefined style intensity will be applied. The minimum unit is 0.01, which softens the style with a flatter tone. The value of 2 is the highest, which makes the style intensity obviously stronger than the default.

 

The SSML snippet below illustrates how the ‘style degree’ attribute is used to change the intensity of a speaking style.

 

<speak version=”1.0″ xmlns=”http://www.w3.org/2001/10/synthesis

       xmlns:mstts=”https://www.w3.org/2001/mstts” xml:lang=”zh-CN”>

    <voice name=”zh-CN-XiaoxiaoNeural”>

        <mstts:express-as style=”sad” styledegree=”2″>

            快走吧,路上一定要注意安全,早去早回。

        </mstts:express-as>

    </voice>

</speak>

 

The ‘style degree’ feature currently only applies to the Chinese voice Xiaoxiao and will come to more languages and voices later soon.

 

Check SSML for the details on how to use these speaking styles, together with other rich voice tuning capabilities.

 

Neural TTS Container is in public preview with 16 voices available in 14 languages

 

We have launched Neural TTS Container in public preview, as we are seeing a clear trend towards a future powered by the intelligent cloud and intelligent edge. With Neural TTS Container, developers can run speech synthesis with the most natural digital voices in their own environment for specific security and data governance requirements. Their Speech apps are portable and scalable with greater consistency whether they run on the edge or in Azure.

 

Currently 14 languages/locales are supported with 16 voices in Neural TTS Containers, as listed below. 

 

Locale

Voice

de-de

KatjaNeural

en-au

NatashaNeural

en-ca

ClaraNeural

en-gb

LibbyNeural

en-gb

MiaNeural

en-us

AriaNeural

en-us

GuyNeural

es-es

ElviraNeural

es-mx

DaliaNeural

fr-ca

SylvieNeural

fr-fr

DeniseNeural

it-it

ElsaNeural

ja-jp

NanamiNeural

ko-kr

SunHiNeural

pt-br

FranciscaNeural

zh-cn

XiaoxiaoNeural

 

To get started, fill out and submit the request form to request access to the container. Currently Neural TTS Containers are gated and only approved for enterprises (EA customers) and Microsoft partners, and to an extent only for qualified customers.

 

Azure Cognitive Services Containers including Neural TTS Containers aren’t licensed to run without being connected to the metering / billing endpoint. You must enable the containers to communicate billing information with the billing endpoint at all times. Cognitive Services containers don’t send customer data, such as the image or text that’s being analyzed, to Microsoft. Queries to the container are billed at the pricing tier of the Azure resource that’s used for the ApiKey.

 

Here are the steps of how to install and run the container:

  1. Make sure your machine to host the container meets the hardware requirements.
  2. Get the container image with docker pull. For all the supported locales and corresponding voices of the neural text-to-speech container, please see Neural Text-to-speech image tags.
  3. Run the container with docker run.
  4. Validate that the container is running.
  5. Query the container’s endpoint. Take AriaNeural voice for example, you can run below HTTP post method to get the TTS output audio:

curl -s -v -X POST http://localhost:5000/speech/synthesize/cognitiveservices/v1

 -H ‘Accept: audio/*’

 -H ‘Content-Type: application/ssml+xml’

 -H ‘X-Microsoft-OutputFormat: riff-24khz-16bit-mono-pcm’

 -d ‘<speak version=”1.0″ xml:lang=”en-US”><voice name=”en-US-AriaNeural”>This is a test, only a test.</voice></speak>’ > output.wav

 

Learn more about Container support in Cognitive Services and visit the Frequently Asked Questions on Azure Cognitive Services Containers.    

 

Get started

 

With these updates, we’re excited to be powering natural and intuitive voice experiences for more customers globally with flexible deployment options. For more information, visit below. 

 

High throughput streaming ingestion to Synapse SQL pools

High throughput streaming ingestion to Synapse SQL pools

This article is contributed. See the original author and article here.

Now Generally Available: High throughput streaming ingestion into Synapse SQL pools

 

Azure Synapse is an analytics service that seamlessly brings together enterprise data warehousing and Big Data analytics workloads. It gives customers the freedom to query data using either on-demand or provisioned resources at scale, and with a unified experience to ingest, prepare, manage, and serve data for immediate BI and machine learning needs. A Synapse SQL pool refers to the enterprise data warehousing features that are generally available in Synapse.

 

As more and more customers require their Modern Data Warehouse patterns and reporting environments to be real-time representations of their business, streaming ingress into the warehouse is becoming a very core requirement. 

 

Azure Stream Analytics is a market leading Serverless PaaS offering for real-time ingress and analytics on Streaming data. Starting at a very low price point of USD $0.11 per Streaming Unit per hour, it helps customers process, and reason over streaming data to detect anomalies and trends of interest with ultra-low latencies. Azure Stream Analytics is used across a variety of industries and scenarios such as Industrial IoT for remote monitoring and predictive maintenance, Application telemetry processing, Connected vehicle telematics , Clickstream analytics, Fraud detection etc.

 

Today, we are announcing the General Availability of high throughput streaming data ingestion (and inline analytics) to Synapse SQL pools from Azure Synapse Analytics, that can handle throughput rates even exceeding 200MB/sec while ensuring ultra-low latencies. This is expected to support even the most demanding warehouse workloads such as real-time reporting, dashboarding and many more. More details can be found in the feature documentation.

 

With Azure Stream Analytics, in addition to high throughput ingress, customers can also run in-line analytics such as JOINs, temporal aggregations, filtering, real-time time inferencing with pre-trained ML models, Pattern matching, Geospatial analytics and many more. Custom de-serialization capabilities in Stream Analytics help with ingress and analytics on any custom or binary streaming data formats. Additionally, developers and data engineers can express their most complex analytics logic using a simple SQL language, that is further extensible via Javascript and C# UDFs. 

 

For IoT specific scenarios, Azure Stream Analytics enables portability of the same SQL query between cloud and IoT edge deployments. This provides several opportunities for customers such as pre-processing, filtering or anonymization of data the edge.

 

pic1.PNG

  Azure Stream Analytics output to Synapse SQL table

 

Feedback and engagement

Engage with us and get early glimpses of new features by following us on Twitter at @AzureStreaming. The Azure Stream Analytics team is highly committed to listening to your feedback and letting the user’s voice influence our future investments. We welcome you to join the conversation and make your voice heard via our UserVoice page.

Continuing Momentum with Microsoft Information Protection (MIP)

Continuing Momentum with Microsoft Information Protection (MIP)

This article is contributed. See the original author and article here.

Microsoft Information Protection (MIP) integrations continue to see great momentum and interest from our partners and customers. These integrations help customers adopt and derive the benefits of Microsoft Information Protection to meet their security and compliance. The Microsoft Information Protection development platform consists of SDKs, APIs, and various other programmatic interfaces. Following are some examples of how some of the industry leaders are using MIP development platform to build innovative solutions solving customer’s Security and Compliance related needs.

 

Symantec Integration with Microsoft Benefits Customers

Symantec and Microsoft together help enterprises protect their sensitive data wherever it lives and travels with the deepest data discovery and protection available in the industry. Customers can now take full advantage of Symantec Data Loss Prevention’s powerful content inspection engine combined with the broad classification and encryption capabilities provided by Microsoft Information Protection (MIP). The integrated solution gives customers the ability to detect and read MIP-labeled and -protected documents and emails. In the upcoming release, customers will also be able to automatically suggest and enforce MIP labels for sensitive and personal data with greater accuracy based on their DLP policies. Thanks to this interoperability, enterprises are able to better ensure consistent enforcement of policies across all control points (endpoints, email, web, storage, and cloud apps), prevent data leaks, and address privacy regulations, such as GDPR and CCPA.

 

 

McAfee MVISION seamlessly integrates with MIP to detect and apply labels

McAfee MVISION Cloud integrates directly with Microsoft Information Protection (MIP) API’s to seamlessly detect and apply MIP labels to sensitive data discovered by the McAfee’s cloud-native Data Loss Prevention (DLP) service. For example, for data already protected by Microsoft Information Protection, MVISION Cloud’s DLP can read the MIP metadata and allow or prevent data dissemination or collaboration such as when an employee shares confidential data with a 3rd party. For sensitive data not yet protected, MVISION Cloud can detect sensitive data and apply MIP label to assure that customer data is protected as intended. If labels have ‘Encryption’ turned on, the documents classified with those labels will be automatically encrypted. As an example, a customer may push PCI data to SharePoint; in this case an MIP label can be applied to protect the data based on the MIP protection framework. The screenshot shows that MVISION Cloud retrieves all predefined MIP policies for use with the DLP service.

 

mcafee.jpg

 

Relativity uses MIP to empower Communication Compliance for customers

Relativity Trace is used by compliance teams to monitor the communications of high-risk individuals – across email, chat, email, and audio – in near real-time. Using AI and machine learning the system automatically flags conversations that exemplify scenarios of collusion, corruption, complaints, market manipulation, excessive gifts, sharing of sensitive information and others for compliance analysts to review. Our clients know that encrypting data through the use of Microsoft Information Protection (MIP) labels greatly improves overall security within their organization, but the encryption of content can make it difficult for compliance teams to identify internal threats. To solve this issue, Relativity Trace has built secure MIP decryption into the product using the MIP SDK, so all content can be analyzed for risk and compliance analysts can understand the complete story of a communication. This integration ensures compliance teams can efficiently protect their organization and meet regulatory obligations without degrading security throughout the organization.

 

Relativity ScreenshotRelativity Screenshot

 

 

VMware’s Boxer and Workspace ONE enables security and compliance for customers

Boxer’s integration with the MIP SDK enables our corporate clients to use MIP Sensitivity labels and secure the emails and documents which they exchange within or outside their organizations.

The real innovation of the unified labelling is in the combination of three different components: classification, protection, and encryption that already exist on their own. AIP Sensitivity labels provide an excellent end-user experience by allowing users to secure their information by simply applying a label. Organizations can also boost their security and Data Loss Prevention policies with a comprehensive and unified approach for the data protection.

With classification, our users can add header and footer text to an email or watermark to a document. With protection, the content can be limited to be used by a specific group of people.

Further restrictions may include specific actions such as do not view, do not forward, do no reply and more. In addition, labels can even limit for how long the content will be available.

Currently the MIP Sensitivity labels are in General Availability and we are onboarding our first customers.

On another exciting note, VMware’s Workspace ONE Content app is also now leveraging the MIP SDK to provide editing of AIP documents and will soon follow with adding AIP Sensitivity labels.

 

Step By Step: How to use SQLPackage with Access Token

This article is contributed. See the original author and article here.

Purpose

SQLPackage allows you to authenticate with Access Token instead of providing Login name and password.

This article will show you how to do that end to end. 

 

General steps:

  1. Create App Registration in your Azure Active Directory (AAD)
  2. Create user for the Application to access Azure SQL DB and grant the needed permissions. 
  3. Generate Access token for your Application. 
  4. Use the Access token to import or export your database.

 

Detailed steps: 

  1. Create App Registration in your Azure Active Directory (AAD)
    1. Open Azure portal and access you Azure Active Directory management blade
    2. Click on App Registrations
    3. Click on New Registration
    4. Give your application a name so it can be identified afterwards
    5. Click on “Register”
    6. Once the App is created you will be redirected to the App blade
    7. Note your application (client) ID – you will use that later
    8. Click on “Endpoints” at the top and note the “OAuth 2.0 token endpoint (v2)” url – we will use this later as well.
    9. Click on “Certificate & Secrets”
    10. Click on “New Client Secret”
    11. Set the expiry time and click “Add”
    12. Note the value of the key – we will use it later.
  2. Create user for the Application to access Azure SQL DB and grant the needed permissions. 
    1. CREATE USER [SQLAccess] FROM EXTERNAL PROVIDER
    1. alter role dbmanager add member [SQLAccess]
    1. Make sure your server has AAD Admin account configured.
    2. Connect to you SQL DB with your AAD account
    3. Create the user for the application access
    4. Grant the needed permissions.
  3. Generate Access token for your Application. 
    1. Using PowerShell

 

$key= ConvertTo-SecureString `
         -String "{Key Secret}" `
         -AsPlainText `
         -Force
       
Get-AdalToken `
    -Resource "https://database.windows.net/" `
    -ClientId "{Application ID}" `
    -ClientSecret $key `
    -TenantId "{Tenant ID}"

 

 

  1. Using C#

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.IdentityModel.Clients.ActiveDirectory;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {

            string clientId = "{Client ID}";
            string aadTenantId = "{Tenant ID}";
            string clientSecretKey = "{Key Secret}";

            string AadInstance = "https://login.windows.net/{0}";

            string ResourceId = "https://database.windows.net/";

            AuthenticationContext authenticationContext = new AuthenticationContext(string.Format(AadInstance, aadTenantId));

            ClientCredential clientCredential = new ClientCredential(clientId, clientSecretKey);
            DateTime startTime = DateTime.Now;
            Console.WriteLine("Time " + String.Format("{0:mm:ss.fff}", startTime));
            AuthenticationResult authenticationResult = authenticationContext.AcquireTokenAsync(ResourceId, clientCredential).Result;
            DateTime endTime = DateTime.Now;
            Console.WriteLine("Got token at " + String.Format("{0:mm:ss.fff}", endTime));
            Console.WriteLine("Total time to get token in milliseconds " + (endTime - startTime).TotalMilliseconds);
            Console.WriteLine(authenticationResult.AccessToken.ToString());
            Console.ReadKey();
        }
    }
}

 

4. Use the Access token to import or export your database.

    1. Use your SQLPackage command and instead of using Login / User and password use the /AccessToken:{AccessTokenHere} (or /at)

Scale database up or down when geo replication is in use

This article is contributed. See the original author and article here.

Question:

When I’m using P1 tier for my geo-replicated database I can scale to another edition such as Standard or Business critical, but it will not allow me to scale to General purpose.

Why?

 

Short Answer:

When scaling between DTU and vCore model you may only scale between equivalent editions.

Standard is similar to General purpose and Premium to Business Critical.

If needed, scale both Primary and Secondary to Standard and then to General Purpose.

Never break the geo-replication setup for such modifications.

 

Answer:

When using Geo-Replication for your database the recommendation is to keep both in the same edition and tier.

 

The reason behind that is that (most common scenario) if the secondary will have lower tier compare to the primary, it might lag when processing changes coming from the primary database.

It will affect workloads running on both primary and secondary. And it will impact RPO and RTO when failover in needed.

 

However, if your workload is more of reads on the primary and less write, you may find that having lower tier on the secondary that need to deal with writes only will be more efficient for you (financial wise)

 

To allow customer to scale between editions (Standard, Premium) we must allow temporary hybrid setup while secondary and primary does not have the same edition.

 

The instructions about how to do that correctly is well described in additional considerations for scale database resource docs page.

 

Now back to our question, when scaling the database from Standard edition which uses DTU model we may only scale to General Purpose as this would be the equivalent edition in vCore model.

 

Same thing for Premium while the equivalent vCore edition is Business Critical.

 

Therefore if you need to go from P1 to GP (General Purpose) you may first scale both primary and secondary to Standard edition and then move to GP

 

In any case it is not recommended to break the geo-replication setup as during this time you have no active cross region High Availability solution for your database, this means that your database setup is vulnerable and might be impacted if an issue happen.