Sie sind auf Seite 1von 17

TRANSLATOR

SPEECH API
DE
MICROSOFT

Gonzales Coronel
Mario Ivan
Mendoza Valeria
Ordaz Cervantes
Erika Itzel

ADMINISTRACION DE
SERVIDORES

5701
Contenido
Introduccin ....................................................................................................................................... 2
APIS de voz a texto .......................................................................................................................... 2
Translator Speech Api De Microsoft .............................................................................................. 3
Introduccin al reconocimiento de voz mediante la API REST ............................................. 5
Como trabaja ............................................................................................................................... 12
Creacin de una instancia de Azure SQL Database en Azure Portal .................................... 13
Iniciar sesin en el portal de Azure ..................................................................................... 13
Creacin de una Base de datos SQL .................................................................................. 13
CONSULTA A SQL DATABASE ............................................................................................ 15
Introduccin

Hay tecnologas que estn entre nosotros desde hace mucho tiempo pero que por
alguna razn no terminan de cuajar, y esto probablemente se aplique a la
tecnologa del habla, del reconocimiento de voz, que por algn motivo s, las
tenemos ahora en los asistentes del telfono (lo cual no creo que sea
extremadamente exitoso), pero que no se han convertido en tecnologas que
usemos con frecuencia o que nos sean cotidianas. No encuentro una razn para
que las cosas sean as, pero lo son.

Sin embargo, eso no quiere decir que no se hagan esfuerzos precisamente para
que los desarrolladores busquen nuevos nichos de mercado para las tecnologas
del habla y ahora Microsoft ha decidido liberar una nueva versin de su Translator
API, el cual puede dar a los desarrolladores las mismas facilidades que se tienen
en el Skype Translator y en las apps de iOS y Android de Microsoft Translator.

APIS de voz a texto


Hoy en da se habla sobre sobre algunas APIs de Microsoft para convertir texto en
audio y voz a texto.

Las APIS de voz a texto convierten el habla humana en texto que se puede utilizar
como entrada o comandos para controlar su aplicacin.

Gracias a estas APIS se puede hacer la conversin de texto a voz convierten el


texto en secuencias de audio que se pueden reproducir al usuario de la aplicacin.

Las APIs de voz a texto transcriben secuencias de audio en texto que su


aplicacin puede mostrar al usuario o actuar como entrada de comando.

Tanto las API de voz como de texto enriquecen el texto transcrito aadiendo
maysculas y puntuacin, enmascaramiento de la profanacin y normalizacin del
texto.

Algunas APIS son:

API de WebSocket, til para aplicaciones, necesita una experiencia de


usuario mejorada al utilizar la potencia de la conexin WebSocket de dplex
completo. Las aplicaciones que utilizan esta API obtienen acceso a
funciones avanzadas como hiptesis de reconocimiento de voz. Esta opcin
de API tambin es mejor para aplicaciones que necesitan transcribir
pasajes de audio ms largos.
Translator Speech Api De Microsoft

Microsoft Translator Speech API es un servicio de traduccin automtica basada


en la nube. La API permite a los desarrolladores agregar traducciones de voz en
tiempo real y de un extremo a otro a sus aplicaciones o servicios.

La API de Microsoft Translator Speech, que forma parte de la coleccin de API de


Servicios Cognitivos de Microsoft es un servicio de traduccin automtica basado
en la nube. La API permite a las empresas agregar traducciones de voz de
extremo a extremo, en tiempo real, a sus aplicaciones o servicios. Basado en la
tecnologa REST estndar de la industria, puede utilizarse para crear aplicaciones,
herramientas o cualquier solucin que requiera traduccin de habla en varios
idiomas independientemente del sistema operativo o de los lenguajes de
desarrollo de destino.

Construido para las empresas, Microsoft Translator es una solucin probada,


personalizable y escalable para la traduccin automtica. La tecnologa de
Microsoft Translator habilita las funciones de traduccin de voz en los productos
de Microsoft, como Skype Translator y Microsoft Translator iOS y Android Apps.
La traduccin del habla est disponible en varios idiomas. La traduccin de voz a
texto est disponible en cualquiera de estos idiomas y en todos los 60 idiomas
soportados por Translator.
Las API de voz a texto de Microsoft admiten mltiples modos de reconocimiento
de voz. Se puede elegir el modo que produzca los mejores resultados de
reconocimiento para su aplicacin.

Microsoft API traductor de voz es, la API de Microsoft servicios cognitivos se


incluye en la coleccin, basada en la nube de traduccin de voz automtico
(Traduccin automtica) es un servicio. Esta API Mediante el uso de la, se puede
aadir una funcin de traduccin de voz en tiempo real de las aplicaciones y
servicios de extremo a extremo. Se basa en la tecnologa REST estndar de la
industria, independientemente del objetivo del sistema operativo y el desarrollo del
lenguaje, tales como aplicaciones y herramientas que requieren traduccin de la
voz en varios idiomas se pueden utilizar para construir una variedad de
soluciones.

Descripcin del modo


Interactivo "Comando y control" para escenarios interactivos de aplicacin
de usuario. Los usuarios hablan frases cortas como comandos para una
aplicacin.
Dictado Reconocimiento continuo para escenarios de dictado. Los usuarios
hablan oraciones ms largas que se muestran como texto. Los usuarios
adoptan un estilo de habla ms formal.
Conversacin Reconocimiento contino para transcribir conversaciones
entre humanos. Los usuarios adoptan un estilo de habla menos formal y
pueden alternar entre oraciones ms largas y frases ms cortas.

Para obtener ms informacin, se puede consultar los Modos de reconocimiento


en la referencia de la API.

Lenguajes compatibles con reconocimiento de voz


Las API de voz a texto admiten muchas lenguas habladas en mltiples dialectos.
Para obtener la lista completa de idiomas admitidos en cada modo de
reconocimiento, se puede consultar los Lenguajes de reconocimiento.

Texto a voz (sntesis del habla)


La API de texto a voz utiliza REST para convertir texto estructurado en una
secuencia de audio. Las API proporcionan texto rpido a conversin de voz en
varias voces e idiomas. Para obtener la lista completa de idiomas y voces
admitidos, consulte Locales compatibles y Fuentes de voz.
REST, til para aplicaciones que necesitan convertir comandos de voz
cortos en texto, pero que no necesitan comentarios simultneos de los
usuarios. La API REST utiliza la codificacin de transferencia HTTP
fragmentada para enviar los bytes de audio al servicio.

La cantidad mxima de audio devuelta para una sola solicitud es de 15 segundos.


Microsoft traductor discurso API, parte de la coleccin de Microsoft API de
servicios cognitivos , es un servicio basado en la nube la traduccin
automtica . La API permite a las empresas agregar traducciones de voz de
extremo a extremo, en tiempo real, a sus aplicaciones o servicios. Basado en la
tecnologa estndar de resto de la industria, puede utilizarse para crear
aplicaciones, herramientas o cualquier solucin que requiera traduccin varios
idiomas discurso sin importar el destino OS o lenguajes de programacin.

Introduccin al reconocimiento de voz mediante la API REST

Con Bing Speech API puede desarrollar aplicaciones utilizando REST API para
convertir el audio hablado en texto.

Requisitos previos
Para acceder al punto final de REST, debe suscribirse a la API de voz que forma
parte de Microsoft Cognitive Services (anteriormente Project Oxford). Despus de
suscribirse, tendr las claves de suscripcin necesarias para ejecutar esta
operacin. Se pueden utilizar tanto las claves primarias como las secundarias.
Para obtener detalles sobre la suscripcin y administracin de claves, consulte
Suscripciones.

Archivo de audio preordenado

Grabe un archivo de audio corto de usted diciendo algo corto (por ejemplo:
"Cmo es el clima hoy?" O "Buscar pelculas divertidas para ver.") Pasar este
audio a la Bing Speech API a travs del punto final REST para tenerlo Transcribir
en texto. O bien, puede utilizar el micrfono en el momento de la solicitud.

Nota
La API de reconocimiento de voz admite audio / wav utilizando los
siguientes cdigos:
PCM single channel

Empezando
Para utilizar el punto final REST de Discurso API, el proceso es el siguiente:

1. Autenticar y obtener un JSON Web Token (JWT) del servicio de token.


2. Establezca el encabezado de solicitud adecuado y enve la solicitud al
punto final REST de Bing Speech API.
3. Analice la respuesta para obtener su texto transcrito.

Las secciones siguientes proporcionarn ms detalles.

Autenticacin
Para acceder al punto final REST, necesita un token OAuth vlido. Para obtener
este token, debe tener una clave de suscripcin de la API de voz. Cuando solicita
un token, el servicio de token enviar el token de acceso como un Token de JSON
Web (JWT). El token de acceso a JWT se pasa a travs del encabezado de
solicitud de voz. El token tiene una expiracin de 10 minutos. La recomendacin
es examinar el token de JWT y comprobar el tiempo de caducidad en lugar de
codificarlo de forma segura a 10 minutos utilizando la propiedad Expiration
JwtSecurityToken.

El cdigo siguiente es un ejemplo de implementacin en C # para saber cmo


manejar la autenticacin:

/*
* This class demonstrates how to get a valid O-auth token.
*/
public class Authentication
{
public static readonly string FetchTokenUri =
"https://api.cognitive.microsoft.com/sts/v1.0";
private string subscriptionKey;
private string token;
private Timer accessTokenRenewer;

//Access token expires every 10 minutes. Renew it every 9 minutes.


private const int RefreshTokenDuration = 9;
public Authentication(string subscriptionKey)
{
this.subscriptionKey = subscriptionKey;
this.token = FetchToken(FetchTokenUri, subscriptionKey).Result;

// renew the token on set duration.


accessTokenRenewer = new Timer(new
TimerCallback(OnTokenExpiredCallback),
this,

TimeSpan.FromMinutes(RefreshTokenDuration),
TimeSpan.FromMilliseconds(-1));
}

public string GetAccessToken()


{
return this.token;
}

private void RenewAccessToken()


{
this.token = FetchToken(FetchTokenUri,
this.subscriptionKey).Result;
Console.WriteLine("Renewed token.");
}

private void OnTokenExpiredCallback(object stateInfo)


{
try
{
RenewAccessToken();
}
catch (Exception ex)
{
Console.WriteLine(string.Format("Failed renewing access
token. Details: {0}", ex.Message));
}
finally
{
try
{
accessTokenRenewer.Change(TimeSpan.FromMinutes(RefreshTokenDuration),
TimeSpan.FromMilliseconds(-1));
}
catch (Exception ex)
{
Console.WriteLine(string.Format("Failed to reschedule
the timer to renew access token. Details: {0}", ex.Message));
}
}
}

private async Task<string> FetchToken(string fetchUri, string


subscriptionKey)
{
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-
Key", subscriptionKey);
UriBuilder uriBuilder = new UriBuilder(fetchUri);
uriBuilder.Path += "/issueToken";

var result = await


client.PostAsync(uriBuilder.Uri.AbsoluteUri, null);
Console.WriteLine("Token Uri: {0}",
uriBuilder.Uri.AbsoluteUri);
return await result.Content.ReadAsStringAsync();
}
}
}

El mtodo FetchToken enva la solicitud y la carga til de autenticacin es la


siguiente:

POST https://api.cognitive.microsoft.com/sts/v1.0/issueToken HTTP/1.1


Ocp-Apim-Subscription-Key: <GUID>
Host: api.cognitive.microsoft.com
Content-Length: 0
Connection: Keep-Alive

Punto final REST


El nombre de host de URL para todas las solicitudes es speech.platform.bing.com.
Por ejemplo,

https://speech.platform.bing.com/speech/recognition/interactive/cognitiveservice
s/v1?language=it-IT

Modo de reconocimiento

Especificar el modo de reconocimiento como parte de la ruta de acceso de URL


para el servicio de Microsoft Speech. Se admiten los siguientes modos de
reconocimiento.

Modo Camino URL Example


/speech/recognition/interacti https://speech.platform.bin
ve/cognitiveservices/v1 g.com/speech/recognition/i
Interactivo / Comando
nteractive/cognitiveservice
s/v1?language=pt-BR
/speech/recognition/convers https://speech.platform.bin
ation/cognitiveservices/v1 g.com/speech/recognition/
conversacin
conversation/cognitiveservi
ces/v1?language=en-US
/speech/recognition/dictation https://speech.platform.bin
/cognitiveservices/v1 g.com/speech/recognition/
Dictado
dictation/cognitiveservices/
v1?language=fr-FR

Encabezados de solicitudes

Para enviar la solicitud al punto final REST, cree un objeto HttpWebRequest y


establezca los encabezados de la solicitud. Por ejemplo, establezca Mtodo =
"POST", establezca Host = @ "speech.platform.bing.com" y establezca el token de
acceso de la siguiente manera: Headers ["Authorization"] = "Bearer" + token ;. El
siguiente fragmento de cdigo muestra un ejemplo de un encabezado de solicitud.

C#Copiar

HttpWebRequest request = null;


request = (HttpWebRequest)HttpWebRequest.Create(requestUri);
request.SendChunked = true;
request.Accept = @"application/json;text/xml";
request.Method = "POST";
request.ProtocolVersion = HttpVersion.Version11;
request.Host = @"speech.platform.bing.com";
request.ContentType = @"audio/wav; codec=""audio/pcm""; samplerate=16000";
request.Headers["Authorization"] = "Bearer " + token;

La siguiente es una carga til de solicitud de ejemplo:

Copiar

POST
https://speech.platform.bing.com/speech/recognition/interactive/cognitiveservice
s/v1?language=en-US&format=detailed&requestid=39530efe-5677-416a-98b0-
93e13ec93c2b HTTP/1.1
Accept: application/json;text/xml
Content-Type: audio/wav; codec="audio/pcm"; samplerate=16000
Authorization: Bearer
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzY29wZSI6Imh0dHBzOi8vc3BlZWNoLnBsYXRmb3J
tLmJpbmcuY29tIiwic3Vic2NyaXB0aW9uLWlkIjoiMWRjYWQxZTQzZWZlNDM2MmIzMjg2ZWY2OTIzYTA
5MjYiLCJwcm9kdWN0LWlkIjoiQmluZy5TcGVlY2guRjAiLCJjb2duaXRpdmUtc2VydmljZXMtZW5kcG9
pbnQiOiJodHRwczovL2FwaS5jb2duaXRpdmUubWljcm9zb2Z0LmNvbS9pbnRlcm5hbC92MS4wLyIsImF
6dXJlLXJlc291cmNlLWlkIjoiL3N1YnNjcmlwdGlvbnMvYTM0Y2FkYmYtNTU5My00ZWYxLWI0MjItMDJ
hMDMyNmQ2NmZkL3Jlc291cmNlR3JvdXBzL1Rlc3QvcHJvdmlkZXJzL01pY3Jvc29mdC5Db2duaXRpdmV
TZXJ2aWNlcy9hY2NvdW50cy9UZXN0U1BlZWNoIiwiaXNzIjoidXJuOm1zLmNvZ25pdGl2ZXNlcnZpY2V
zIiwiYXVkIjoidXJuOm1zLnNwZWVjaCIsImV4cCI6MTQ5MzQyOTE2OX0._Bhx7nneMto2gjAAwmIO6ei
SejQ2Nqhd8xFl0odjk40
Host: speech.platform.bing.com
Transfer-Encoding: chunked
Expect: 100-continue

Codificacin de transferencia fragmentada

Bing Speech API admite la codificacin de transferencia chuncked para una


transmisin de audio eficiente. Para transcribir el discurso al texto, puede enviar el
audio como un fragmento completo o puede cortar el audio en trozos pequeos.
Para la transcripcin de audio eficiente se recomienda que utilice la codificacin de
transferencia de chunked para transmitir el audio al servicio. Otras
implementaciones pueden resultar en mayor latencia percibida por el usuario.

El siguiente fragmento de cdigo muestra un ejemplo de un archivo de audio que


se fragmenta en bloques de 1024 bytes.

using (fs = new FileStream(audioFile, FileMode.Open, FileAccess.Read))


{

/*
* Open a request stream and write 1024 byte chunks in the stream one at
a time.
*/
byte[] buffer = null;
int bytesRead = 0;
using (Stream requestStream = request.GetRequestStream())
{
/*
* Read 1024 raw bytes from the input audio file.
*/
buffer = new Byte[checked((uint)Math.Min(1024, (int)fs.Length))];
while ((bytesRead = fs.Read(buffer, 0, buffer.Length)) != 0)
{
requestStream.Write(buffer, 0, bytesRead);
}

// Flush
requestStream.Flush();
}
}

Respuesta de reconocimiento de voz

Despus de procesar la solicitud, Bing Speech API devuelve los resultados en una
respuesta como formato JSON. El siguiente fragmento de cdigo muestra un
ejemplo de cmo puede leer la respuesta del flujo:

/*
* Get the response from the service.
*/
Console.WriteLine("Response:");
using (WebResponse response = request.GetResponse())
{
Console.WriteLine(((HttpWebResponse)response).StatusCode);

using (StreamReader sr = new StreamReader(response.GetResponseStream()))


{
responseString = sr.ReadToEnd();
}

Console.WriteLine(responseString);
Console.ReadLine();

El siguiente es un ejemplo de respuesta JSON:

OK
{
"RecognitionStatus": "Success",
"Offset": 22500000,
"Duration": 21000000,
"NBest": [{
"Confidence": 0.941552162,
"Lexical": "find a funny movie to watch",
"ITN": "find a funny movie to watch",
"MaskedITN": "find a funny movie to watch",
"Display": "Find a funny movie to watch."
}]
}

Como trabaja

Esta API trata de la primera solucin completa optimizada para las conversaciones
de la vida real (contrarias a los comandos simples que se pueden dar va voz a la
mquina), disponible en el mercado. Explica tambin cmo trabaja usando
tecnologas como redes neuronales profundas para el reconocimiento del habla y
traduccin de textos, y bosqueja las cuatro etapas de la traduccin del habla:

Reconocimiento automtico del habla (ASR Automatic Speech


Recognition) Una red neuronal profunda entrenada por miles de horas de
anlisis de audio con voz como entrada. Este modelo se entrena sobre las
interacciones humano-a-humano en lugar de humano-a-mquina (comandos de
voz), produciendo reconocimiento de voz que se optimiza para las conversaciones
normales.
Texto Verdadero TrueText Una innovacin de Microsoft Research. TrueText
toma el texto literal y lo transforma en algo ms cercano a lo que el usuario intenta
reflejar. Esto se logra quitando las disfluencias del habla como los ums y ahs,
as como las repeticiones. El texto se hace entonces ms legible y traducible
aadiendo pausas en las frases, una puntuacin apropiada y poniendo
maysculas donde deben ir.
Traduccin El texto se traduce en cualquiera de los ms de 50 lenguajes
que soporta Microsoft Translator. Hay ocho lenguajes hablados que se han
incluso optimizado para conversaciones entrenndolo con un milln de
palabras de datos conversacionales, usando los modelos de las redes
neuronales profundas de los lenguajes.
Texto a Voz (text to Speech) si el lenguaje al que se quiere traducir es
uno de los 18 lenguajes soportados, el texto se convierte en la salida de voz
usando sntesis de voz. Esta etapa se omite en los escenarios de voz-a-
texto como por ejemplo, en el subtitulaje de videos.

Microsoft Translator cubre dos tipos de API:


Traduccin voz-a-voz, la cual est disponible para ingls, francs, alemn,
italiano, portugus, espaol, mandarn chino y rabe.
Traduccin Voz-a-texto, para escenarios como webcasts o anlisis BI, que
permite a los desarrolladores traducir cualquier de los ocho lenguajes
soportados para conversaciones hacia alguno de los ms de 50 lenguajes
en modo texto. Hay una prueba gratuita de dos horas. Da unas 7,200
transacciones, donde cada transaccin es equivalente a 1 segundo de
entrada de audio. Para quien necesite ms, puede optar por alguna de las
suscripciones de pago.

Creacin de una instancia de Azure SQL Database en Azure Portal

Iniciar sesin en el portal de Azure


Inicie sesin en el Portal de Azure.
Creacin de una Base de datos SQL

Se crea una base de datos SQL de Azure con un conjunto definido de recursos de
proceso y almacenamiento. La base de datos se crea dentro de un grupo de
recursos de Azure y en un servidor lgico de Azure SQL Database.
1. Haga clic en el botn Nuevo de la esquina superior izquierda de Azure
Portal.
2. En la pgina Nuevo, seleccione Bases de datos y, en la pgina Bases de
datos, seleccione SQL Database.
3. Rellene el formulario de SQL Database con la siguiente informacin

Configuracin
Valor sugerido Descripcin

Para conocer los nombres de base de


Nombre de la datos vlidos, consulte Database
mySampleDatabase
base de datos Identifiers (Identificadores de base de
datos).
Para ms informacin acerca de sus
Suscripcin Su suscripcin
suscripciones, consulte Suscripciones.
Para conocer cules son los nombres de
Grupos de grupo de recursos vlidos, consulte el
myResourceGroup
recursos artculo Naming conventions
(Convenciones de nomenclatura).
Carga el esquema y los datos de
Seleccionar Ejemplo
AdventureWorksLT en la base de datos
origen (AdventureWorksLT)
nueva

4. Rellene el formulario de SQL Server (servidor lgico) con la siguiente


informacin:

Configuracin Valor sugerido Descripcin


Para conocer cules son los nombres de
Nombre del Cualquier nombre servidor vlidos, consulte el artculo
servidor globalmente nico Naming conventions (Convenciones de
nomenclatura).
Inicio de sesin Para conocer los nombres de inicio de
Cualquier nombre
del sesin vlidos, consulte Database
vlido
administrador Identifiers (Identificadores de base de
Configuracin Valor sugerido Descripcin
del servidor datos).
La contrasea debe tener un mnimo de
8 caracteres y debe contener caracteres
Cualquier de tres de las siguientes categoras:
Password
contrasea vlida caracteres en maysculas, caracteres en
minsculas, nmeros y caracteres no
alfanumricos.
Para ms informacin acerca de sus
Suscripcin Su suscripcin
suscripciones, consulte Suscripciones.
Para conocer cules son los nombres de
Grupos de grupo de recursos vlidos, consulte el
myResourceGroup
recursos artculo Naming conventions
(Convenciones de nomenclatura).
Cualquier Para obtener informacin acerca de las
Ubicacin
ubicacin vlida regiones, consulte Regiones de Azure.

5. Cuando haya completado el formulario, haga clic en Seleccionar.


6. Haga clic en Plan de tarifa para especificar el tanto el nivel de rendimiento
como el nivel de servicio de la nueva base de datos. Utilice el control deslizante
para seleccionar 20 DTU y 250 GB de almacenamiento.
7. Despus de seleccionar la cantidad de DTU, haga clic en Aplicar.
8. Una vez completado el formulario de SQL Database, haga clic en Crear para
aprovisionar la base de datos. El aprovisionamiento tarda unos minutos.
9. En la barra de herramientas, haga clic en Notificaciones para supervisar el
proceso de implementacin.

CONSULTA A SQL DATABASE

Ahora que ha creado una base de datos de ejemplo en Azure, vamos a usar la
herramienta de consulta integrada en Azure Portal para confirmar que puede
conectarse a la base de datos y consultar los datos.
1.En la barra de herramientas de la pgina SQL Database de la base de
datos, haga clic en Herramientas. Se abre la pgina Herramientas.
2. Haga clic en Editor de consultas (versin preliminar), en la casilla de
verificacin Trminos de vista previa y en Aceptar. Se abre la pgina
Editor de consultas.
3. Haga clic en Inicio de sesin y despus, cuando se le solicite,
seleccione Autenticacin de servidor SQL Server y especifique el inicio de
sesin y la contrasea de administrador de servidor que cre antes.
4. Una vez autenticado, escriba la siguiente consulta en el panel del editor
de consultas.
SQL
SELECT TOP 20 pc.Name as CategoryName, p.name as ProductName
FROM SalesLT.ProductCategory pc
JOIN SalesLT.Product p
ON pc.productcategoryid = p.productcategoryid;

5. Haga clic en Ejecucin y revise los resultados de la consulta en el panel


Resultados.

Das könnte Ihnen auch gefallen