Uruchamianie operacji wsadowych przy użyciu interfejsu wiersza polecenia usługi Mowa
Typowe zadania podczas korzystania z usługi Mowa to operacje wsadowe. Z tego artykułu dowiesz się, jak wykonać zamianę mowy wsadowej na tekst (rozpoznawanie mowy), tekst wsadowy na mowę (syntezę mowy) przy użyciu interfejsu wiersza polecenia usługi Mowa. W szczególności dowiesz się, jak wykonywać następujące działania:
- Uruchamianie funkcji rozpoznawania mowy wsadowej w katalogu plików audio
- Uruchamianie syntezy mowy wsadowej
.tsv
przez iterowanie pliku
Zamiana mowy wsadowej na tekst (rozpoznawanie mowy)
Usługa rozpoznawania mowy jest często używana do rozpoznawania mowy z plików audio. W tym przykładzie dowiesz się, jak iterować katalog przy użyciu interfejsu wiersza polecenia usługi Mowa w celu przechwycenia danych wyjściowych rozpoznawania dla każdego .wav
pliku. Flaga --files
służy do wskazywania katalogu, w którym są przechowywane pliki audio, a symbol wieloznaczny *.wav
służy do wskazania interfejsu wiersza polecenia usługi Mowa w celu uruchomienia rozpoznawania w każdym pliku z rozszerzeniem .wav
. Dane wyjściowe dla każdego pliku rozpoznawania są zapisywane jako wartość rozdzielona tabulatorem w pliku speech_output.tsv
.
Uwaga
--threads
Argument można również użyć w następnej sekcji dla spx synthesize
poleceń, a dostępne wątki będą zależeć od procesora CPU i jego bieżącego procentu obciążenia.
spx recognize --files C:\your_wav_file_dir\*.wav --output file C:\output_dir\speech_output.tsv --threads 10
Oto przykład struktury plików wyjściowych.
audio.input.id recognizer.session.started.sessionid recognizer.recognized.result.text
sample_1 07baa2f8d9fd4fbcb9faea451ce05475 A sample wave file.
sample_2 8f9b378f6d0b42f99522f1173492f013 Sample text synthesized.
Zamiana tekstu wsadowego na mowę (synteza mowy)
Najprostszym sposobem uruchamiania tekstu wsadowego na mowę jest utworzenie nowego .tsv
pliku (tab-separated-value) i użycie --foreach
polecenia w interfejsie wiersza polecenia usługi Mowa. W tym przykładzie możesz utworzyć .tsv
plik przy użyciu ulubionego edytora text_synthesis.tsv
tekstów:
Ważne
Podczas kopiowania zawartości tego pliku tekstowego upewnij się, że plik nie zawiera spacji między lokalizacją pliku a tekstem. Czasami podczas kopiowania zawartości z tego przykładu karty są konwertowane na spacje, co powoduje niepowodzenie polecenia po uruchomieniu 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.
Następnie uruchom polecenie , aby wskazać text_synthesis.tsv
polecenie , wykonać syntezę w każdym text
polu i zapisać wynik w odpowiedniej audio.output
ścieżce jako .wav
plik.
spx synthesize --foreach in @C:\your\path\to\text_synthesis.tsv
To polecenie jest odpowiednikiem uruchamiania spx synthesize --text "Sample text to synthesize" --audio output C:\batch_wav_output\wav_1.wav
dla każdego rekordu .tsv
w pliku.
Kilka rzeczy do zanotowania:
- Nagłówki
audio.output
kolumn itext
, odpowiadają odpowiednio argumentom--audio output
wiersza polecenia i--text
. Wieloczęściowe argumenty wiersza polecenia, takie jak--audio output
powinny być sformatowane w pliku bez spacji, bez wiodących kresek i kropki oddzielające ciągi, na przykładaudio.output
. Wszelkie inne istniejące argumenty wiersza polecenia można dodać do pliku jako więcej kolumn przy użyciu tego wzorca. - Gdy plik jest sformatowany w ten sposób, żadne inne argumenty nie muszą być przekazywane do
--foreach
. - Upewnij się, że należy oddzielić każdą wartość na
.tsv
karcie.
Jeśli jednak masz .tsv
plik podobny do poniższego przykładu, z nagłówkami kolumn, które nie pasują do argumentów wiersza polecenia:
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.
Te nazwy pól można zastąpić poprawnymi argumentami przy użyciu następującej składni w wywołaniu --foreach
. To polecenie wykonuje to samo wywołanie co poprzednio.
spx synthesize --foreach audio.output;text in @C:\your\path\to\text_synthesis.tsv