Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Распространенные задачи при использовании службы "Речь" — это пакетные операции. В этой статье вы узнаете, как выполнять пакетное преобразование речи в текст (распознавание речи) и пакетное преобразование текста в речь (синтез речи) с помощью интерфейса командной строки для сервиса Speech. В частности, вы узнаете, как выполнять следующие задачи:
- выполнить пакетное распознавание речи в каталоге звуковых файлов;
- Пакетное синтезирование речи, итерируя по файлу
.tsv;
пакетное преобразование речи в текст (распознавание речи).
Служба "Речь" часто используется для распознавания речи из аудиофайлов. В этом примере вы узнаете, как выполнять итерацию по каталогу с помощью интерфейса командной строки службы "Речь" для записи выходных данных распознавания для каждого .wav файла. Флаг --files определяет каталог, в котором хранятся звуковые файлы. Подстановочный знак *.wav указывает CLI службы "Речь" выполнять распознавание для каждого файла с расширением .wav. Выходные данные для всех файлов распознавания записываются в speech_output.tsv в виде значений, разделенных знаками табуляции.
Примечание.
Аргумент --threads можно также использовать в следующем разделе для команд spx synthesize. Доступные потоки будут зависеть от ЦП и его текущей загрузки в процентах.
spx recognize --files C:\your_wav_file_dir\*.wav --output file C:\output_dir\speech_output.tsv --threads 10
Ниже приведен пример структуры выходного файла.
audio.input.id recognizer.session.started.sessionid recognizer.recognized.result.text
sample_1 07baa2f8d9fd4fbcb9faea451ce05475 A sample wave file.
sample_2 8f9b378f6d0b42f99522f1173492f013 Sample text synthesized.
Пакетный синтез текста в речь (синтез речи)
Самый простой способ запустить пакетное преобразование текста в речь — создать новый файл .tsv (tab-separated-value) и использовать команду --foreach в Речь CLI. Вы можете создать файл .tsv с помощью предпочитаемого текстового редактора. В этом примере назовем файл text_synthesis.tsv:
Внимание
При копировании содержимого этого текстового файла убедитесь, что файл содержит табуляции , а не пробелы между расположением файла и текстом. Иногда, при копировании содержимого из этого примера, знаки табуляции преобразуются в пробелы, что приводит к сбою выполнения команды spx.
audio.output text
C:\batch_wav_output\wav_1.wav Sample text to synthesize.
C:\batch_wav_output\wav_2.wav Using the Speech CLI to run batch-synthesis.
C:\batch_wav_output\wav_3.wav Some more text to test capabilities.
Затем выполните команду, чтобы указать на text_synthesis.tsv, выполните синтез для каждого поля text, а затем запишите результат в соответствующий путь audio.output в виде файла .wav.
spx synthesize --foreach in @C:\your\path\to\text_synthesis.tsv
Эта команда эквивалентна запуску spx synthesize --text "Sample text to synthesize" --audio output C:\batch_wav_output\wav_1.wavдля каждой записи в файле .tsv.
Обратите внимание на несколько моментов.
- Заголовки столбцов
audio.outputиtextсоответствуют аргументам командной строки--audio outputи--text. Аргументы командной строки, содержащие несколько частей, например--audio output, должны быть отформатированы в файле без пробелов, начальных дефисов и точек, разделяющих строки (например,audio.output). Любые другие существующие аргументы командной строки можно добавить в файл в виде дополнительных столбцов с помощью этого шаблона. - Если файл форматируется таким образом, никакие другие аргументы не требуются для отправки
--foreach. - Обязательно отделите каждое значение в
.tsvс помощью табуляции.
Но заголовки столбцов вашего файла .tsv могут не соответствовать аргументам командной строки, как в следующем примере:
wav_path str_text
C:\batch_wav_output\wav_1.wav Sample text to synthesize.
C:\batch_wav_output\wav_2.wav Using the Speech CLI to run batch-synthesis.
C:\batch_wav_output\wav_3.wav Some more text to test capabilities.
Эти имена полей можно переопределить надлежащим образом, используя следующий синтаксис в вызове --foreach. Эта команда выполняет тот же вызов, что и раньше.
spx synthesize --foreach audio.output;text in @C:\your\path\to\text_synthesis.tsv