Skip to content

Commit 4db6860

Browse files
authored
Merge pull request #108818 from BrianMouncer/BrianeMouncer-pr/1.11.0
[CogSvcs] Briane mouncer pr/1.11.0
2 parents 7f901ae + 1fe59be commit 4db6860

12 files changed

+157
-16
lines changed
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
---
2+
title: How to configure RHEL/CentOS 7 - Speech service
3+
titleSuffix: Azure Cognitive Services
4+
description: Learn how to configure RHEL/CentOS 7 so that the Speech SDK can be used.
5+
services: cognitive-services
6+
author: pankopon
7+
manager: jhakulin
8+
ms.service: cognitive-services
9+
ms.subservice: speech-service
10+
ms.topic: conceptual
11+
ms.date: 04/02/2020
12+
ms.author: pankopon
13+
---
14+
15+
# Configure RHEL/CentOS 7 for Speech SDK
16+
17+
Red Hat Enterprise Linux (RHEL) 8 x64 and CentOS 8 x64 are officially supported by the Speech SDK version 1.10.0 and later. 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.
18+
19+
To check the C++ compiler version, run:
20+
21+
```bash
22+
g++ --version
23+
```
24+
25+
If the compiler is installed, the output should look like this:
26+
27+
```bash
28+
g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39)
29+
```
30+
31+
This message lets you know that GCC major version 4 is installed. This version doesn't have full support for the C++ 11 standard, which the Speech SDK uses. Trying to compile a C++ program with this GCC version and the Speech SDK headers will result in compilation errors.
32+
33+
It's also important to check the version of the shared C++ runtime library (libstdc++). 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.
34+
35+
To find the location of libstdc++ on your system, run:
36+
37+
```bash
38+
ldconfig -p | grep libstdc++
39+
```
40+
41+
The output on vanilla RHEL/CentOS 7 (x64) is:
42+
43+
```
44+
libstdc++.so.6 (libc6,x86-64) => /lib64/libstdc++.so.6
45+
```
46+
47+
Based on this message, you'll want to check the version definitions with this command:
48+
49+
```bash
50+
strings /lib64/libstdc++.so.6 | egrep "GLIBCXX_|CXXABI_"
51+
```
52+
53+
The output should be:
54+
55+
```
56+
...
57+
GLIBCXX_3.4.19
58+
...
59+
CXXABI_1.3.7
60+
...
61+
```
62+
63+
The Speech SDK requires **CXXABI_1.3.9** and **GLIBCXX_3.4.21**. You can find this information by running `ldd libMicrosoft.CognitiveServices.Speech.core.so` on the Speech SDK libraries from the Linux package.
64+
65+
> [!NOTE]
66+
> It is recommended that the version of GCC installed on the system is at least **5.4.0**, with matching runtime libraries.
67+
68+
## Example
69+
70+
This is a sample command that illustrates how to configure RHEL/CentOS 7 x64 for development (C++, C#, Java, Python) with the Speech SDK 1.10.0 or later:
71+
72+
```bash
73+
# Only run ONE of the following two commands
74+
# - for CentOS 7:
75+
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
76+
# - for RHEL 7:
77+
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
78+
79+
# Install development tools and libraries
80+
sudo yum update -y
81+
sudo yum groupinstall -y "Development tools"
82+
sudo yum install -y alsa-lib dotnet-sdk-2.1 java-1.8.0-openjdk-devel openssl python3
83+
sudo yum install -y gstreamer1 gstreamer1-plugins-base gstreamer1-plugins-good gstreamer1-plugins-bad-free gstreamer1-plugins-ugly-free
84+
85+
# Build GCC 5.4.0 and runtimes and install them under /usr/local
86+
sudo yum install -y gmp-devel mpfr-devel libmpc-devel
87+
curl https://ftp.gnu.org/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.bz2 -O
88+
tar jxf gcc-5.4.0.tar.bz2
89+
mkdir gcc-5.4.0-build && cd gcc-5.4.0-build
90+
../gcc-5.4.0/configure --enable-languages=c,c++ --disable-bootstrap --disable-multilib --prefix=/usr/local
91+
make -j$(nproc)
92+
sudo make install-strip
93+
94+
# Set SSL cert file location
95+
# (this is required for any development/testing with Speech SDK)
96+
export SSL_CERT_FILE=/etc/pki/tls/certs/ca-bundle.crt
97+
98+
# Add updated C/C++ runtimes to the library path
99+
# (this is required for any development/testing with Speech SDK)
100+
export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH
101+
102+
# For C++ development only:
103+
# - add the updated compiler to PATH
104+
# (note, /usr/local/bin should be already first in PATH on vanilla systems)
105+
# - add Speech SDK libraries from the Linux tar package to LD_LIBRARY_PATH
106+
# (note, use the actual path to extracted files!)
107+
export PATH=/usr/local/bin:$PATH
108+
hash -r # reset cached paths in the current shell session just in case
109+
export LD_LIBRARY_PATH=/path/to/extracted/SpeechSDK-Linux-1.10.0/lib/x64:$LD_LIBRARY_PATH
110+
111+
# For Python: install the Speech SDK module
112+
python3 -m pip install azure-cognitiveservices-speech --user
113+
```
114+
115+
## Next steps
116+
117+
> [!div class="nextstepaction"]
118+
> [About the Speech SDK](speech-sdk.md)

articles/cognitive-services/Speech-Service/how-to-use-codec-compressed-audio-input-streams.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ zone_pivot_groups: programming-languages-set-twelve
1717

1818
The Speech service SDK **Compressed Audio Input Stream** API provides a way to stream compressed audio to the Speech service using either a `PullStream` or `PushStream`.
1919

20-
> [!IMPORTANT]
21-
> Streaming compressed input audio is currently supported for C#, C++, Java on Linux (Ubuntu 16.04, Ubuntu 18.04, Debian 9, RHEL 8, CentOS 8). It is also supported for Java in Android and Objective-C in iOS platform.
22-
> Speech SDK version 1.7.0 or higher is required (version 1.10.0 or higher for RHEL 8, CentOS 8).
20+
Streaming compressed input audio is currently supported for C#, C++, Java on Windows (UWP applications aren't supported) and Linux (Ubuntu 16.04, Ubuntu 18.04, Debian 9, RHEL 8, CentOS 8). It is also supported for Java in Android and Objective-C in iOS platform.
21+
* Speech SDK version 1.10.0 or later is required for RHEL 8 and CentOS 8
22+
* Speech SDK version 1.11.0 or later is required for for Windows.
2323

2424
[!INCLUDE [supported-audio-formats](includes/supported-audio-formats.md)]
2525

articles/cognitive-services/Speech-Service/includes/how-to/compressed-audio-input/csharp/prerequisites.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ ms.date: 03/09/2020
66
ms.author: dapine
77
---
88

9-
Handling compressed audio is implemented using [GStreamer](https://gstreamer.freedesktop.org). For licensing reasons GStreamer binaries are not compiled and linked with the Speech SDK. Developers need to install several dependencies and plugins, see [Installing on Windows](https://gstreamer.freedesktop.org/documentation/installing/on-windows.html?gi-language=c).
9+
Handling compressed audio is implemented using [GStreamer](https://gstreamer.freedesktop.org). For licensing reasons GStreamer binaries are not compiled and linked with the Speech SDK. Developers need to install several dependencies and plugins, see [Installing on Windows](https://gstreamer.freedesktop.org/documentation/installing/on-windows.html?gi-language=c). Gstreamer binaries need to be in the system path, so that the speech SDK can load gstreamer binaries during runtime. If speech SDK is able to find libgstreamer-1.0-0.dll during runtime it means the gstreamer binaries are in the system path.
1010

articles/cognitive-services/Speech-Service/includes/speech-devices-sdk-android-quickstart.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ To validate your development kit setup, build and install the sample application
9191
Update the **build.gradle(Module:app)** by adding this line to the dependencies section.
9292

9393
```xml
94-
implementation'com.microsoft.cognitiveservices.speech:client-sdk:1.10.0'
94+
implementation'com.microsoft.cognitiveservices.speech:client-sdk:1.11.0'
9595
```
9696

9797
1. Add your speech subscription key to the source code. If you want to try intent recognition, also add your [Language Understanding service](https://azure.microsoft.com/services/cognitive-services/language-understanding-intelligent-service/) subscription key and application ID.

articles/cognitive-services/Speech-Service/includes/speech-devices-sdk-linux-quickstart.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ If you plan to use the intents you'll need a [Language Understanding Service (LU
9494
<dependency>
9595
<groupId>com.microsoft.cognitiveservices.speech</groupId>
9696
<artifactId>client-sdk</artifactId>
97-
<version>1.10.0</version>
97+
<version>1.11.0</version>
9898
</dependency>
9999
</dependencies>
100100
```

articles/cognitive-services/Speech-Service/includes/speech-devices-sdk-windows-quickstart.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ If you plan to use the intents you'll need a [Language Understanding Service (LU
6969
<dependency>
7070
<groupId>com.microsoft.cognitiveservices.speech</groupId>
7171
<artifactId>client-sdk</artifactId>
72-
<version>1.10.0</version>
72+
<version>1.11.0</version>
7373
</dependency>
7474
</dependencies>
7575
```

articles/cognitive-services/Speech-Service/speech-sdk.md

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,30 @@ For Windows, we support the following languages:
4242
# [Linux](#tab/linux)
4343

4444
> [!NOTE]
45-
> Currently, we only support Ubuntu 16.04, Ubuntu 18.04, Debian 9, Red Hat Enterprise Linux (RHEL) 8, and CentOS 8 on the following target architectures:
46-
> - x86 (Debian/Ubuntu), x64, ARM32 (Debian/Ubuntu), and ARM64 (Debian/Ubuntu) for C++ development
47-
> - x64, ARM32 (Debian/Ubuntu), and ARM64 (Debian/Ubuntu) for Java
48-
> - x64 for .NET Core and Python
45+
> Currently, we only support the following distributions and development languages/platforms:
46+
>
47+
> | Distribution | Development |
48+
> |:-|:-|
49+
> |Ubuntu 16.04 x86 |C++|
50+
> |Ubuntu 16.04 x64 |C++, Java, .NET Core, Python|
51+
> |Ubuntu 16.04 ARM32 |C++, Java, .NET Core|
52+
> |Ubuntu 16.04 ARM64 |C++, Java, .NET Core[<sup>[1]</sup>](#footnote1)|
53+
> |Ubuntu 18.04 x86 |C++|
54+
> |Ubuntu 18.04 x64 |C++, Java, .NET Core, Python|
55+
> |Ubuntu 18.04 ARM32 |C++, Java, .NET Core|
56+
> |Ubuntu 18.04 ARM64 |C++, Java, .NET Core[<sup>[1]</sup>](#footnote1)|
57+
> |Debian 9 x86 |C++|
58+
> |Debian 9 x64 |C++, Java, .NET Core, Python|
59+
> |Debian 9 ARM32 |C++, Java, .NET Core|
60+
> |Debian 9 ARM64 |C++, Java, .NET Core[<sup>[1]</sup>](#footnote1)|
61+
> |Red Hat Enterprise Linux (RHEL) 7 x64[<sup>[2]</sup>](#footnote2) |C++, Java, .NET Core, Python|
62+
> |Red Hat Enterprise Linux (RHEL) 8 x64 |C++, Java, .NET Core, Python|
63+
> |CentOS 7 x64[<sup>[2]</sup>](#footnote2) |C++, Java, .NET Core, Python|
64+
> |CentOS 8 x64 |C++, Java, .NET Core, Python|
65+
>
66+
> **[<a name="footnote1">1</a>]** Linux ARM64 requires .NET Core 3.x (dotnet-sdk-3.x package) for proper ARM64 support.<br>
67+
> **[<a name="footnote2">2</a>]** Follow the instructions on [how to configure RHEL/CentOS 7 for Speech SDK](~/articles/cognitive-services/speech-service/how-to-configure-rhel-centos-7.md).
68+
4969

5070
Make sure you have the required libraries installed by running the following shell commands:
5171

articles/cognitive-services/Speech-Service/toc.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -472,6 +472,9 @@
472472
- name: Configure OpenSSL for Linux
473473
displayName: memory usage, memory consumption, object logging, object tracking, memory, openssl
474474
href: how-to-configure-openssl-linux.md
475+
- name: Configure RHEL/CentOS 7
476+
href: how-to-configure-rhel-centos-7.md
477+
displayName: RHEL, CentOS 7, CentOS, Configure RHEL, Configure CentOS
475478
- name: Samples
476479
items:
477480
- name: Speech SDK samples (GitHub)

includes/cognitive-services-speech-service-quickstart-cpp-create-proj.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,4 +71,4 @@ Finally, install the [Speech SDK NuGet package](https://aka.ms/csspeech/nuget),
7171

7272
1. In the **Preview Changes** dialog box, select **OK**.
7373

74-
1. In the **License Acceptance** dialog box, view the license, and then select **I Accept**. 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.10.0' to helloworld`.
74+
1. In the **License Acceptance** dialog box, view the license, and then select **I Accept**. 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.11.0' to helloworld`.

includes/cognitive-services-speech-service-quickstart-java-android-create-proj.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Android Studio takes a moment to prepare your new Android project. Next, configu
2222

2323
[!INCLUDE [License notice](cognitive-services-speech-service-license-notice.md)]
2424

25-
The current version of the Cognitive Services Speech SDK is 1.10.0.
25+
The current version of the Cognitive Services Speech SDK is 1.11.0.
2626

2727
The Speech SDK for Android is packaged as an [AAR (Android Library)](https://developer.android.com/studio/projects/android-library), which includes the necessary libraries and required Android permissions.
2828
It's hosted in a Maven repository at https:\//csspeechstorage.blob.core.windows.net/maven/.
@@ -37,7 +37,7 @@ Set up your project to use the Speech SDK. Open the **Project Structure** window
3737

3838
![Screenshot of Library dependency](../articles/cognitive-services/Speech-Service/media/sdk/qs-java-android-07-add-module-dependency.png)
3939

40-
1. In the window that appears, enter the name and version of the Speech SDK for Android, *com.microsoft.cognitiveservices.speech:client-sdk:1.10.0*. Then select **OK**.
40+
1. In the window that appears, enter the name and version of the Speech SDK for Android, *com.microsoft.cognitiveservices.speech:client-sdk:1.11.0*. Then select **OK**.
4141
The Speech SDK should be added to the list of dependencies now, as shown:
4242

4343
![Screenshot of Speech SDK in the list of dependencies](../articles/cognitive-services/Speech-Service/media/sdk/qs-java-android-08-dependency-added-1.0.0.png)

0 commit comments

Comments
 (0)