Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Справочник по REST API 'Речь в текст' | Справочник по REST API 'Речь в текст' для коротких аудио | Дополнительные примеры на GitHub
Доступность
REST API можно использовать для сжатого звука, но мы еще не включили здесь руководство. Выберите другой язык программирования, чтобы приступить к работе и узнать о концепциях.
Справочная документация | Package (PyPi) | Дополнительные примеры на GitHub
Пакет Speech SDK и Speech CLI используют GStreamer для поддержки различных типов входных аудиоформатов. GStreamer распаковывает звук перед передачей в Службу распознавания речи как необработанный PCM.
Формат потоковой передачи звука по умолчанию — WAV (16 кГц или 8 кГц, 16-разрядный и моно PCM). За пределами WAV и PCM также поддерживаются следующие сжатые входные форматы с помощью GStreamer:
- MP3
- OPUS/OGG
- FLAC
- ALAW в контейнере WAV
- MULAW в контейнере WAV
- ANY для контейнера MP4 или неизвестного мультимедийного формата
Конфигурация GStreamer
Пакет Speech SDK может использовать GStreamer для обработки сжатого звука. По соображениям лицензирования двоичные файлы GStreamer не компилируются и не связываются с пакетом SDK службы "Речь". Необходимо установить некоторые зависимости и подключаемые модули.
Бинарные файлы GStreamer должны быть в системном пути, чтобы они могли быть загружены Speech SDK во время выполнения. Например, в Windows, если пакет SDK для распознавания речи находит libgstreamer-1.0-0.dll или gstreamer-1.0-0.dll (для последней версии GStreamer) во время выполнения, это означает, что двоичные файлы GStreamer находятся в системной переменной PATH.
Выберите платформу для инструкций по установке.
Необходимо установить несколько зависимостей и плагинов.
sudo apt install libgstreamer1.0-0 \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly
Дополнительные сведения см. в инструкциях по установке Linuxи поддерживаемых дистрибутивах Linux и целевых архитектурах.
Пример
Чтобы настроить пакет SDK службы "Речь" для приема сжатых звуковых данных, создайте PullAudioInputStream или PushAudioInputStream. Затем создайте экземпляр AudioConfig из вашего класса потока, который определяет формат сжатия этого потока.
Предположим, что ваш вариант использования — использовать PullStream для MP3 файла. Код может выглядеть следующим образом:
import azure.cognitiveservices.speech as speechsdk
class BinaryFileReaderCallback(speechsdk.audio.PullAudioInputStreamCallback):
def __init__(self, filename: str):
super().__init__()
self._file_h = open(filename, "rb")
def read(self, buffer: memoryview) -> int:
print('trying to read {} frames'.format(buffer.nbytes))
try:
size = buffer.nbytes
frames = self._file_h.read(size)
buffer[:len(frames)] = frames
print('read {} frames'.format(len(frames)))
return len(frames)
except Exception as ex:
print('Exception in `read`: {}'.format(ex))
raise
def close(self) -> None:
print('closing file')
try:
self._file_h.close()
except Exception as ex:
print('Exception in `close`: {}'.format(ex))
raise
def compressed_stream_helper(compressed_format,
mp3_file_path,
default_speech_auth):
callback = BinaryFileReaderCallback(mp3_file_path)
stream = speechsdk.audio.PullAudioInputStream(stream_format=compressed_format, pull_stream_callback=callback)
speech_config = speechsdk.SpeechConfig(**default_speech_auth)
audio_config = speechsdk.audio.AudioConfig(stream=stream)
speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_config)
done = False
def stop_cb(evt):
"""callback that signals to stop continuous recognition upon receiving an event `evt`"""
print('CLOSING on {}'.format(evt))
nonlocal done
done = True
# Connect callbacks to the events fired by the speech recognizer
speech_recognizer.recognizing.connect(lambda evt: print('RECOGNIZING: {}'.format(evt)))
speech_recognizer.recognized.connect(lambda evt: print('RECOGNIZED: {}'.format(evt)))
speech_recognizer.session_started.connect(lambda evt: print('SESSION STARTED: {}'.format(evt)))
speech_recognizer.session_stopped.connect(lambda evt: print('SESSION STOPPED {}'.format(evt)))
speech_recognizer.canceled.connect(lambda evt: print('CANCELED {}'.format(evt)))
# stop continuous recognition on either session stopped or canceled events
speech_recognizer.session_stopped.connect(stop_cb)
speech_recognizer.canceled.connect(stop_cb)
# Start continuous speech recognition
speech_recognizer.start_continuous_recognition()
while not done:
time.sleep(.5)
speech_recognizer.stop_continuous_recognition()
def pull_audio_input_stream_compressed_mp3(mp3_file_path: str,
default_speech_auth):
# Create a compressed format
compressed_format = speechsdk.audio.AudioStreamFormat(compressed_stream_format=speechsdk.AudioStreamContainerFormat.MP3)
compressed_stream_helper(compressed_format, mp3_file_path, default_speech_auth)
Справочная документация | Пакет (NuGet) | Дополнительные примеры на GitHub
Пакет SDK службы "Речь" и CLI службы "Речь" используют GStreamer для поддержки различных типов входных аудиоформатов. GStreamer распаковывает звук перед отправкой по сети в службу распознавания речи в виде необработанного PCM.
Формат потоковой передачи звука по умолчанию — WAV (16 кГц или 8 кГц, 16-разрядный и моно PCM). За пределами WAV и PCM также поддерживаются следующие сжатые входные форматы с помощью GStreamer:
- MP3
- OPUS/OGG
- FLAC
- ALAW в контейнере WAV
- MULAW в контейнере WAV
- ANY для контейнера MP4 или неизвестного формата мультимедиа
Конфигурация GStreamer
SDK для обработки речи может использовать GStreamer для обработки сжатого звука. По соображениям лицензирования бинарные файлы GStreamer не компилируются и не связываются с SDK для распознавания речи. Необходимо установить некоторые зависимости и подключаемые модули.
Двоичные файлы GStreamer должны находиться в системном пути, чтобы их можно было загрузить пакетом Speech SDK во время работы. Например, в Windows, если пакет SDK для работы с речью находит libgstreamer-1.0-0.dll или gstreamer-1.0-0.dll (для последней версии GStreamer) во время выполнения, это означает, что бинарные файлы GStreamer находятся в системном пути.
Выберите платформу для инструкций по установке.
Необходимо установить несколько зависимостей и плагинов.
sudo apt install libgstreamer1.0-0 \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly
Дополнительные сведения см. в инструкциях по установке Linuxи поддерживаемых дистрибутивах Linux и целевых архитектурах.
Пример
Чтобы настроить Speech SDK для приема сжатых звуковых входных данных, создайте PullAudioInputStream или PushAudioInputStream. Затем создайте AudioConfig на основе экземпляра вашего класса потока, который указывает формат сжатия потока. Найдите связанные образцы кода в разделе «О потоке аудио API пакета Speech SDK».
Предположим, что у вас есть класс pullStream входного потока и используется OPUS/OGG. Код может выглядеть следующим образом:
using Microsoft.CognitiveServices.Speech;
using Microsoft.CognitiveServices.Speech.Audio;
// ... omitted for brevity
var speechConfig =
SpeechConfig.FromSubscription(
"YourSpeechResoureKey",
"YourServiceRegion");
// Create an audio config specifying the compressed
// audio format and the instance of your input stream class.
var pullStream = AudioInputStream.CreatePullStream(
AudioStreamFormat.GetCompressedFormat(AudioStreamContainerFormat.OGG_OPUS));
var audioConfig = AudioConfig.FromStreamInput(pullStream);
using var recognizer = new SpeechRecognizer(speechConfig, audioConfig);
var result = await recognizer.RecognizeOnceAsync();
var text = result.Text;
Документация Справочная информация | Package (npm) | Дополнительные примеры на GitHub | Исходный код библиотеки
Пакет SDK службы "Речь" для JavaScript не поддерживает сжатый звук.
Формат потоковой передачи звука по умолчанию — WAV (16 кГц или 8 кГц, 16-разрядный и моно PCM). Чтобы ввести сжатый звуковой файл (например, mp3), необходимо сначала преобразовать его в WAV-файл в формате входных данных по умолчанию. Для потоковой передачи сжатого звука необходимо сначала декодировать звуковые буферы в формат входных данных по умолчанию. Дополнительные сведения см. в разделе "Использование потока ввода звука".
Справочная документация | Дополнительные примеры на GitHub
Speech SDK и интерфейс командной строки службы Speech используют GStreamer для поддержки различных типов входных аудиоформатов. GStreamer декодирует аудио перед отправкой по каналу в службу распознавания речи как необработанный PCM.
Формат потоковой передачи звука по умолчанию — WAV (16 кГц или 8 кГц, 16-разрядный и моно PCM). За пределами WAV и PCM также поддерживаются следующие сжатые входные форматы с помощью GStreamer:
- MP3
- OPUS/OGG
- FLAC
- ALAW в контейнере WAV
- MULAW в контейнере WAV
- ANY для контейнера MP4 или неизвестного формата мультимедиа
Конфигурация GStreamer
SDK "Speech" может использовать GStreamer для обработки сжатого аудио. По соображениям лицензирования двоичные файлы GStreamer не компилируются и не связываются с SDK для речи. Необходимо установить некоторые зависимости и подключаемые модули.
Двоичные файлы GStreamer должны находиться в системном пути, чтобы их можно было загрузить пакетом SDK для речи во время работы. Например, в Windows, если пакет SDK для распознавания речи обнаруживает libgstreamer-1.0-0.dll или gstreamer-1.0-0.dll (для последней версии GStreamer) во время выполнения программы, это означает, что двоичные файлы GStreamer находятся в системном каталоге.
Выберите платформу для инструкций по установке.
Обработка сжатого звука реализуется с помощью GStreamer. По соображениям лицензирования двоичные файлы GStreamer не компилируются и не связываются с пакетом Speech SDK. Вместо этого необходимо использовать предварительно созданные двоичные файлы для Android. Чтобы скачать предварительно созданные библиотеки, см. раздел "Установка для разработки Android".
Требуется libgstreamer_android.so объект. Убедитесь, что все плагины GStreamer (указанные в ниже приведённом файле Android.mk) связаны в libgstreamer_android.so. При использовании Speech SDK с GStreamer версии 1.18.3 также необходимо наличие libc++_shared.so из Android NDK.
GSTREAMER_PLUGINS := coreelements app audioconvert mpg123 \
audioresample audioparsers ogg opusparse \
opus wavparse alaw mulaw flac
Ниже приведен пример Android.mk и Application.mk файл. Выполните следующие действия, чтобы создать общий gstreamer объект:libgstreamer_android.so.
# Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := dummy
LOCAL_SHARED_LIBRARIES := gstreamer_android
include $(BUILD_SHARED_LIBRARY)
ifndef GSTREAMER_ROOT_ANDROID
$(error GSTREAMER_ROOT_ANDROID is not defined!)
endif
ifndef APP_BUILD_SCRIPT
$(error APP_BUILD_SCRIPT is not defined!)
endif
ifndef TARGET_ARCH_ABI
$(error TARGET_ARCH_ABI is not defined!)
endif
ifeq ($(TARGET_ARCH_ABI),armeabi)
GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/arm
else ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/armv7
else ifeq ($(TARGET_ARCH_ABI),arm64-v8a)
GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/arm64
else ifeq ($(TARGET_ARCH_ABI),x86)
GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/x86
else ifeq ($(TARGET_ARCH_ABI),x86_64)
GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/x86_64
else
$(error Target arch ABI not supported: $(TARGET_ARCH_ABI))
endif
GSTREAMER_NDK_BUILD_PATH := $(GSTREAMER_ROOT)/share/gst-android/ndk-build/
include $(GSTREAMER_NDK_BUILD_PATH)/plugins.mk
GSTREAMER_PLUGINS := $(GSTREAMER_PLUGINS_CORE) \
$(GSTREAMER_PLUGINS_CODECS) \
$(GSTREAMER_PLUGINS_PLAYBACK) \
$(GSTREAMER_PLUGINS_CODECS_GPL) \
$(GSTREAMER_PLUGINS_CODECS_RESTRICTED)
GSTREAMER_EXTRA_LIBS := -liconv -lgstbase-1.0 -lGLESv2 -lEGL
include $(GSTREAMER_NDK_BUILD_PATH)/gstreamer-1.0.mk
# Application.mk
APP_STL = c++_shared
APP_PLATFORM = android-21
APP_BUILD_SCRIPT = Android.mk
Вы можете выполнить сборку libgstreamer_android.so с помощью следующей команды в Ubuntu 18.04 или 20.04. Следующие командные строки были проверены для [GStreamer Android версии 1.14.4] с Android NDK b16b.
# Assuming wget and unzip are already installed on the system
mkdir buildLibGstreamer
cd buildLibGstreamer
wget https://dl.google.com/android/repository/android-ndk-r16b-linux-x86_64.zip
unzip -q -o android-ndk-r16b-linux-x86_64.zip
export PATH=$PATH:$(pwd)/android-ndk-r16b
export NDK_PROJECT_PATH=$(pwd)/android-ndk-r16b
wget https://gstreamer.freedesktop.org/download/
mkdir gstreamer_android
tar -xjf gstreamer-1.0-android-universal-1.14.4.tar.bz2 -C $(pwd)/gstreamer_android/
export GSTREAMER_ROOT_ANDROID=$(pwd)/gstreamer_android
mkdir gstreamer
# Copy the Application.mk and Android.mk from the documentation above and put it inside $(pwd)/gstreamer
# Enable only one of the following at one time to create the shared object for the targeted ABI
echo "building for armeabi-v7a. libgstreamer_android.so will be placed in $(pwd)/armeabi-v7a"
ndk-build -C $(pwd)/gstreamer "NDK_APPLICATION_MK=Application.mk" APP_ABI=armeabi-v7a NDK_LIBS_OUT=$(pwd)
#echo "building for arm64-v8a. libgstreamer_android.so will be placed in $(pwd)/arm64-v8a"
#ndk-build -C $(pwd)/gstreamer "NDK_APPLICATION_MK=Application.mk" APP_ABI=arm64-v8a NDK_LIBS_OUT=$(pwd)
#echo "building for x86_64. libgstreamer_android.so will be placed in $(pwd)/x86_64"
#ndk-build -C $(pwd)/gstreamer "NDK_APPLICATION_MK=Application.mk" APP_ABI=x86_64 NDK_LIBS_OUT=$(pwd)
#echo "building for x86. libgstreamer_android.so will be placed in $(pwd)/x86"
#ndk-build -C $(pwd)/gstreamer "NDK_APPLICATION_MK=Application.mk" APP_ABI=x86 NDK_LIBS_OUT=$(pwd)
После того как общий объект libgstreamer_android.so создан, поместите его в приложение Android, чтобы Speech SDK смог загрузить его.
Пример
Чтобы настроить Speech SDK для приема сжатых звуковых входных данных, создайте PullAudioInputStream или PushAudioInputStream. Затем создайте AudioConfig экземпляр класса потока, который указывает формат сжатия потока. Найдите связанный пример кода в примерах пакета SDK Speech SDK.
Предположим, что у вас есть класс pullAudio входного потока и используется MP3. Код может выглядеть следующим образом:
String filePath = "whatstheweatherlike.mp3";
PullAudioInputStream pullAudio = AudioInputStream.createPullStream(new BinaryAudioStreamReader(filePath),
AudioStreamFormat.getCompressedFormat(AudioStreamContainerFormat.MP3));
AudioConfig audioConfig = AudioConfig.fromStreamInput(pullAudio);
Справочная документация | Пакет (NuGet) | Дополнительные примеры на GitHub
Пакет SDK и CLI службы "Речь" используют GStreamer для поддержки различных форматов входного звукового сигнала. GStreamer распаковывает звук перед отправкой по сети в службу обработки речи как необработанный PCM.
Формат потоковой передачи звука по умолчанию — WAV (16 кГц или 8 кГц, 16-разрядный и моно PCM). За пределами WAV и PCM также поддерживаются следующие сжатые входные форматы с помощью GStreamer:
- MP3
- OPUS/OGG
- FLAC
- ALAW в контейнере WAV
- MULAW в контейнере WAV
- ANY для контейнера MP4 или неизвестного формата мультимедиа
Конфигурация GStreamer
Пакет SDK службы "Речь" может использовать GStreamer для обработки сжатого звука. По соображениям лицензирования двоичные файлы GStreamer не компилируются и не связаны с SDK для речи. Необходимо установить некоторые зависимости и подключаемые модули.
Двоичные файлы GStreamer должны находиться в системной переменной среды PATH, чтобы они могли быть загружены SDK речевых технологий во время выполнения. Например, в Windows, если пакет SDK для распознавания речи находит libgstreamer-1.0-0.dll или gstreamer-1.0-0.dll (для последней версии GStreamer) во время выполнения, это означает, что двоичные файлы GStreamer включены в системный путь.
Выберите платформу для инструкций по установке.
Необходимо установить несколько зависимостей и плагинов.
sudo apt install libgstreamer1.0-0 \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly
Дополнительные сведения см. в инструкциях по установке Linuxи поддерживаемых дистрибутивах Linux и целевых архитектурах.
Пример
Чтобы настроить пакет SDK для речевых служб на прием сжатых звуковых входных данных, создайте PullAudioInputStream или PushAudioInputStream. Затем на основе экземпляра вашего класса потока создайте AudioConfig, который указывает формат сжатия этого потока. Найдите связанный пример кода в примерах пакета SDK Speech SDK.
Предположим, что у вас есть класс pushStream входного потока и используется OPUS/OGG. Код может выглядеть следующим образом:
using namespace Microsoft::CognitiveServices::Speech;
using namespace Microsoft::CognitiveServices::Speech::Audio;
// ... omitted for brevity
auto config =
SpeechConfig::FromSubscription(
"YourSpeechResoureKey",
"YourServiceRegion"
);
// Create an audio config specifying the compressed
// audio format and the instance of your input stream class.
auto pullStream = AudioInputStream::CreatePullStream(
AudioStreamFormat::GetCompressedFormat(AudioStreamContainerFormat::OGG_OPUS));
auto audioConfig = AudioConfig::FromStreamInput(pullStream);
auto recognizer = SpeechRecognizer::FromConfig(config, audioConfig);
auto result = recognizer->RecognizeOnceAsync().get();
auto text = result->Text;
Справочная документация | Пакет (Go) | Дополнительные примеры на GitHub
Пакет Speech SDK и Speech CLI используют GStreamer для поддержки различных форматов входных звуковых данных. GStreamer декомпрессирует звук перед отправкой по сети в службу "Речь" как необработанный PCM.
Формат потоковой передачи звука по умолчанию — WAV (16 кГц или 8 кГц, 16-разрядный и моно PCM). За пределами WAV и PCM также поддерживаются следующие сжатые входные форматы с помощью GStreamer:
- MP3
- OPUS/OGG
- FLAC
- ALAW в контейнере WAV
- MULAW в контейнере WAV
- ANY для контейнера MP4 или неизвестного формата мультимедиа
Конфигурация GStreamer
Пакет SDK службы "Речь" может использовать GStreamer для обработки сжатого звука. По соображениям лицензирования двоичные файлы GStreamer не компилируются и не связаны с SDK для речи. Необходимо установить некоторые зависимости и подключаемые модули.
Необходимо установить несколько зависимостей и плагинов.
sudo apt install libgstreamer1.0-0 \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly
Дополнительные сведения см. в инструкциях по установке Linuxи поддерживаемых дистрибутивах Linux и целевых архитектурах.
Пример
Чтобы настроить пакет SDK службы "Речь" для приема сжатых звуковых входных данных, создайте PullAudioInputStream или PushAudioInputStream. Затем на основе экземпляра вашего класса потока создайте AudioConfig, который указывает формат сжатия этого потока.
В следующем примере предположим, что ваш вариант использования заключается в применении PushStream для сжатого файла.
package recognizer
import (
"fmt"
"time"
"strings"
"github.com/Microsoft/cognitive-services-speech-sdk-go/audio"
"github.com/Microsoft/cognitive-services-speech-sdk-go/speech"
"github.com/Microsoft/cognitive-services-speech-sdk-go/samples/helpers"
)
func RecognizeOnceFromCompressedFile(subscription string, region string, file string) {
var containerFormat audio.AudioStreamContainerFormat
if strings.Contains(file, ".mulaw") {
containerFormat = audio.MULAW
} else if strings.Contains(file, ".alaw") {
containerFormat = audio.ALAW
} else if strings.Contains(file, ".mp3") {
containerFormat = audio.MP3
} else if strings.Contains(file, ".flac") {
containerFormat = audio.FLAC
} else if strings.Contains(file, ".opus") {
containerFormat = audio.OGGOPUS
} else {
containerFormat = audio.ANY
}
format, err := audio.GetCompressedFormat(containerFormat)
if err != nil {
fmt.Println("Got an error: ", err)
return
}
defer format.Close()
stream, err := audio.CreatePushAudioInputStreamFromFormat(format)
if err != nil {
fmt.Println("Got an error: ", err)
return
}
defer stream.Close()
audioConfig, err := audio.NewAudioConfigFromStreamInput(stream)
if err != nil {
fmt.Println("Got an error: ", err)
return
}
defer audioConfig.Close()
config, err := speech.NewSpeechConfigFromSubscription(subscription, region)
if err != nil {
fmt.Println("Got an error: ", err)
return
}
defer config.Close()
speechRecognizer, err := speech.NewSpeechRecognizerFromConfig(config, audioConfig)
if err != nil {
fmt.Println("Got an error: ", err)
return
}
defer speechRecognizer.Close()
speechRecognizer.SessionStarted(func(event speech.SessionEventArgs) {
defer event.Close()
fmt.Println("Session Started (ID=", event.SessionID, ")")
})
speechRecognizer.SessionStopped(func(event speech.SessionEventArgs) {
defer event.Close()
fmt.Println("Session Stopped (ID=", event.SessionID, ")")
})
helpers.PumpFileIntoStream(file, stream)
task := speechRecognizer.RecognizeOnceAsync()
var outcome speech.SpeechRecognitionOutcome
select {
case outcome = <-task:
case <-time.After(40 * time.Second):
fmt.Println("Timed out")
return
}
defer outcome.Close()
if outcome.Error != nil {
fmt.Println("Got an error: ", outcome.Error)
}
fmt.Println("Got a recognition!")
fmt.Println(outcome.Result.Text)
}
Справочная документация | Пакет (скачать) | Дополнительные примеры на GitHub
Пакет SDK службы "Речь" для Objective-C не поддерживает сжатый звук.
Формат потоковой передачи звука по умолчанию — WAV (16 кГц или 8 кГц, 16-разрядный и моно PCM). Чтобы ввести сжатый звуковой файл (например, mp3), необходимо сначала преобразовать его в WAV-файл в формате входных данных по умолчанию. Для потоковой передачи сжатого звука необходимо сначала декодировать звуковые буферы в формат входных данных по умолчанию. Дополнительные сведения см. в разделе "Использование потока ввода звука".
Пакет Speech SDK и Speech CLI используют GStreamer для поддержки различных форматов входных звуковых данных. GStreamer декомпрессирует звук перед отправкой по сети в службу "Речь" как необработанный PCM.
Формат потоковой передачи звука по умолчанию — WAV (16 кГц или 8 кГц, 16-разрядный и моно PCM). За пределами WAV и PCM также поддерживаются следующие сжатые входные форматы с помощью GStreamer:
- MP3
- OPUS/OGG
- FLAC
- ALAW в контейнере WAV
- MULAW в контейнере WAV
- ANY для контейнера MP4 или неизвестного формата мультимедиа
Конфигурация GStreamer
Интерфейс командной строки службы "Речь" может использовать GStreamer для обработки сжатого звука. По соображениям лицензирования двоичные файлы GStreamer не компилируются и не связываются с CLI "Речь". Необходимо установить некоторые зависимости и подключаемые модули.
Двоичные файлы GStreamer должны находиться в системном пути, чтобы их можно было загрузить с помощью интерфейса командной строки службы "Речь" во время выполнения. Например, в Windows, если интерфейс командной строки для речи находит libgstreamer-1.0-0.dll или gstreamer-1.0-0.dll (для последней версии GStreamer) во время выполнения, это означает, что двоичные файлы GStreamer находятся в системной переменной окружения PATH.
Выберите платформу для инструкций по установке.
Необходимо установить несколько зависимостей и плагинов.
sudo apt install libgstreamer1.0-0 \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly
Дополнительные сведения см. в инструкциях по установке Linuxи поддерживаемых дистрибутивах Linux и целевых архитектурах.
Пример
Параметр --format задает формат контейнера для распознаваемого звукового файла. Для mp4-файла задайте формат any , как показано в следующей команде:
spx recognize --file YourAudioFile.mp4 --format any
Чтобы получить список поддерживаемых аудиоформатов, выполните следующую команду:
spx help recognize format
Справочная документация | Пакет (скачать) | Дополнительные примеры на GitHub
Пакет SDK службы "Речь" для Swift не поддерживает сжатый звук.
Формат потоковой передачи звука по умолчанию — WAV (16 кГц или 8 кГц, 16-разрядный и моно PCM). Чтобы ввести сжатый звуковой файл (например, mp3), необходимо сначала преобразовать его в WAV-файл в формате входных данных по умолчанию. Для потоковой передачи сжатого звука необходимо сначала декодировать звуковые буферы в формат входных данных по умолчанию. Дополнительные сведения см. в разделе "Использование потока ввода звука".