Configure RHEL/CentOS 7 para Discurso SDKConfigure RHEL/CentOS 7 for Speech SDK

Red Hat Enterprise Linux (RHEL) 8 x64 e CentOS 8 x64 são oficialmente suportados pela versão 1.10.0 e posterior do Speech SDK.Red Hat Enterprise Linux (RHEL) 8 x64 and CentOS 8 x64 are officially supported by the Speech SDK version 1.10.0 and later. Também é possível utilizar o SDK do Discurso no RHEL/CentOS 7 x64, mas isto requer a atualização do compilador C++ (para o desenvolvimento de C++ e da biblioteca de tempo de execução C++ partilhada no seu 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 verificar a versão do compilador C++, corra:To check the C++ compiler version, run:

g++ --version

Se o compilador for instalado, a saída deve ser assim:If the compiler is installed, the output should look like this:

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

Esta mensagem permite-lhe saber que a versão 4 principal da GCC está instalada.This message lets you know that GCC major version 4 is installed. Esta versão não tem suporte total para o padrão C++ 11, que o Speech SDK utiliza.This version doesn't have full support for the C++ 11 standard, which the Speech SDK uses. Tentar compilar um programa C++ com esta versão GCC e os cabeçalhos SDK do Discurso resultarão em erros de compilação.Trying to compile a C++ program with this GCC version and the Speech SDK headers will result in compilation errors.

Também é importante verificar a versão da biblioteca de tempo de execução C++ partilhada (libstdc++).It's also important to check the version of the shared C++ runtime library (libstdc++). A maior parte do Discurso SDK é implementada como bibliotecas C++ nativas, o que significa que depende do libstdc++ independentemente do idioma que usa para desenvolver aplicações.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 encontrar a localização do libstdc++ no seu sistema, corra:To find the location of libstdc++ on your system, run:

ldconfig -p | grep libstdc++

A saída em baunilha RHEL/CentOS 7 (x64) é:The output on vanilla RHEL/CentOS 7 (x64) is:

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

Com base nesta mensagem, deverá verificar as definições de versão com 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_"

A saída deve ser:The output should be:

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

O SDK de Discurso requer CXXABI_1.3.9 e GLIBCXX_3.4.21.The Speech SDK requires CXXABI_1.3.9 and GLIBCXX_3.4.21. Pode encontrar esta informação executando ldd libMicrosoft.CognitiveServices.Speech.core.so as bibliotecas SDK do pacote Linux.You can find this information by running ldd libMicrosoft.CognitiveServices.Speech.core.so on the Speech SDK libraries from the Linux package.

Nota

Recomenda-se que a versão do GCC instalada no sistema seja de pelo menos 5.4.0, com bibliotecas de tempo de execução correspondentes.It is recommended that the version of GCC installed on the system is at least 5.4.0, with matching runtime libraries.

ExemploExample

Este é um conjunto de comando de amostra que ilustra como configurar RHEL/CentOS 7 x64 para desenvolvimento (C++, C#, Java, Python) com o Discurso SDK 1.10.0 ou mais tarde: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. Configuração geral1. General setup

Primeiro, instale todas as dependências gerais: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.C/C++ compilador e bibliotecas de tempo de execução2. C/C++ compiler and runtime libraries

Instale os pacotes pré-requisitos com este comando:Install the prerequisite packages with this command:

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

Nota

O pacote libmpc-devel foi depreciado na atualização RHEL 7.8.The libmpc-devel package has been deprecated in the RHEL 7.8 update. Se a saída do comando anterior incluir uma mensagemIf the output of the previous command includes a message

No package libmpc-devel available.

em seguida, os ficheiros necessários devem ser instalados a partir de fontes originais.then the necessary files need to be installed from original sources. Execute os seguintes comandos: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

Em seguida, atualização do compilador e das bibliotecas de tempo de execução: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

Se o compilador e as bibliotecas atualizados precisarem de ser implantados em várias máquinas, pode simplesmente copiá-las de baixo /usr/local para outras 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. Se forem necessárias apenas as bibliotecas de tempo de execução, os ficheiros /usr/local/lib64 serão suficientes.If only the runtime libraries are needed then the files in /usr/local/lib64 will be enough.

3. Definições ambientais3. Environment settings

Executar os seguintes comandos para completar a configuração: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

Passos seguintesNext steps