Compartir a través de


Inicio rápido: Reconocimiento y conversión de voz en texto

Documentación de referencia | Paquete (NuGet) | Ejemplos adicionales en GitHub

En este inicio rápido, se ejecuta una aplicación para trasladar interactivamente la voz de un idioma a texto en otro idioma.

Sugerencia

Pruebe Azure Speech in Foundry Tools Toolkit para compilar y ejecutar fácilmente ejemplos en Visual Studio Code.

Requisitos previos

Configuración del entorno

El SDK de Voz está disponible como paquete NuGet e implementa .NET Standard 2.0. La instalación del SDK de Voz se describe en una sección posterior de esta guía; primero consulte la guía de instalación del SDK para conocer otros requisitos.

Establecimiento de variables de entorno

Debe autenticar su aplicación para acceder a Herramientas de Foundry. Este artículo le muestra cómo utilizar variables de entorno para almacenar sus credenciales. Ahora puede acceder a las variables de entorno desde su código para autenticar su aplicación. Para la producción, utilice una forma más segura de almacenar y acceder a sus credenciales.

Importante

Se recomienda la autenticación de Microsoft Entra ID con identidades administradas para los recursos de Azure para evitar almacenar credenciales con sus aplicaciones que se ejecutan en la nube.

Use las claves de API con precaución. No incluya la clave de API directamente en el código ni la exponga nunca públicamente. En caso de usar claves de API, almacénelas de forma segura en Azure Key Vault, cámbielas periódicamente y restrinja el acceso a Azure Key Vault con el control de acceso basado en roles y las restricciones de acceso de red. Para obtener más información sobre cómo usar las claves de API de forma segura en sus aplicaciones, consulte Claves de API con Azure Key Vault.

Para más información sobre la seguridad de los servicios de AI, consulte Autenticación de solicitudes a los servicios de Azure AI.

Para establecer las variables de entorno para la clave de recurso de Voz y el punto de conexión, abra una ventana de consola y siga las instrucciones del sistema operativo y el entorno de desarrollo.

  • Para establecer la variable de entorno de SPEECH_KEY, reemplace su clave por una de las claves del recurso.
  • Para establecer la ENDPOINT variable de entorno, reemplace tu-punto-de-conexión por uno de los puntos de conexión para su recurso.
setx SPEECH_KEY your-key
setx ENDPOINT your-endpoint

Nota:

Si solo necesita acceder a las variables de entorno en la consola actual, puede establecer la variable de entorno con set en vez de setx.

Después de agregar las variables de entorno, puede que tenga que reiniciar cualquier programa que necesite leer las variables de entorno, incluida la ventana de consola. Por ejemplo, si usa Visual Studio como editor, reinícielo antes de ejecutar el ejemplo.

Traslado de voz a través de un micrófono

Siga estos pasos para crear una nueva aplicación de consola e instalar el SDK de Voz.

  1. Abra un símbolo del sistema donde quiera el nuevo proyecto y cree una aplicación de consola con la CLI de .NET. El archivo Program.cs debe crearse en el directorio del proyecto.

    dotnet new console
    
  2. Instale el SDK de Voz en el nuevo proyecto con la CLI de .NET.

    dotnet add package Microsoft.CognitiveServices.Speech
    
  3. Reemplace el contenido de Program.cs por el código siguiente.

    using System;
    using System.IO;
    using System.Threading.Tasks;
    using Microsoft.CognitiveServices.Speech;
    using Microsoft.CognitiveServices.Speech.Audio;
    using Microsoft.CognitiveServices.Speech.Translation;
    
    class Program 
    {
        // This example requires environment variables named "SPEECH_KEY" and "ENDPOINT"
        static string speechKey = Environment.GetEnvironmentVariable("SPEECH_KEY");
        static string endpoint = Environment.GetEnvironmentVariable("ENDPOINT");
    
        static void OutputSpeechRecognitionResult(TranslationRecognitionResult translationRecognitionResult)
        {
            switch (translationRecognitionResult.Reason)
            {
                case ResultReason.TranslatedSpeech:
                    Console.WriteLine($"RECOGNIZED: Text={translationRecognitionResult.Text}");
                    foreach (var element in translationRecognitionResult.Translations)
                    {
                        Console.WriteLine($"TRANSLATED into '{element.Key}': {element.Value}");
                    }
                    break;
                case ResultReason.NoMatch:
                    Console.WriteLine($"NOMATCH: Speech could not be recognized.");
                    break;
                case ResultReason.Canceled:
                    var cancellation = CancellationDetails.FromResult(translationRecognitionResult);
                    Console.WriteLine($"CANCELED: Reason={cancellation.Reason}");
    
                    if (cancellation.Reason == CancellationReason.Error)
                    {
                        Console.WriteLine($"CANCELED: ErrorCode={cancellation.ErrorCode}");
                        Console.WriteLine($"CANCELED: ErrorDetails={cancellation.ErrorDetails}");
                        Console.WriteLine($"CANCELED: Did you set the speech resource key and endpoint values?");
                    }
                    break;
            }
        }
    
        async static Task Main(string[] args)
        {
            var speechTranslationConfig = SpeechTranslationConfig.FromEndpoint(speechKey, endpoint);       
            speechTranslationConfig.SpeechRecognitionLanguage = "en-US";
            speechTranslationConfig.AddTargetLanguage("it");
    
            using var audioConfig = AudioConfig.FromDefaultMicrophoneInput();
            using var translationRecognizer = new TranslationRecognizer(speechTranslationConfig, audioConfig);
    
            Console.WriteLine("Speak into your microphone.");
            var translationRecognitionResult = await translationRecognizer.RecognizeOnceAsync();
            OutputSpeechRecognitionResult(translationRecognitionResult);
        }
    }
    
  4. Para cambiar el idioma de reconocimiento de voz, reemplace en-US por otro idioma admitido. Especifique la configuración regional completa con un separador de guiones (-). Por ejemplo, es-ES para Español (España). El idioma predeterminado es en-US si no especifica un idioma. Para obtener más información sobre cómo identificar uno de los distintos idiomas que se pueden hablar, consulte Identificación del idioma.

  5. Para cambiar el idioma de destino de la traducción, reemplace it por otro idioma admitido. Con pocas excepciones, solo se especifica el código de idioma que precede al separador de guiones locales (-). Por ejemplo, use es para español (España) en lugar de es-ES. El idioma predeterminado es en si no especifica un idioma.

Ejecute la nueva aplicación de consola para iniciar el reconocimiento de voz a través de un micrófono:

dotnet run

Hable por el micrófono cuando se le solicite. Lo que diga debe ser la salida como texto traducido en el idioma de destino:

Speak into your microphone.
RECOGNIZED: Text=I'm excited to try speech translation.
TRANSLATED into 'it': Sono entusiasta di provare la traduzione vocale.

Observaciones

Después de completar el inicio rápido, estas son algunas consideraciones más:

  • En este ejemplo se usa la operación RecognizeOnceAsync para transcribir expresiones de hasta 30 segundos, o hasta que se detecta el silencio. Para obtener información sobre el reconocimiento continuo de audio más largo, incluidas las conversaciones en varios idiomas, consulte Traducción de voz.
  • Para reconocer la voz de un archivo de audio, use FromWavFileInput en lugar de FromDefaultMicrophoneInput:
    using var audioConfig = AudioConfig.FromWavFileInput("YourAudioFile.wav");
    
  • Para archivos de audio comprimidos como MP4, instale GStreamer y utilice PullAudioInputStream o PushAudioInputStream. Para más información, consulte Uso de entradas de audio comprimido.

Limpieza de recursos

Puede usar Azure Portal o la Interfaz de la línea de comandos (CLI) de Azure para quitar el recurso de Voz que creó.

Documentación de referencia | Paquete (NuGet) | Ejemplos adicionales en GitHub

En este inicio rápido, se ejecuta una aplicación para trasladar interactivamente la voz de un idioma a texto en otro idioma.

Sugerencia

Pruebe Azure Speech in Foundry Tools Toolkit para compilar y ejecutar fácilmente ejemplos en Visual Studio Code.

Requisitos previos

Configuración del entorno

El SDK de Voz está disponible como paquete NuGet e implementa .NET Standard 2.0. La instalación del SDK de Voz se describe en una sección más adelante de esta guía; primero consulte la SDK installation guide, (guía de instalación del SDK), para conocer otros requisitos

Establecimiento de variables de entorno

Debe autenticar su aplicación para acceder a Herramientas de Foundry. Este artículo le muestra cómo utilizar variables de entorno para almacenar sus credenciales. Ahora puede acceder a las variables de entorno desde su código para autenticar su aplicación. Para la producción, utilice una forma más segura de almacenar y acceder a sus credenciales.

Importante

Se recomienda la autenticación de Microsoft Entra ID con identidades administradas para los recursos de Azure para evitar almacenar credenciales con sus aplicaciones que se ejecutan en la nube.

Use las claves de API con precaución. No incluya la clave de API directamente en el código ni la exponga nunca públicamente. En caso de usar claves de API, almacénelas de forma segura en Azure Key Vault, cámbielas periódicamente y restrinja el acceso a Azure Key Vault con el control de acceso basado en roles y las restricciones de acceso de red. Para obtener más información sobre cómo usar las claves de API de forma segura en sus aplicaciones, consulte Claves de API con Azure Key Vault.

Para más información sobre la seguridad de los servicios de AI, consulte Autenticación de solicitudes a los servicios de Azure AI.

Para establecer las variables de entorno para la clave de recurso de Voz y el punto de conexión, abra una ventana de consola y siga las instrucciones del sistema operativo y el entorno de desarrollo.

  • Para establecer la variable de entorno de SPEECH_KEY, reemplace su clave por una de las claves del recurso.
  • Para establecer la ENDPOINT variable de entorno, reemplace tu-punto-de-conexión por uno de los puntos de conexión para su recurso.
setx SPEECH_KEY your-key
setx ENDPOINT your-endpoint

Nota:

Si solo necesita acceder a las variables de entorno en la consola actual, puede establecer la variable de entorno con set en vez de setx.

Después de agregar las variables de entorno, puede que tenga que reiniciar cualquier programa que necesite leer las variables de entorno, incluida la ventana de consola. Por ejemplo, si usa Visual Studio como editor, reinícielo antes de ejecutar el ejemplo.

Traslado de voz a través de un micrófono

Siga estos pasos para crear una nueva aplicación de consola e instalar el SDK de Voz.

  1. Cree un proyecto de consola de C++ en Visual Studio Community 2022 denominado SpeechTranslation.

  2. Instale el SDK de Voz en el nuevo proyecto con el administrador de paquetes NuGet.

    Install-Package Microsoft.CognitiveServices.Speech
    
  3. Reemplace el contenido de SpeechTranslation.cpp por el código siguiente:

    #include <iostream> 
    #include <stdlib.h>
    #include <speechapi_cxx.h>
    
    using namespace Microsoft::CognitiveServices::Speech;
    using namespace Microsoft::CognitiveServices::Speech::Audio;
    using namespace Microsoft::CognitiveServices::Speech::Translation;
    
    std::string GetEnvironmentVariable(const char* name);
    
    int main()
    {
        // This example requires environment variables named "SPEECH_KEY" and "END_POINT"
        auto speechKey = GetEnvironmentVariable("SPEECH_KEY");
        auto endpoint = GetEnvironmentVariable("END_POINT");
    
        auto speechTranslationConfig = SpeechTranslationConfig::FromEndpoint(speechKey, endpoint);
        speechTranslationConfig->SetSpeechRecognitionLanguage("en-US");
        speechTranslationConfig->AddTargetLanguage("it");
    
        auto audioConfig = AudioConfig::FromDefaultMicrophoneInput();
        auto translationRecognizer = TranslationRecognizer::FromConfig(speechTranslationConfig, audioConfig);
    
        std::cout << "Speak into your microphone.\n";
        auto result = translationRecognizer->RecognizeOnceAsync().get();
    
        if (result->Reason == ResultReason::TranslatedSpeech)
        {
            std::cout << "RECOGNIZED: Text=" << result->Text << std::endl;
            for (auto pair : result->Translations)
            {
                auto language = pair.first;
                auto translation = pair.second;
                std::cout << "Translated into '" << language << "': " << translation << std::endl;
            }
        }
        else if (result->Reason == ResultReason::NoMatch)
        {
            std::cout << "NOMATCH: Speech could not be recognized." << std::endl;
        }
        else if (result->Reason == ResultReason::Canceled)
        {
            auto cancellation = CancellationDetails::FromResult(result);
            std::cout << "CANCELED: Reason=" << (int)cancellation->Reason << std::endl;
    
            if (cancellation->Reason == CancellationReason::Error)
            {
                std::cout << "CANCELED: ErrorCode=" << (int)cancellation->ErrorCode << std::endl;
                std::cout << "CANCELED: ErrorDetails=" << cancellation->ErrorDetails << std::endl;
                std::cout << "CANCELED: Did you set the speech resource key and endpoint values?" << std::endl;
            }
        }
    }
    
    std::string GetEnvironmentVariable(const char* name)
    {
    #if defined(_MSC_VER)
        size_t requiredSize = 0;
        (void)getenv_s(&requiredSize, nullptr, 0, name);
        if (requiredSize == 0)
        {
            return "";
        }
        auto buffer = std::make_unique<char[]>(requiredSize);
        (void)getenv_s(&requiredSize, buffer.get(), requiredSize, name);
        return buffer.get();
    #else
        auto value = getenv(name);
        return value ? value : "";
    #endif
    }
    
  4. Para cambiar el idioma de reconocimiento de voz, reemplace en-US por otro idioma admitido. Especifique la configuración regional completa con un separador de guiones (-). Por ejemplo, es-ES para Español (España). El idioma predeterminado es en-US si no especifica un idioma. Para obtener más información sobre cómo identificar uno de los distintos idiomas que se pueden hablar, consulte Identificación del idioma.

  5. Para cambiar el idioma de destino de la traducción, reemplace it por otro idioma admitido. Con pocas excepciones, solo se especifica el código de idioma que precede al separador de guiones locales (-). Por ejemplo, use es para español (España) en lugar de es-ES. El idioma predeterminado es en si no especifica un idioma.

Para iniciar el reconocimiento de voz desde un micrófono, compile y ejecute la nueva aplicación de consola.

Hable por el micrófono cuando se le solicite. Lo que diga debe ser la salida como texto traducido en el idioma de destino:

Speak into your microphone.
RECOGNIZED: Text=I'm excited to try speech translation.
Translated into 'it': Sono entusiasta di provare la traduzione vocale.

Observaciones

Después de completar el inicio rápido, estas son algunas consideraciones más:

  • En este ejemplo se usa la operación RecognizeOnceAsync para transcribir expresiones de hasta 30 segundos, o hasta que se detecta el silencio. Para obtener información sobre el reconocimiento continuo de audio más largo, incluidas las conversaciones en varios idiomas, consulte Traducción de voz.
  • Para reconocer la voz de un archivo de audio, use FromWavFileInput en lugar de FromDefaultMicrophoneInput:
    auto audioInput = AudioConfig::FromWavFileInput("YourAudioFile.wav");
    
  • Para archivos de audio comprimidos como MP4, instale GStreamer y utilice PullAudioInputStream o PushAudioInputStream. Para más información, consulte Uso de entradas de audio comprimido.

Limpieza de recursos

Puede usar Azure Portal o la Interfaz de la línea de comandos (CLI) de Azure para quitar el recurso de Voz que creó.

Documentación de referencia | Paquete (Go) | Ejemplos adicionales en GitHub

El SDK de Voz para Go no admite la traducción de voz. Seleccione otro lenguaje de programación o la referencia de Go y los ejemplos vinculados desde el principio de este artículo.

Documentación de referencia | Ejemplos adicionales en GitHub

En este inicio rápido, se ejecuta una aplicación para trasladar interactivamente la voz de un idioma a texto en otro idioma.

Sugerencia

Pruebe Azure Speech in Foundry Tools Toolkit para compilar y ejecutar fácilmente ejemplos en Visual Studio Code.

Requisitos previos

Configuración del entorno

En primer lugar, deberá instalar el SDK de Voz. El ejemplo de esta guía de inicio rápido funciona con el entorno de ejecución de Java.

  1. Instalación de Apache Maven. A continuación, ejecute mvn -v para confirmar que la instalación se ha realizado correctamente.
  2. Cree un nuevo archivo pom.xml en la raíz del proyecto y copie lo siguiente en él:
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.microsoft.cognitiveservices.speech.samples</groupId>
        <artifactId>quickstart-eclipse</artifactId>
        <version>1.0.0-SNAPSHOT</version>
        <build>
            <sourceDirectory>src</sourceDirectory>
            <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                <source>1.8</source>
                <target>1.8</target>
                </configuration>
            </plugin>
            </plugins>
        </build>
        <dependencies>
            <dependency>
            <groupId>com.microsoft.cognitiveservices.speech</groupId>
            <artifactId>client-sdk</artifactId>
            <version>1.43.0</version>
            </dependency>
        </dependencies>
    </project>
    
  3. Instale el SDK de Voz y las dependencias.
    mvn clean dependency:copy-dependencies
    

Establecimiento de variables de entorno

Debe autenticar su aplicación para acceder a Herramientas de Foundry. Este artículo le muestra cómo utilizar variables de entorno para almacenar sus credenciales. Ahora puede acceder a las variables de entorno desde su código para autenticar su aplicación. Para la producción, utilice una forma más segura de almacenar y acceder a sus credenciales.

Importante

Se recomienda la autenticación de Microsoft Entra ID con identidades administradas para los recursos de Azure para evitar almacenar credenciales con sus aplicaciones que se ejecutan en la nube.

Use las claves de API con precaución. No incluya la clave de API directamente en el código ni la exponga nunca públicamente. En caso de usar claves de API, almacénelas de forma segura en Azure Key Vault, cámbielas periódicamente y restrinja el acceso a Azure Key Vault con el control de acceso basado en roles y las restricciones de acceso de red. Para obtener más información sobre cómo usar las claves de API de forma segura en sus aplicaciones, consulte Claves de API con Azure Key Vault.

Para más información sobre la seguridad de los servicios de AI, consulte Autenticación de solicitudes a los servicios de Azure AI.

Para establecer las variables de entorno para la clave de recurso de Voz y el punto de conexión, abra una ventana de consola y siga las instrucciones del sistema operativo y el entorno de desarrollo.

  • Para establecer la variable de entorno de SPEECH_KEY, reemplace su clave por una de las claves del recurso.
  • Para establecer la ENDPOINT variable de entorno, reemplace tu-punto-de-conexión por uno de los puntos de conexión para su recurso.
setx SPEECH_KEY your-key
setx ENDPOINT your-endpoint

Nota:

Si solo necesita acceder a las variables de entorno en la consola actual, puede establecer la variable de entorno con set en vez de setx.

Después de agregar las variables de entorno, puede que tenga que reiniciar cualquier programa que necesite leer las variables de entorno, incluida la ventana de consola. Por ejemplo, si usa Visual Studio como editor, reinícielo antes de ejecutar el ejemplo.

Traslado de voz a través de un micrófono

Siga estos pasos para crear una nueva aplicación de consola para el reconocimiento de voz.

  1. Cree un nuevo archivo denominado SpeechTranslation.java en el mismo directorio raíz del proyecto.

  2. Copie el siguiente código en SpeechTranslation.java:

    import com.microsoft.cognitiveservices.speech.*;
    import com.microsoft.cognitiveservices.speech.audio.AudioConfig;
    import com.microsoft.cognitiveservices.speech.translation.*;
    
    import java.util.concurrent.ExecutionException;
    import java.util.concurrent.Future;
    import java.util.Map;
    
    public class SpeechTranslation {
        // This example requires environment variables named "SPEECH_KEY" and "ENDPOINT"
        private static String speechKey = System.getenv("SPEECH_KEY");
        private static String endpoint = System.getenv("ENDPOINT");
    
        public static void main(String[] args) throws InterruptedException, ExecutionException {
            SpeechTranslationConfig speechTranslationConfig = SpeechTranslationConfig.fromEndpoint(speechKey, endpoint);
            speechTranslationConfig.setSpeechRecognitionLanguage("en-US");
    
            String[] toLanguages = { "it" };
            for (String language : toLanguages) {
                speechTranslationConfig.addTargetLanguage(language);
            }
    
            recognizeFromMicrophone(speechTranslationConfig);
        }
    
        public static void recognizeFromMicrophone(SpeechTranslationConfig speechTranslationConfig) throws InterruptedException, ExecutionException {
            AudioConfig audioConfig = AudioConfig.fromDefaultMicrophoneInput();
            TranslationRecognizer translationRecognizer = new TranslationRecognizer(speechTranslationConfig, audioConfig);
    
            System.out.println("Speak into your microphone.");
            Future<TranslationRecognitionResult> task = translationRecognizer.recognizeOnceAsync();
            TranslationRecognitionResult translationRecognitionResult = task.get();
    
            if (translationRecognitionResult.getReason() == ResultReason.TranslatedSpeech) {
                System.out.println("RECOGNIZED: Text=" + translationRecognitionResult.getText());
                for (Map.Entry<String, String> pair : translationRecognitionResult.getTranslations().entrySet()) {
                    System.out.printf("Translated into '%s': %s\n", pair.getKey(), pair.getValue());
                }
            }
            else if (translationRecognitionResult.getReason() == ResultReason.NoMatch) {
                System.out.println("NOMATCH: Speech could not be recognized.");
            }
            else if (translationRecognitionResult.getReason() == ResultReason.Canceled) {
                CancellationDetails cancellation = CancellationDetails.fromResult(translationRecognitionResult);
                System.out.println("CANCELED: Reason=" + cancellation.getReason());
    
                if (cancellation.getReason() == CancellationReason.Error) {
                    System.out.println("CANCELED: ErrorCode=" + cancellation.getErrorCode());
                    System.out.println("CANCELED: ErrorDetails=" + cancellation.getErrorDetails());
                    System.out.println("CANCELED: Did you set the speech resource key and endpoint values?");
                }
            }
    
            System.exit(0);
        }
    }
    
  3. Para cambiar el idioma de reconocimiento de voz, reemplace en-US por otro idioma admitido. Especifique la configuración regional completa con un separador de guiones (-). Por ejemplo, es-ES para Español (España). El idioma predeterminado es en-US si no especifica un idioma. Para obtener más información sobre cómo identificar uno de los distintos idiomas que se pueden hablar, consulte Identificación del idioma.

  4. Para cambiar el idioma de destino de la traducción, reemplace it por otro idioma admitido. Con pocas excepciones, solo se especifica el código de idioma que precede al separador de guiones locales (-). Por ejemplo, use es para español (España) en lugar de es-ES. El idioma predeterminado es en si no especifica un idioma.

Ejecute la nueva aplicación de consola para iniciar el reconocimiento de voz a través de un micrófono:

javac SpeechTranslation.java -cp ".;target\dependency\*"
java -cp ".;target\dependency\*" SpeechTranslation

Hable por el micrófono cuando se le solicite. Lo que diga debe ser la salida como texto traducido en el idioma de destino:

Speak into your microphone.
RECOGNIZED: Text=I'm excited to try speech translation.
Translated into 'it': Sono entusiasta di provare la traduzione vocale.

Observaciones

Después de completar el inicio rápido, estas son algunas consideraciones más:

  • En este ejemplo se usa la operación RecognizeOnceAsync para transcribir expresiones de hasta 30 segundos, o hasta que se detecta el silencio. Para obtener información sobre el reconocimiento continuo de audio más largo, incluidas las conversaciones en varios idiomas, consulte Traducción de voz.
  • Para reconocer la voz de un archivo de audio, use fromWavFileInput en lugar de fromDefaultMicrophoneInput:
    AudioConfig audioConfig = AudioConfig.fromWavFileInput("YourAudioFile.wav");
    
  • Para archivos de audio comprimidos como MP4, instale GStreamer y utilice PullAudioInputStream o PushAudioInputStream. Para más información, consulte Uso de entradas de audio comprimido.

Limpieza de recursos

Puede usar Azure Portal o la Interfaz de la línea de comandos (CLI) de Azure para quitar el recurso de Voz que creó.

Documentación de referencia | Paquete (npm) | Ejemplos adicionales en GitHub | Código fuente de la biblioteca

En este inicio rápido, se ejecuta una aplicación para trasladar interactivamente la voz de un idioma a texto en otro idioma.

Sugerencia

Pruebe Azure Speech in Foundry Tools Toolkit para compilar y ejecutar fácilmente ejemplos en Visual Studio Code.

Requisitos previos

Configuración

  1. Cree una nueva carpeta translation-quickstart y vaya a la carpeta quickstart mediante el siguiente comando:

    mkdir translation-quickstart && cd translation-quickstart
    
  2. Cree el package.json con el comando siguiente:

    npm init -y
    
  3. Instale el SDK de Voz para JavaScript con:

    npm install microsoft-cognitiveservices-speech-sdk
    

Recuperación de información de recursos

Debe autenticar su aplicación para acceder a Herramientas de Foundry. Este artículo le muestra cómo utilizar variables de entorno para almacenar sus credenciales. Ahora puede acceder a las variables de entorno desde su código para autenticar su aplicación. Para la producción, utilice una forma más segura de almacenar y acceder a sus credenciales.

Importante

Se recomienda la autenticación de Microsoft Entra ID con identidades administradas para los recursos de Azure para evitar almacenar credenciales con sus aplicaciones que se ejecutan en la nube.

Use las claves de API con precaución. No incluya la clave de API directamente en el código ni la exponga nunca públicamente. En caso de usar claves de API, almacénelas de forma segura en Azure Key Vault, cámbielas periódicamente y restrinja el acceso a Azure Key Vault con el control de acceso basado en roles y las restricciones de acceso de red. Para obtener más información sobre cómo usar las claves de API de forma segura en sus aplicaciones, consulte Claves de API con Azure Key Vault.

Para más información sobre la seguridad de los servicios de AI, consulte Autenticación de solicitudes a los servicios de Azure AI.

Para establecer las variables de entorno de su clave de recursos de voz y de su región, abra una ventana de la consola y siga las instrucciones correspondientes a su sistema operativo y a su entorno de desarrollo.

  • Para establecer la variable de entorno de SPEECH_KEY, reemplace su clave por una de las claves del recurso.
  • Para establecer la variable de entorno de SPEECH_REGION, reemplace su región por una de las regiones del recurso.
  • Para establecer la ENDPOINT variable de entorno, reemplácela por your-endpoint el punto de conexión real del recurso de Voz.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
setx ENDPOINT your-endpoint

Nota:

Si solo necesita acceder a las variables de entorno en la consola actual, puede establecer la variable de entorno con set en vez de setx.

Después de agregar las variables de entorno, puede que tenga que reiniciar cualquier programa que necesite leer las variables de entorno, incluida la ventana de consola. Por ejemplo, si usa Visual Studio como editor, reinícielo antes de ejecutar el ejemplo.

Traducción de voz a partir de un archivo

Para traducir la voz desde un archivo:

  1. Cree un nuevo archivo denominado translation.js con el siguiente contenido:

    import { readFileSync } from "fs";
    import { SpeechTranslationConfig, AudioConfig, TranslationRecognizer, ResultReason, CancellationDetails, CancellationReason } from "microsoft-cognitiveservices-speech-sdk";
    // This example requires environment variables named "ENDPOINT" and "SPEECH_KEY"
    const speechTranslationConfig = SpeechTranslationConfig.fromEndpoint(new URL(process.env.ENDPOINT), process.env.SPEECH_KEY);
    speechTranslationConfig.speechRecognitionLanguage = "en-US";
    const language = "it";
    speechTranslationConfig.addTargetLanguage(language);
    function fromFile() {
        const audioConfig = AudioConfig.fromWavFileInput(readFileSync("YourAudioFile.wav"));
        const translationRecognizer = new TranslationRecognizer(speechTranslationConfig, audioConfig);
        translationRecognizer.recognizeOnceAsync((result) => {
            switch (result.reason) {
                case ResultReason.TranslatedSpeech:
                    console.log(`RECOGNIZED: Text=${result.text}`);
                    console.log("Translated into [" + language + "]: " + result.translations.get(language));
                    break;
                case ResultReason.NoMatch:
                    console.log("NOMATCH: Speech could not be recognized.");
                    break;
                case ResultReason.Canceled:
                    const cancellation = CancellationDetails.fromResult(result);
                    console.log(`CANCELED: Reason=${cancellation.reason}`);
                    if (cancellation.reason === CancellationReason.Error) {
                        console.log(`CANCELED: ErrorCode=${cancellation.ErrorCode}`);
                        console.log(`CANCELED: ErrorDetails=${cancellation.errorDetails}`);
                        console.log("CANCELED: Did you set the speech resource key and region values?");
                    }
                    break;
            }
            translationRecognizer.close();
        });
    }
    fromFile();
    
    • En translation.js, reemplace YourAudioFile.wav por su propio archivo WAV. Este ejemplo solo reconoce la voz desde un archivo WAV. Para obtener información sobre otros formatos de audio, consulte Uso de entradas de audio comprimidas. Este ejemplo admite hasta 30 segundos de audio.

    • Para cambiar el idioma de reconocimiento de voz, reemplace en-US por otro idioma admitido. Especifique la configuración regional completa con un separador de guiones (-). Por ejemplo, es-ES para Español (España). El idioma predeterminado es en-US si no especifica un idioma. Para obtener más información sobre cómo identificar uno de los distintos idiomas que se pueden hablar, consulte Identificación del idioma.

    • Para cambiar el idioma de destino de la traducción, reemplace it por otro idioma admitido. Con pocas excepciones, solo se especifica el código de idioma que precede al separador de guiones (-) local. Por ejemplo, use es para español (España) en lugar de es-ES. El idioma predeterminado es en si no especifica un idioma.

  2. Ejecute la nueva aplicación de consola para iniciar el reconocimiento de voz desde un archivo:

    node translation.js
    

Salida

La voz del archivo de audio debe ser la salida como texto traducido en el idioma de destino:

RECOGNIZED: Text=I'm excited to try speech translation.
Translated into [it]: Sono entusiasta di provare la traduzione vocale.

Observaciones

Ahora que ha completado el artículo de inicio rápido, estas son algunas consideraciones adicionales:

En este ejemplo se usa la operación recognizeOnceAsync para transcribir expresiones de hasta 30 segundos, o hasta que se detecta el silencio. Para obtener información sobre el reconocimiento continuo de audio más largo, incluidas las conversaciones en varios idiomas, consulte Traducción de voz.

Nota:

No se admite el reconocimiento de voz a través de un micrófono en Node.js. Solo se admite en un entorno de JavaScript basado en explorador.

Limpieza de recursos

Puede usar Azure Portal o la Interfaz de la línea de comandos (CLI) de Azure para quitar el recurso de Voz que creó.

Documentación de referencia | Paquete (descarga) | Ejemplos adicionales en GitHub

El SDK de Voz para Objective-C admite la traducción de voz, aunque no tenemos ninguna guía disponible aún. Seleccione otro lenguaje de programación para empezar a trabajar y conocer los conceptos, o consulte la referencia de Objective-C y los ejemplos vinculados desde el principio de este artículo.

Documentación de referencia | Paquete (descarga) | Ejemplos adicionales en GitHub

El SDK de Voz para Swift admite la traducción de voz, aunque no tenemos ninguna guía disponible aún. Seleccione otro lenguaje de programación para empezar a trabajar y conocer los conceptos, o consulte la referencia de Swift y los ejemplos vinculados desde el principio de este artículo.

Documentación de referencia | Paquete (PyPi) | Ejemplos adicionales en GitHub

En este inicio rápido, se ejecuta una aplicación para trasladar interactivamente la voz de un idioma a texto en otro idioma.

Sugerencia

Pruebe Azure Speech in Foundry Tools Toolkit para compilar y ejecutar fácilmente ejemplos en Visual Studio Code.

Requisitos previos

Configuración del entorno

El SDK de Voz para Python está disponible como módulo de índice de paquetes de Python (PyPI). El SDK de Voz para Python es compatible con Windows, Linux y macOS.

Instale una versión de Python desde la 3.7 en adelante. Primero consulte la guía de instalación del SDK para conocer más requisitos

Establecimiento de variables de entorno

Debe autenticar su aplicación para acceder a Herramientas de Foundry. Este artículo le muestra cómo utilizar variables de entorno para almacenar sus credenciales. Ahora puede acceder a las variables de entorno desde su código para autenticar su aplicación. Para la producción, utilice una forma más segura de almacenar y acceder a sus credenciales.

Importante

Se recomienda la autenticación de Microsoft Entra ID con identidades administradas para los recursos de Azure para evitar almacenar credenciales con sus aplicaciones que se ejecutan en la nube.

Use las claves de API con precaución. No incluya la clave de API directamente en el código ni la exponga nunca públicamente. En caso de usar claves de API, almacénelas de forma segura en Azure Key Vault, cámbielas periódicamente y restrinja el acceso a Azure Key Vault con el control de acceso basado en roles y las restricciones de acceso de red. Para obtener más información sobre cómo usar las claves de API de forma segura en sus aplicaciones, consulte Claves de API con Azure Key Vault.

Para más información sobre la seguridad de los servicios de AI, consulte Autenticación de solicitudes a los servicios de Azure AI.

Para establecer las variables de entorno para la clave de recurso de Voz y el punto de conexión, abra una ventana de consola y siga las instrucciones del sistema operativo y el entorno de desarrollo.

  • Para establecer la variable de entorno de SPEECH_KEY, reemplace su clave por una de las claves del recurso.
  • Para establecer la ENDPOINT variable de entorno, reemplace tu-punto-de-conexión por uno de los puntos de conexión para su recurso.
setx SPEECH_KEY your-key
setx ENDPOINT your-endpoint

Nota:

Si solo necesita acceder a las variables de entorno en la consola actual, puede establecer la variable de entorno con set en vez de setx.

Después de agregar las variables de entorno, puede que tenga que reiniciar cualquier programa que necesite leer las variables de entorno, incluida la ventana de consola. Por ejemplo, si usa Visual Studio como editor, reinícielo antes de ejecutar el ejemplo.

Traslado de voz a través de un micrófono

Siga estos pasos para crear una nueva aplicación de consola.

  1. Abra un símbolo del sistema donde quiera el nuevo proyecto y cree un archivo llamado speech_translation.py.

  2. Ejecute este comando para instalar el SDK de voz:

    pip install azure-cognitiveservices-speech
    
  3. Copie el siguiente código en speech_translation.py:

    import os
    import azure.cognitiveservices.speech as speechsdk
    
    def recognize_from_microphone():
        # This example requires environment variables named "SPEECH_KEY" and "ENDPOINT"
        # Replace with your own subscription key and endpoint, the endpoint is like : "https://YourServiceRegion.api.cognitive.microsoft.com"
        speech_translation_config = speechsdk.translation.SpeechTranslationConfig(subscription=os.environ.get('SPEECH_KEY'), endpoint=os.environ.get('ENDPOINT'))
        speech_translation_config.speech_recognition_language="en-US"
    
        to_language ="it"
        speech_translation_config.add_target_language(to_language)
    
        audio_config = speechsdk.audio.AudioConfig(use_default_microphone=True)
        translation_recognizer = speechsdk.translation.TranslationRecognizer(translation_config=speech_translation_config, audio_config=audio_config)
    
        print("Speak into your microphone.")
        translation_recognition_result = translation_recognizer.recognize_once_async().get()
    
        if translation_recognition_result.reason == speechsdk.ResultReason.TranslatedSpeech:
            print("Recognized: {}".format(translation_recognition_result.text))
            print("""Translated into '{}': {}""".format(
                to_language, 
                translation_recognition_result.translations[to_language]))
        elif translation_recognition_result.reason == speechsdk.ResultReason.NoMatch:
            print("No speech could be recognized: {}".format(translation_recognition_result.no_match_details))
        elif translation_recognition_result.reason == speechsdk.ResultReason.Canceled:
            cancellation_details = translation_recognition_result.cancellation_details
            print("Speech Recognition canceled: {}".format(cancellation_details.reason))
            if cancellation_details.reason == speechsdk.CancellationReason.Error:
                print("Error details: {}".format(cancellation_details.error_details))
                print("Did you set the speech resource key and endpoint values?")
    
    recognize_from_microphone()
    
  4. Para cambiar el idioma de reconocimiento de voz, reemplace en-US por otro idioma admitido. Especifique la configuración regional completa con un separador de guiones (-). Por ejemplo, es-ES para Español (España). El idioma predeterminado es en-US si no especifica un idioma. Para obtener más información sobre cómo identificar uno de los distintos idiomas que se pueden hablar, consulte Identificación del idioma.

  5. Para cambiar el idioma de destino de la traducción, reemplace it por otro idioma admitido. Con pocas excepciones, solo se especifica el código de idioma que precede al separador de guiones locales (-). Por ejemplo, use es para español (España) en lugar de es-ES. El idioma predeterminado es en si no especifica un idioma.

Ejecute la nueva aplicación de consola para iniciar el reconocimiento de voz a través de un micrófono:

python speech_translation.py

Hable por el micrófono cuando se le solicite. Lo que diga debe ser la salida como texto traducido en el idioma de destino:

Speak into your microphone.
Recognized: I'm excited to try speech translation.
Translated into 'it': Sono entusiasta di provare la traduzione vocale.

Observaciones

Después de completar el inicio rápido, estas son algunas consideraciones más:

  • En este ejemplo se usa la operación recognize_once_async para transcribir expresiones de hasta 30 segundos, o hasta que se detecta el silencio. Para obtener información sobre el reconocimiento continuo de audio más largo, incluidas las conversaciones en varios idiomas, consulte Traducción de voz.
  • Para reconocer la voz de un archivo de audio, use filename en lugar de use_default_microphone:
    audio_config = speechsdk.audio.AudioConfig(filename="YourAudioFile.wav")
    
  • Para archivos de audio comprimidos como MP4, instale GStreamer y utilice PullAudioInputStream o PushAudioInputStream. Para más información, consulte Uso de entradas de audio comprimido.

Limpieza de recursos

Puede usar Azure Portal o la Interfaz de la línea de comandos (CLI) de Azure para quitar el recurso de Voz que creó.

Documentación de referencia | Paquete (npm) | Ejemplos adicionales en GitHub | Código fuente de la biblioteca

En este inicio rápido, se ejecuta una aplicación para trasladar interactivamente la voz de un idioma a texto en otro idioma.

Sugerencia

Pruebe Azure Speech in Foundry Tools Toolkit para compilar y ejecutar fácilmente ejemplos en Visual Studio Code.

Requisitos previos

Configuración

  1. Cree una nueva carpeta translation-quickstart y vaya a la carpeta quickstart mediante el siguiente comando:

    mkdir translation-quickstart && cd translation-quickstart
    
  2. Cree el package.json con el comando siguiente:

    npm init -y
    
  3. Actualice el package.json a ECMAScript con el siguiente comando:

    npm pkg set type=module
    
  4. Instale el SDK de Voz para JavaScript con:

    npm install microsoft-cognitiveservices-speech-sdk
    
  5. Debe instalar las definiciones de tipo Node.js para evitar errores de TypeScript. Ejecute el siguiente comando:

    npm install --save-dev @types/node
    

Recuperación de información de recursos

Debe autenticar su aplicación para acceder a Herramientas de Foundry. Este artículo le muestra cómo utilizar variables de entorno para almacenar sus credenciales. Ahora puede acceder a las variables de entorno desde su código para autenticar su aplicación. Para la producción, utilice una forma más segura de almacenar y acceder a sus credenciales.

Importante

Se recomienda la autenticación de Microsoft Entra ID con identidades administradas para los recursos de Azure para evitar almacenar credenciales con sus aplicaciones que se ejecutan en la nube.

Use las claves de API con precaución. No incluya la clave de API directamente en el código ni la exponga nunca públicamente. En caso de usar claves de API, almacénelas de forma segura en Azure Key Vault, cámbielas periódicamente y restrinja el acceso a Azure Key Vault con el control de acceso basado en roles y las restricciones de acceso de red. Para obtener más información sobre cómo usar las claves de API de forma segura en sus aplicaciones, consulte Claves de API con Azure Key Vault.

Para más información sobre la seguridad de los servicios de AI, consulte Autenticación de solicitudes a los servicios de Azure AI.

Para establecer las variables de entorno de su clave de recursos de voz y de su región, abra una ventana de la consola y siga las instrucciones correspondientes a su sistema operativo y a su entorno de desarrollo.

  • Para establecer la variable de entorno de SPEECH_KEY, reemplace su clave por una de las claves del recurso.
  • Para establecer la variable de entorno de SPEECH_REGION, reemplace su región por una de las regiones del recurso.
  • Para establecer la ENDPOINT variable de entorno, reemplácela por your-endpoint el punto de conexión real del recurso de Voz.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
setx ENDPOINT your-endpoint

Nota:

Si solo necesita acceder a las variables de entorno en la consola actual, puede establecer la variable de entorno con set en vez de setx.

Después de agregar las variables de entorno, puede que tenga que reiniciar cualquier programa que necesite leer las variables de entorno, incluida la ventana de consola. Por ejemplo, si usa Visual Studio como editor, reinícielo antes de ejecutar el ejemplo.

Traducción de voz a partir de un archivo

Para traducir la voz desde un archivo:

  1. Cree un nuevo archivo denominado translation.ts con el siguiente contenido:

    import { readFileSync } from "fs";
    import { 
        SpeechTranslationConfig, 
        AudioConfig, 
        TranslationRecognizer, 
        ResultReason, 
        CancellationDetails, 
        CancellationReason,
        TranslationRecognitionResult 
    } from "microsoft-cognitiveservices-speech-sdk";
    
    // This example requires environment variables named "ENDPOINT" and "SPEECH_KEY"
    const speechTranslationConfig: SpeechTranslationConfig = SpeechTranslationConfig.fromEndpoint(new URL(process.env.ENDPOINT!), process.env.SPEECH_KEY!);
    speechTranslationConfig.speechRecognitionLanguage = "en-US";
    
    const language = "it";
    speechTranslationConfig.addTargetLanguage(language);
    
    function fromFile(): void {
        const audioConfig: AudioConfig = AudioConfig.fromWavFileInput(readFileSync("YourAudioFile.wav"));
        const translationRecognizer: TranslationRecognizer = new TranslationRecognizer(speechTranslationConfig, audioConfig);
    
        translationRecognizer.recognizeOnceAsync((result: TranslationRecognitionResult) => {
            switch (result.reason) {
                case ResultReason.TranslatedSpeech:
                    console.log(`RECOGNIZED: Text=${result.text}`);
                    console.log("Translated into [" + language + "]: " + result.translations.get(language));
    
                    break;
                case ResultReason.NoMatch:
                    console.log("NOMATCH: Speech could not be recognized.");
                    break;
                case ResultReason.Canceled:
                    const cancellation: CancellationDetails = CancellationDetails.fromResult(result);
                    console.log(`CANCELED: Reason=${cancellation.reason}`);
    
                    if (cancellation.reason === CancellationReason.Error) {
                        console.log(`CANCELED: ErrorCode=${cancellation.ErrorCode}`);
                        console.log(`CANCELED: ErrorDetails=${cancellation.errorDetails}`);
                        console.log("CANCELED: Did you set the speech resource key and region values?");
                    }
                    break;
            }
            translationRecognizer.close();
        });
    }
    fromFile();
    
    • En translation.ts, reemplace YourAudioFile.wav por su propio archivo WAV. Este ejemplo solo reconoce la voz desde un archivo WAV. Para obtener información sobre otros formatos de audio, consulte Uso de entradas de audio comprimidas. Este ejemplo admite hasta 30 segundos de audio.

    • Para cambiar el idioma de reconocimiento de voz, reemplace en-US por otro idioma admitido. Especifique la configuración regional completa con un separador de guiones (-). Por ejemplo, es-ES para Español (España). El idioma predeterminado es en-US si no especifica un idioma. Para obtener más información sobre cómo identificar uno de los distintos idiomas que se pueden hablar, consulte Identificación del idioma.

    • Para cambiar el idioma de destino de la traducción, reemplace it por otro idioma admitido. Con pocas excepciones, solo se especifica el código de idioma que precede al separador de guiones (-) local. Por ejemplo, use es para español (España) en lugar de es-ES. El idioma predeterminado es en si no especifica un idioma.

  2. Cree el archivo tsconfig.json para transpilar el código TypeScript y copie el código siguiente para ECMAScript.

    {
        "compilerOptions": {
          "module": "NodeNext",
          "target": "ES2022", // Supports top-level await
          "moduleResolution": "NodeNext",
          "skipLibCheck": true, // Avoid type errors from node_modules
          "strict": true // Enable strict type-checking options
        },
        "include": ["*.ts"]
    }
    
  3. Transpile de TypeScript a JavaScript.

    tsc
    

    Este comando no debe generar ninguna salida si se ejecuta correctamente.

  4. Ejecute la nueva aplicación de consola para iniciar el reconocimiento de voz desde un archivo:

    node translation.js
    

Salida

La voz del archivo de audio debe ser la salida como texto traducido en el idioma de destino:

RECOGNIZED: Text=I'm excited to try speech translation.
Translated into [it]: Sono entusiasta di provare la traduzione vocale.

Observaciones

Ahora que ha completado el artículo de inicio rápido, estas son algunas consideraciones adicionales:

En este ejemplo se usa la operación recognizeOnceAsync para transcribir expresiones de hasta 30 segundos, o hasta que se detecta el silencio. Para obtener información sobre el reconocimiento continuo de audio más largo, incluidas las conversaciones en varios idiomas, consulte Traducción de voz.

Nota:

No se admite el reconocimiento de voz a través de un micrófono en Node.js. Solo se admite en un entorno de JavaScript basado en explorador.

Limpieza de recursos

Puede usar Azure Portal o la Interfaz de la línea de comandos (CLI) de Azure para quitar el recurso de Voz que creó.

Referencia de la API de REST en la conversión de voz en texto | Referencia de la API de REST de conversión de voz en texto para audios de corta duración | Ejemplos adicionales en GitHub

La API de REST no admite la traducción de voz. Seleccione otra herramienta o lenguaje de programación en la parte superior de esta página.

Pasos siguientes