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.tsvtekstó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.tsvpolecenie , 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.wavdla każdego rekordu .tsv w pliku.

Kilka rzeczy do zanotowania:

  • Nagłówki audio.output kolumn i text, 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ład audio.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 .tsvkarcie.

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

Następne kroki