Speech CLI를 사용하여 일괄 처리 작업 실행
Speech Service를 사용할 때 일반적인 작업은 일괄 처리 작업입니다. 이 문서에서는 Speech CLI를 사용하여 음성을 텍스트로 일괄 처리(음성 인식), 일괄 처리 텍스트 음성 변환(음성 합성)을 수행하는 방법을 알아봅니다. 특히 다음 방법을 알아봅니다.
- 오디오 파일의 디렉터리에서 일괄 처리 음성 인식 실행
.tsv
파일을 반복하여 일괄 처리 음성 합성 실행
텍스트로 음성 배치(음성 인식)
Speech Service는 오디오 파일에서 음성을 인식하는 데 자주 사용됩니다. 이 예제에서는 Speech CLI를 사용하여 디렉터리를 반복하여 각 .wav
파일에 대한 인식 출력을 캡처하는 방법을 알아봅니다. --files
플래그는 오디오 파일이 저장된 디렉터리를 가리키는 데 사용되며, 와일드 카드 *.wav
는 확장명이 .wav
인 모든 파일에서 인식을 실행하도록 Speech CLI에 지시하는 데 사용됩니다. 각 인식 파일의 출력은 .에서 탭으로 구분된 값으로 작성됩니다 speech_output.tsv
.
참고 항목
명령의 --threads
다음 섹션에서도 인수를 spx synthesize
사용할 수 있으며 사용 가능한 스레드는 CPU 및 현재 부하 비율에 따라 달라집니다.
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
(탭으로 구분된 값) 파일을 만들고, Speech CLI에서 --foreach
명령을 사용하는 것입니다. 즐겨 찾는 텍스트 편집기를 .tsv
사용하여 파일을 만들 수 있습니다. 이 예제에서는 다음을 호출 text_synthesis.tsv
해 보겠습니다.
Important
이 텍스트 파일의 내용을 복사할 때 파일 위치와 텍스트 사이에 공백이 없는 탭 이 파일에 있는지 확인합니다. 이 예에서 콘텐츠를 복사할 때 탭이 공백으로 변환되어 실행 시 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
이 명령은 파일의 각 레코드에 .tsv
대해 실행되는 spx synthesize --text "Sample text to synthesize" --audio output C:\batch_wav_output\wav_1.wav
것과 같습니다.
주의해야 할 몇 가지 사항은 다음과 같습니다.
- 열 머리글 및
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