This article is contributed. See the original author and article here.
This post was co-authored with Qinying Liao, Sheng Zhao, Gang Wang, Yueying Liu
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. More and more customers are asking for richer and more diverse choices of synthetic voices for different use cases.
Today, we are excited to announce that Azure Neural TTS has added 51 new voices for a total of 129 neural voices across 54 languages/locales. With this release, we provide at least one male and one female voice for customers to choose in each language/locale. In total, Azure TTS now enables developers to reach millions more people with more than 200 voices available in standard and neural TTS.
What’s new
Neural TTS has now been extended to support 51 new voices, which will bring to you the capability to have both male and female voices in each language for your apps. You can hear samples of the voices below, or try them with your own text in our demo.
46 new voices are generally available
In total 46 new voices are released across the 49 locales that are generally available in the Azure data centers/regions that support neural TTS (see the full list of Azure regions here).
Locale
Language
Gender
Voice
Sample audio
ar-EG
Arabic (Egypt)
Male
ShakirNeural
البركان هو أكثر ما في الطبيعــة إثارة للرهبة
ar-SA
Arabic (Saudi Arabia)
Male
HamedNeural
الناس مَعادن، تصدأ بالملل، وتتمدد بالأمل، وتنكمش بالألم
bg-BG
Bulgarian (Bulgary)
Male
BorislavNeural
Шофьорът задължително трябва да вземе експерт за второ мнение, за да провери дали всички системи на автомобила работят нормално.
ca-ES
Catalan (Spain)
Male
EnricNeural
Les activitats docents tenen lloc al campus del Poblenou.
ca-ES
Catalan (Spain)
Female
JoanaNeural
L’artista està considerat com el pintor de les multituds.
cs-CZ
Czech (Czech)
Male
AntoninNeural
Opravdový zasvěcenec ví, že nejmocnějším tajemstvím je to, které nemá žádný obsah.
da-DK
Danish (Denmark)
Male
JeppeNeural
61 procent af de kandidatstuderende er kvinder.
de-AT
German (Austria)
Male
JonasNeural
Das ist das letzte lange Pfingstwochenende für Schülerinnen und Schüler.
de-CH
German (Switzerland)
Male
JanNeural
Eine Person, die sich bei Brandausbruch im oberen Stock aufgehalten hat, hat sich noch rechtzeitig in Sicherheit bringen können.
el-GR
Greek (Greece)
Male
NestorasNeural
Συγκλονιστικές εξελίξεις και ανατροπές στα επόμενα επεισόδια .
en-CA
English (Canada)
Male
LiamNeural
He had held the position since 2010.
en-IE
English (Ireland)
Male
ConnorNeural
Life is short, think before you talk.
en-IN
English (India)
Male
PrabhatNeural
Sometimes you can see snow on the mountains.
fi-FI
Finnish (Finland)
Male
HarriNeural
Yhtiö kertoi loppuvuoden tuloksestaan ennakkotietoja.
fi-FI
Finnish (Finland)
Female
SelmaNeural
Hevoset ovat uljaita ja nopeita eläimiä.
fr-CH
French (Switzerland)
Male
FabriceNeural
La Suisse comptera 5,6 millions (12%) de personnes actives en 2050.
he-IL
Hebrew (Israel)
Male
AvriNeural
הוא אמר שהמספרים מדאיגים בשל עצמם, אבל בכל הישיבות שלנו המסקנה היא שזה סימפטום למשהו רחב יותר.
hi-IN
Hindi (India)
Male
MadhurNeural
सिद्धार्थ ने भी शहनाज के साथ इस इवेंट की फोटो शेयर की है।
hr-HR
Croatian (Croatia)
Male
SreckoNeural
Video je pregledan gotovo 70 tisuća puta, a neki od obožavatelja su mu u komentarima pisali kako ih je motivirao.
hu-HU
Hungarian (Hungary)
Male
TamasNeural
A lakóhelyem nagyon komfortos.
id-ID
Indonesian (Indonesia)
Female
GadisNeural
Inflasi ringan terjadi apabila kenaikan harga berada di bawah angka 10% setahun.
ms-MY
Malay (Malaysia)
Male
OsmanNeural
Setiap individu perlu memakai topeng muka ketika berada di luar.
nb-NO
Norwegian (Bokmål, Norway)
Male
FinnNeural
Jansson forteller at den svenske øya tar imot rundt 8000 besøkende fra Norge årlig.
nb-NO
Norwegian (Bokmål, Norway)
Female
PernilleNeural
For en fantastisk forestilling!
nl-NL
Dutch (Netherlands)
Female
FennaNeural
De afstand tussen Rotterdam en Breda is ongeveer 45 km.
nl-NL
Dutch (Netherlands)
Male
MaartenNeural
Zij heeft haar studie al een tijdje geleden afgerond.
pl-PL
Polish (Poland)
Female
AgnieszkaNeural
To już nie będzie to samo, będzie drożej.
pl-PL
Polish (Poland)
Male
MarekNeural
Na wszelki wypadek sprawdź, czy coś cię jednak nie zaskoczy.
pt-PT
Portuguese (Portugal)
Male
DuarteNeural
Para a aprovação do exame, tenho de ter pelo menos 80% das respostas corretas.
pt-PT
Portuguese (Portugal)
Female
RaquelNeural
A minha mãe ensinou-me que devo ter respeito por todos, mas principalmente pelos mais velhos.
ro-RO
Romanian (Romania)
Male
EmilNeural
Actul normativ se axează pe instituirea de măsuri active, 41,5 % din salariul de bază la revenirea din șomaj tehnic.
ru-RU
Russian (Russia)
Male
DmitryNeural
Ранее посольство требовало от агентства опровержения статьи о количестве больничных коек в России.
ru-RU
Russian (Russia)
Female
SvetlanaNeural
Изменений в организме людей, попробовавших еду без приправ, не произошло.
sk-SK
Slovak (Slovakia)
Male
LukasNeural
Zápis 45 % je v skutočnosti iba skratka pre zlomok.
sl-SI
Slovenian (Slovenia)
Male
RokNeural
Zloraba bonov in dvigovanje cen turističnih storitev je nesprejemljivo ravnanje.
sv-SE
Swedish (Sweden)
Male
MattiasNeural
Båda lagen bjöd på riktigt bra hockey och skapade flera riktigt bra målchanser.
Sosyal mesafeye büyük ölçüde riayet eden çocuklar, başta mahalle parkları olmak üzere sahiller ve oyun parklarında enerji attı.
vi-VN
Vietnamese (Vietnam)
Male
NamMinhNeural
Nhiệt độ hiện tại ở thành phố Hồ Chí Minh là 38 độ C.
zh-HK
Chinese (Cantonese, Traditional)
Female
HiuMaanNeural
抗疫舉措成為安全重啟經濟的重要一環。
zh-HK
Chinese (Cantonese, Traditional)
Male
WanLungNeural
隨着疫情緩和,愈來愈多人回到辦公室上班,但是很多人仍想留在家中工作(work from home)。
zh-TW
Chinese (Taiwanese Mandarin)
Female
HsiaoChenNeural
賭博的勝率應該不到50%。
zh-TW
Chinese (Taiwanese Mandarin)
Male
YunJheNeural
台北車站大廳能不能坐,連日引發正反意見。
5 new voices are in public preview
We have also added 5 male voices in the 5 low-resource languages that have been supported since November. These voices are available in public preview in three Azure regions: EastUS, SouthEastAsia and WestEurope.
Hear the samples below:
Locale
Language
Gender
Voice Name
Sample audio
et-EE
Estonian (Estonia)
Male
KertNeural
Ametlikku meetodit sellise pettuse avastamiseks ei olegi olemas.
ga-IE
Irish (Ireland)
Male
ColmNeural
Ritheadh próiseas comhairliúcháin faoin scéal sa bhfómhar.
lt-LT
Lithuanian (Lithuania)
Male
LeonasNeural
Aišku, anksčiau ar vėliau paaiškės tos priežastys.
lv-LV
Latvian (Latvia)
Male
NilsNeural
Aizvadīto gadu uzņēmums noslēdzis ar 6,3 miljonu eiro zaudējumiem.
mt-MT
Maltese (Malta)
Male
JosephNeural
Anki tfajjel tal-primarja jaf li l-popolazzjoni tikber fejn hemm il-prosperità.
In general, Neural TTS can convert text to lifelike speech, however there are nuances that can always be improved. For example, we have customers who have requested the ability to support a scenario where Katja, our de-DE neural voice, can pronounce English words in the context of a German sentence. This was valuable feedback, and we anticipate a similar need across languages.
For German, we observed that our users prefer the voice to handle an English word/phrase as close as the native English pronunciation. To enable a voice model to speak English as a second language, it is normally required that we collect the speech data of the same speaker speaking English besides his/her native language. This is a big challenge as we do not have sufficient multi-language speech data from our German voice talents. By leveraging cross-lingual capability of UNI-TTS, we are able to generate more English pronunciation data with the transferred voice from our German voice talent. Such data is used to improve the quality of the English word/phrase pronunciations for the German Katja voice, so Katja can pronounce English words in a more natural way.
The CMOS metric is used to measure the improvement of the English word pronunciation for Katja. Below table shows that the updated model is significantly better in pronouncing English words in the context of a German sentence.
Script
Old
New
Star Wars – Das Erwachen der Macht
Three Billboards outside Ebbing, Missouri.
This improvement has now been released to the Azure Neural TTS service for Katja. Moving forward, we’ll extend this capability to support more languages.
Tell us your experience!
By offering more voices across more languages and locales, we anticipate developers across the world will be able to build applications that change experiences for millions. Whether you’re building a voice-enabled chatbot or IoT device, an IVR solution, adding read-aloud features to your app, converting e-books to audio books, or even adding Speech to a translation app, you can make all these experiences natural sounding and fun with Neural TTS.
Let us know how you are using or plan to use Neural TTS voices in this form. If you prefer, you can also contact us at mstts [at] microsoft.com. We look forward to hearing your experience and developing more compelling services together with you for the developers around the world.
Retailers are already preparing for what they hope will be a successful shopping season. Because of COVID-19, it’s likely that we’ll be going online to look for those perfect buys. With so many deals around and what seem like eternal “Black Friday” sales, it’s important to keep some online shopping tips in mind.
So, if you plan to shop from the comfort of your home instead of heading out in person for those doorbuster deals, first, make sure your home computer has the latest antivirus software updated. This will help protect you from hackers and identity thieves. Read more computer safety tips here.
Once you’re ready to shop, make sure you:
Take time to compare products. To get the best deal, compare products. Do research online, check product comparison sites, and read online reviews.
Check out the seller. Confirm that the seller is legit. Look for reviews about their reputation and customer service, and be sure you can contact the seller if you have a dispute.
Look for coupon codes. Search the store’s name with terms like “coupons,” “discounts,” or “free shipping.”
Pay by credit card. Paying by credit card gives you added protections. Never mail cash or wire money to online sellers. If the seller asks you to pay this way, it could be a scam.
Use secure checkout. Before you enter your credit card information online, check that the website address starts with “https.” The “s” stands for secure. If you don’t see the “s,” don’t enter your information.
Keep records of online transactions until you get the goods, confirm you got what you ordered, and that you’re satisfied you won’t have to return the item.
This article is contributed. See the original author and article here.
In this article, I will demonstrate how to call a logic app with the Aouth2 approach
The problem that I going to solve is to provide a gatekeeper page that will not download files from the Storage account unless the user is authenticated.
I will utilize a static web site on the storage account to host small HTTP pages and javascripts
I have used the library GitHub – AzureAD/microsoft-authentication-library-for-js: Microsoft Authentication Library (MSAL) for JS to do the authentication
If you have access to multiple tenants, use the Directory + subscription filter
in the top menu to select the tenant in which you want to register an application.
Search for and select Azure Active Directory.
Under Manage, select App registrations > New registration.
Enter a Name for your application. Users of your app might see this name, and you can change it later.
Under Supported account types, select Accounts in any organizational directory and personal Microsoft accounts.
Select Register. On the app Overview page, note the Application (client) ID value for later use.
Under Platform Configurations, select Add a platform. A panel opens on the left. There, select the Web Applications region.
Still on the left, set the Redirect URI value to [the static website URL] Then, select Access Token and ID Token.
Select Configure.
1.2.2 Build the HTML page with msal.js
Create HTML with the below content
!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>Demo for using Logic app using Azure Active Directory Authorization Policies </title>
<link rel="SHORTCUT ICON" href="./favicon.svg" type="image/x-icon">
<!-- msal.min.js can be used in the place of msal.js; included msal.js to make debug easy -->
https://alcdn.msauth.net/lib/1.4.4/js/msal.js
<!-- msal.js with a fallback to backup CDN -->
<script type="text/javascript">
if (typeof Msal === 'undefined') document.write(unescape("%3Cscript src='https://alcdn.msftauth.net/lib/1.4.4/js/msal.js' type='text/javascript' %3E%3C/script%3E"));
</script>
<!-- adding Bootstrap 4 for UI components -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
<a class="navbar-brand" href="/">Storage account Gate keeper using logic app </a>
<div class="btn-group ml-auto dropleft">
<button type="button" id="signIn" class="btn btn-secondary" onclick="signIn()">Sign In</button>
<button type="button" id="signOut" class="btn btn-success d-none" onclick="signOut()">Sign Out</button>
</div>
</nav>
<br>
<h5 class="card-header text-center">this is a demo only site </h5>
<br>
<div class="row" style="margin:auto">
<div id="card-div" class="col-md-3 d-none">
<div class="card text-center">
<div class="card-body">
<h5 class="card-title" id="welcomeMessage">Please sign-in to see your profile and read your mails</h5>
<div id="profile-div"></div>
<br>
<br>
<button class="btn btn-primary" id="seeProfile" onclick="downloadFile()">Download File</button>
<br>
</div>
</div>
</div>
<br>
<br>
<div class="col-md-4">
<div class="list-group" id="list-tab" role="tablist">
</div>
</div>
<div class="col-md-5">
<div class="tab-content" id="nav-tabContent">
</div>
</div>
</div>
<br>
<br>
<!-- importing bootstrap.js and supporting js libraries -->
https://code.jquery.com/jquery-3.4.1.slim.min.jshttps://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js
<!-- importing app scripts (load order is important) -->
http://./authConfig.jshttp://./ui.jshttp://./authPopup.js
</body>
</html>
Create file authPopup.js
// Create the main myMSALObj instance
// configuration parameters are located at authConfig.js
const myMSALObj = new Msal.UserAgentApplication(msalConfig);
var Bearer = ''
let searchParams = new URLSearchParams(window.location.search)
let fileParam = searchParams.get('file')
function signIn() {
myMSALObj.loginPopup(loginRequest)
.then(loginResponse => {
console.log("id_token acquired at: " + new Date().toString());
console.log(loginResponse);
if (myMSALObj.getAccount()) {
Bearer = loginResponse.idToken.rawIdToken;
showWelcomeMessage(myMSALObj.getAccount());
}
}).catch(error => {
console.log(error);
});
}
function signOut() {
myMSALObj.logout();
}
//endpoint, token, callback
function downloadFile() {
const headers = new Headers();
const bearer = `Bearer ${Bearer}`;
headers.append("Authorization", bearer);
headers.append("FileName", fileParam);
const options = {
method: "post",
headers: headers
};
fetch(logicAppUrl, options)
.then(resp => resp.blob())
.then(blob => {
const url = window.URL.createObjectURL(blob);
const a = document.createElement('a');
a.style.display = 'none';
a.href = url;
// the filename you want
a.download = fileParam;
document.body.appendChild(a);
a.click();
window.URL.revokeObjectURL(url);
alert('your file has downloaded!'); // or you know, something with better UX...
})
.catch(error => console.log(error))
}
authConfig.js
// Config object to be passed to Msal on creation.
// For a full list of msal.js configuration parameters,
// visit https://azuread.github.io/microsoft-authentication-library-for-js/docs/msal/modules/_authenticationparameters_.html
const msalConfig = {
auth: {
clientId: "7ebe8908-7acd-4e20-b1f4-24715b364cf0",
authority: "https://login.microsoftonline.com/common",
redirectUri: "https://largfile.z6.web.core.windows.net",
},
cache: {
cacheLocation: "sessionStorage", // This configures where your cache will be stored
storeAuthStateInCookie: false, // Set this to "true" if you are having issues on IE11 or Edge
}
};
// Add here the scopes to request when obtaining an access token for MS Graph API
// for more, visit https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-core/docs/scopes.md
const loginRequest = {
scopes: ["openid", "profile", "User.Read"]
};
const logicAppUrl='https://prod-39.eastus.logic.azure.com:443/workflows/92083fac9d2c4805b153907db6976f86/triggers/manual/paths/invoke?api-version=2016-10-01'
Creating the logic app
The logic app will receive the request using HTTP and will pass the file name to the storage account action
1.3.1 Enable logic app Azure Active Directory Authorization Policies
This article is contributed. See the original author and article here.
This past September at Ignite 2020, we made a ton of new hybrid announcements. And not only did new products go into GA and Preview, we showed how customers have been using our hybrid solutions every day in their own on-premises, multi-cloud, and multi-edge environments.
Organizations such as Africa’s Talking, Ferguson,Haivision, KPMG, RxR Realty, and Siemens Healthineers have been using Azure Arc and Azure Stack to bring Azure to any infrastructure and modernize on-premises datacenters. As more customers adopt these solutions, we are excited to share the new Hybrid and Multicloud Architectures section in Architecture Center – which is part of our Docs website – for how to bring these solutions to life.
Azure Hybrid Cloud Architectures
Azure Arc
Azure Arc hybrid management and deployment for Kubernetes clusters demonstrates how Azure Arc extends Kubernetes cluster management and configuration across your datacenters, multi-cloud environments, and edge locations. By extending the Azure Resource Manager (ARM) control plane, Azure Arc allows you to project your Kubernetes clusters deployed outside of Azure alongside those in Azure – enabling you to have a single interface to manage the sprawl of clusters. You can register any CNCF Kubernetes cluster that is running and start using services like Azure Monitor and Azure Policy.
Back up files and applications on Azure Stack Hubdescribes an optimized approach to backup and restore of files and applications of VM-based user workloads hosted on Azure Stack Hub. With backup and restore being essential components of any BC/DR strategy, Azure Stack Hub delivers a scalable, resilient, easy-to-manage and cost-efficient backup solution that relies on a bomination and cloud and on-premises components.
Azure Stack Hub
Azure Security Center and Azure Sentinel
Hybrid Security Monitoring using Azure Security Center and Azure Sentinelillustrates how to monitor the security configuration and telemetry of on-premises and Azure operation system workloads. Enabling Azure Security Center to monitor Windows and Linux servers, Azure Stack VMs, and integrating Azure Sentinel with Azure Security Center help you detect, hunt, prevent, and respond to threats across your entire hybrid estate – even resources hosted outside of Azure.
This article is contributed. See the original author and article here.
The default behavior of the Until Loop is to Succeed if all actions inside it are successful, and depending on your run after behavior, when the Loop limit is reached. This behavior can be changed from the code view of the Logic App.
The default behavior:
Actions are Successful, the Loop hits the limit and returns Success as all actions were successful. The limit was hit but the result is Success for the Loop.
Let’s say you wish to change this behavior and you require the Until Loop to fail when it reaches the Loop Limit.
Fail Loop when limit is reached behavior:
To let the Until Loop fail when the limit is reached; just add the below in the code behind in the JSON of the Until Loop, this option is not available in the GUI yet (at the time of writing this blog):
Recent Comments