Configuración de RHEL/CentOS 7 para el SDK de vozConfigure RHEL/CentOS 7 for Speech SDK

Red Hat Enterprise Linux (RHEL) 8 para x64 y CentOS 8 para x64 se admiten oficialmente en la versión 1.10.0 y posteriores del SDK de voz.Red Hat Enterprise Linux (RHEL) 8 x64 and CentOS 8 x64 are officially supported by the Speech SDK version 1.10.0 and later. También se puede usar el SDK de voz en RHEL/CentOS 7 para x64, pero requiere actualizar el compilador C++ (para desarrollo de C++) y la biblioteca en tiempo de ejecución de C++ compartida del sistema.It is also possible to use the Speech SDK on RHEL/CentOS 7 x64, but this requires updating the C++ compiler (for C++ development) and the shared C++ runtime library on your system.

Para comprobar la versión del compilador de C++, ejecute lo siguiente:To check the C++ compiler version, run:

g++ --version

Si el compilador está instalado, la salida debe ser similar a la siguiente:If the compiler is installed, the output should look like this:

g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39)

Este mensaje le permite saber que la versión principal 4 de GCC está instalada.This message lets you know that GCC major version 4 is installed. Esta versión no es totalmente compatible con C++ 11 estándar, que usa el SDK de voz.This version doesn't have full support for the C++ 11 standard, which the Speech SDK uses. Si intenta compilar un programa de C++ con esta versión de GCC y los encabezados del SDK de voz, se producirá un error de compilación.Trying to compile a C++ program with this GCC version and the Speech SDK headers will result in compilation errors.

También es importante comprobar la versión de la biblioteca en tiempo de ejecución de C++ compartida (libstdc++).It's also important to check the version of the shared C++ runtime library (libstdc++). La mayor parte del SDK de voz se implementa como bibliotecas nativas de C++, lo que significa que depende de libstdc++ independientemente del lenguaje que se utilice para desarrollar aplicaciones.Most of the Speech SDK is implemented as native C++ libraries, meaning it depends on libstdc++ regardless of the language you use to develop applications.

Para buscar la ubicación de libstdc++ en el sistema, ejecute:To find the location of libstdc++ on your system, run:

ldconfig -p | grep libstdc++

La salida de un RHEL/CentOS 7 (x64) básica es:The output on vanilla RHEL/CentOS 7 (x64) is:

libstdc++.so.6 (libc6,x86-64) => /lib64/libstdc++.so.6

En función de este mensaje, querrá comprobar las definiciones de versión con este comando:Based on this message, you'll want to check the version definitions with this command:

strings /lib64/libstdc++.so.6 | egrep "GLIBCXX_|CXXABI_"

La salida debe ser:The output should be:

...
GLIBCXX_3.4.19
...
CXXABI_1.3.7
...

El SDK de voz requiere CXXABI_1.3.9 y GLIBCXX_3.4.21.The Speech SDK requires CXXABI_1.3.9 and GLIBCXX_3.4.21. Puede encontrar esta información con la ejecución de ldd libMicrosoft.CognitiveServices.Speech.core.so en las bibliotecas del SDK de Voz desde el paquete de Linux.You can find this information by running ldd libMicrosoft.CognitiveServices.Speech.core.so on the Speech SDK libraries from the Linux package.

Nota

Se recomienda que la versión de GCC instalada en el sistema sea al menos 5.4.0, con bibliotecas en tiempo de ejecución coincidentes.It is recommended that the version of GCC installed on the system is at least 5.4.0, with matching runtime libraries.

EjemploExample

Este es un comando de ejemplo que establece cómo configurar RHEL/CentOS 7 x64 para el desarrollo (C++, C#, Java, Python) con el SDK de voz 1.10.0 o posterior:This is a sample command set that illustrates how to configure RHEL/CentOS 7 x64 for development (C++, C#, Java, Python) with the Speech SDK 1.10.0 or later:

1. Configuración general1. General setup

En primer lugar, instale todas las dependencias generales:First install all general dependencies:

# Only run ONE of the following two commands
# - for CentOS 7:
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
# - for RHEL 7:
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm

# Install development tools and libraries
sudo yum update -y
sudo yum groupinstall -y "Development tools"
sudo yum install -y alsa-lib dotnet-sdk-2.1 java-1.8.0-openjdk-devel openssl python3
sudo yum install -y gstreamer1 gstreamer1-plugins-base gstreamer1-plugins-good gstreamer1-plugins-bad-free gstreamer1-plugins-ugly-free

2. Bibliotecas de runtime y el compilador de C/C++2. C/C++ compiler and runtime libraries

Instale los paquetes de requisitos previos con este comando:Install the prerequisite packages with this command:

sudo yum install -y gmp-devel mpfr-devel libmpc-devel

Nota

El paquete libmpc-devel quedó en desuso en la actualización de RHEL 7.8.The libmpc-devel package has been deprecated in the RHEL 7.8 update. Si la salida del comando anterior incluye un mensajeIf the output of the previous command includes a message

No package libmpc-devel available.

es necesario instalar los archivos necesarios desde los orígenes originales.then the necessary files need to be installed from original sources. Ejecute los comandos siguientes:Run the following commands:

curl https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz -O
tar zxf mpc-1.1.0.tar.gz
mkdir mpc-1.1.0-build && cd mpc-1.1.0-build
../mpc-1.1.0/configure --prefix=/usr/local --libdir=/usr/local/lib64
make -j$(nproc)
sudo make install-strip

A continuación, actualice las bibliotecas de runtime y el compilador:Next update the compiler and runtime libraries:

# Build GCC 5.4.0 and runtimes and install them under /usr/local
curl https://ftp.gnu.org/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.bz2 -O
tar jxf gcc-5.4.0.tar.bz2
mkdir gcc-5.4.0-build && cd gcc-5.4.0-build
../gcc-5.4.0/configure --enable-languages=c,c++ --disable-bootstrap --disable-multilib --prefix=/usr/local
make -j$(nproc)
sudo make install-strip

Si el compilador y las bibliotecas actualizados deben implementarse en varias máquinas, simplemente puede copiarlos desde /usr/local a otras máquinas.If the updated compiler and libraries need to be deployed on several machines, you can simply copy them from under /usr/local to other machines. Si solo se necesitan las bibliotecas de runtime, los archivos de /usr/local/lib64 serán suficientes.If only the runtime libraries are needed then the files in /usr/local/lib64 will be enough.

3. Configuración del entorno3. Environment settings

Ejecute los siguientes comandos para completar la configuración:Run the following commands to complete the configuration:

# Set SSL cert file location
# (this is required for any development/testing with Speech SDK)
export SSL_CERT_FILE=/etc/pki/tls/certs/ca-bundle.crt

# Add updated C/C++ runtimes to the library path
# (this is required for any development/testing with Speech SDK)
export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH

# For C++ development only:
# - add the updated compiler to PATH
#   (note, /usr/local/bin should be already first in PATH on vanilla systems)
# - add Speech SDK libraries from the Linux tar package to LD_LIBRARY_PATH
#   (note, use the actual path to extracted files!)
export PATH=/usr/local/bin:$PATH
hash -r # reset cached paths in the current shell session just in case
export LD_LIBRARY_PATH=/path/to/extracted/SpeechSDK-Linux-1.10.0/lib/x64:$LD_LIBRARY_PATH

# For Python: install the Speech SDK module
python3 -m pip install azure-cognitiveservices-speech --user

Pasos siguientesNext steps