Inicio rápido: Síntesis de voz en C++ en Windows mediante el SDK de VozQuickstart: Synthesize speech in C++ on Windows by using the Speech SDK

También hay guías de inicio rápido para el reconocimiento y la traducción de voz.Quickstarts are also available for speech recognition and speech translation.

En este artículo, creará una aplicación de consola de C++ para Windows.In this article, you create a C++ console application for Windows. Usará el SDK de Voz de Cognitive Services para sintetizar la voz a partir de texto en tiempo real y reproducirla en los altavoces de su PC.You use the Cognitive Services Speech SDK to synthesize speech from text in real time and play the speech on your PC's speaker. La aplicación se compila con el paquete NuGet del SDK de voz y Microsoft Visual Studio 2019 (cualquier edición).The application is built with the Speech SDK NuGet package and Microsoft Visual Studio 2019 (any edition).

Para obtener una lista completa de los idiomas o voces disponibles para la síntesis de voz, consulte la compatibilidad con idiomas.For a complete list of languages/voices available for speech synthesis, see language support.

Requisitos previosPrerequisites

Necesita una clave de suscripción de servicios de voz para completar este inicio rápido.You need a Speech Services subscription key to complete this Quickstart. Puede obtener una gratis.You can get one for free. Para más detalles, consulte Prueba gratuita de los servicios de voz.See Try the Speech Services for free for details.

Creación de un proyecto de Visual StudioCreate a Visual Studio project

Para crear un proyecto de Visual Studio C++ para el desarrollo de escritorio, debe configurar las opciones de desarrollo de Visual Studio, crear el proyecto, seleccionar la arquitectura de destino e instalar el SDK de voz.To create a Visual Studio project for C++ desktop development, you need to set up Visual Studio development options, create the project, select the target architecture, and install the Speech SDK.

Configuración de las opciones de desarrollo de Visual StudioSet up Visual Studio development options

Para empezar, asegúrese de que Visual Studio está configurado correctamente para el desarrollo de escritorio de C++:To start, make sure you're set up correctly in Visual Studio for C++ desktop development:

  1. Abra Visual Studio 2019 para mostrar la ventana Inicio.Open Visual Studio 2019 to display the Start window.

    Ventana Inicio: Visual Studio

  2. Seleccione Continuar sin código para ir al IDE de Visual Studio.Select Continue without code to go to the Visual Studio IDE.

  3. En la barra de menús de Visual Studio, seleccione Herramientas > Get Tools and Features (Obtener herramientas y características) para abrir el Instalador de Visual Studio y ver el cuadro de diálogo Modificar.From the Visual Studio menu bar, select Tools > Get Tools and Features to open Visual Studio Installer and view the Modifying dialog box.

    Pestaña Cargas de trabajo, cuadro de diálogo Modificar, Instalador de Visual Studio

  4. En la pestaña Cargas de trabajo, en Windows, busque la carga de trabajo del desarrollo de escritorio con C++ .In the Workloads tab, under Windows, find the Desktop development with C++ workload. Si la casilla que hay junto a esa carga de trabajo no está seleccionada, selecciónela.If the check box next to that workload isn't already selected, select it.

  5. En la pestaña Componentes individuales, busque la casilla Administrador de paquetes NuGet.In the Individual components tab, find the Nuget package manager check box. Si la casilla no está seleccionada todavía, selecciónela.If the check box isn't already selected, select it.

  6. Seleccione el botón de la esquina con la etiqueta Cerrar o Modificar.Select the button in the corner labeled either Close or Modify. (El nombre del botón varía en función de si seleccionó alguna característica para la instalación). Si selecciona Modificar, la instalación comienza, lo que puede tardar unos minutos.(The button name varies depending on whether you selected any features for installation.) If you select Modify, installation begins, which may take a while.

  7. Cierre el Instalador de Visual Studio.Close Visual Studio Installer.

Cree el proyecto y seleccione la arquitectura de destino.Create the project and select the target architecture

Después, cree el proyecto.Next, create your project:

  1. En la barra de menús de Visual Studio, elija Archivo > Nuevo > Proyecto para mostrar la ventana Crear un nuevo proyecto.In the Visual Studio menu bar, choose File > New > Project to display the Create a new project window.

    Creación de un proyecto en C++: Visual Studio

  2. Busque y seleccione Aplicación de consola.Find and select Console App. Asegúrese de seleccionar la versión de C++ de este tipo de proyecto (en lugar de C# o de Visual Basic).Make sure that you select the C++ version of this project type (as opposed to C# or Visual Basic).

  3. Seleccione Siguiente para abrir la pantalla Configurar el nuevo proyecto.Select Next to display the Configure your new project screen.

    Configuración de un nuevo proyecto en C++: Visual Studio

  4. En Nombre del proyecto, escriba helloworld.In Project name, enter helloworld.

  5. En Ubicación, vaya la carpeta en la que desea guardar el proyecto y selecciónela o créela.In Location, navigate to and select or create the folder to save your project in.

Ahora seleccione la arquitectura de la plataforma de destino.Now select your target platform architecture. En la barra de herramientas de Visual Studio, busque el cuadro desplegable Plataformas de solución.In the Visual Studio toolbar, find the Solution Platforms drop-down box. (Si no lo ve, elija Ver > Barra de herramientas > Estándar para mostrar la barra de herramientas que contiene Plataformas de solución). Si está ejecutando Windows de 64 bits, elija x64 en el cuadro desplegable.(If you don't see it, choose View > Toolbars > Standard to display the toolbar containing Solution Platforms.) If you're running 64-bit Windows, choose x64 in the drop-down box. Windows de 64 bits puede ejecutar también aplicaciones de 32 bits, por lo que puede elegir x86, si lo prefiere.64-bit Windows can also run 32-bit applications, so you can choose x86 if you prefer.

Instalación de Speech SDKInstall the Speech SDK

Por último, instale el paquete NuGet del SDK de voz y haga referencia al SDK de voz en el proyecto:Finally, install the Speech SDK NuGet package, and reference the Speech SDK in your project:

  1. En el Explorador de soluciones, haga clic con el botón derecho en la solución y elija Manage NuGet Packages for Solution (Administrar paquetes NuGet para la solución) para ir a la ventana Nuget: solución.In Solution Explorer, right-click your solution, and choose Manage NuGet Packages for Solution to go to the Nuget - Solution window.

  2. Seleccione Examinar.Select Browse.

    NuGet: pestaña solución, Visual Studio

  3. En Origen del paquete, elija nuget.org.In Package source, choose nuget.org.

  4. En el cuadro de búsqueda Buscar, escriba Microsoft.CognitiveServices.Speech y, a continuación, elija el paquete cuando aparezca en los resultados de la búsqueda.In the Search box, enter Microsoft.CognitiveServices.Speech, and then choose that package after it appears in the search results.

    Instalación del paquete C++ Microsoft.CognitiveServices.Speech: Visual Studio

  5. En el panel de estado del paquete situado junto a los resultados de la búsqueda, seleccione el proyecto HelloWorld.In the package status pane next to the search results, select your helloworld project.

  6. Seleccione Instalar.Select Install.

  7. En el cuadro de diálogo Vista previa de los cambios, seleccione Aceptar.In the Preview Changes dialog box, select OK.

  8. En el cuadro de diálogo Aceptación de licencia, vea la licencia y, a continuación, seleccione Acepto.In the License Acceptance dialog box, view the license, and then select I Accept. La instalación del paquete comienza y, cuando se completa, el panel Salida muestra un mensaje similar al siguiente: Successfully installed 'Microsoft.CognitiveServices.Speech 1.6.0' to helloworld.The package installation begins, and when installation is complete, the Output pane displays a message similar to the following text: Successfully installed 'Microsoft.CognitiveServices.Speech 1.6.0' to helloworld.

Incorporación de código de ejemploAdd sample code

  1. Abra el archivo de origen helloworld.cpp.Open the source file helloworld.cpp.

  2. Reemplace todo el código por el fragmento siguiente:Replace all the code with the following snippet:

    #include <iostream>
    #include <speechapi_cxx.h>
    
    using namespace std;
    using namespace Microsoft::CognitiveServices::Speech;
    
    void synthesizeSpeech()
    {
        // Creates an instance of a speech config with specified subscription key and service region.
        // Replace with your own subscription key and service region (e.g., "westus").
        auto config = SpeechConfig::FromSubscription("YourSubscriptionKey", "YourServiceRegion");
    
        // Creates a speech synthesizer using the default speaker as audio output. The default spoken language is "en-us".
        auto synthesizer = SpeechSynthesizer::FromConfig(config);
    
        // Receive a text from console input and synthesize it to speaker.
        cout << "Type some text that you want to speak..." << std::endl;
        cout << "> ";
        std::string text;
        getline(cin, text);
    
        auto result = synthesizer->SpeakTextAsync(text).get();
    
        // Checks result.
        if (result->Reason == ResultReason::SynthesizingAudioCompleted)
        {
            cout << "Speech synthesized to speaker for text [" << text << "]" << std::endl;
        }
        else if (result->Reason == ResultReason::Canceled)
        {
            auto cancellation = SpeechSynthesisCancellationDetails::FromResult(result);
            cout << "CANCELED: Reason=" << (int)cancellation->Reason << std::endl;
    
            if (cancellation->Reason == CancellationReason::Error)
            {
                cout << "CANCELED: ErrorCode=" << (int)cancellation->ErrorCode << std::endl;
                cout << "CANCELED: ErrorDetails=[" << cancellation->ErrorDetails << "]" << std::endl;
                cout << "CANCELED: Did you update the subscription info?" << std::endl;
            }
        }
    
        // This is to give some time for the speaker to finish playing back the audio
        cout << "Press enter to exit..." << std::endl;
        cin.get();
    }
    
    int wmain()
    {
        synthesizeSpeech();
        return 0;
    }
    
  3. En el mismo archivo, reemplace la cadena YourSubscriptionKey por la clave de suscripción.In the same file, replace the string YourSubscriptionKey with your subscription key.

  4. Reemplace la cadena YourServiceRegion por la región asociada a sus suscripción (por ejemplo, westus para la suscripción de evaluación gratuita).Replace the string YourServiceRegion with the region associated with your subscription (for example, westus for the free trial subscription).

  5. En la barra de menús, elija Archivo > Guardar todo.From the menu bar, choose File > Save All.

Compilación y ejecución de la aplicaciónBuild and run the application

  1. En la barra de menús, seleccione Compilar > Compilar solución para compilar la aplicación.From the menu bar, select Build > Build Solution to build the application. El código se debería compilar sin errores ahora.The code should compile without errors now.

  2. Elija Depurar > Iniciar depuración o presione F5 para iniciar la aplicación HelloWorld.Choose Debug > Start Debugging (or press F5) to start the helloworld application.

  3. Diga una oración o frase en inglés.Type an English phrase or sentence. La aplicación transmite el texto a Speech Services, que envía la voz sintetizada a la aplicación para que se reproduzca en el altavoz.The application transmits your text to the Speech Services, which sends synthesized speech to the application to play on your speaker.

    Salida de la consola después de una síntesis correcta

Pasos siguientesNext steps

Se pueden encontrar ejemplos adicionales, por ejemplo, cómo guardar voz en un archivo de audio, en GitHub.Additional samples, such as how to save speech to an audio file, are available on GitHub.

Otras referenciasSee also