[Azure]Speech Servicesで音声をテキストに変換


Azureで音声からテキストへ変換するサービスについて調べた結果、Speech Servicesなるものを発見。

音声サービスとは – Azure Cognitive Services | Microsoft Learn

Speech ServiceはCognitive Servicesの中の1つ。

Azure Cognitive Services とは – Azure Cognitive Services | Microsoft Learn

Cognitive Services は、次の 5 つの主要な領域に分類できます。

  • 視覚
  • 音声
  • Language
  • 決定
  • Azure OpenAI Service

Speech Servicesのリソース作成後、Speech Studioで試すことができる。
試した感じでは精度は高め。

本題。Speech SDKで試す。

音声テキスト変換クイックスタート – Speech サービス – Azure Cognitive Services | Microsoft Learn

このサンプルにWSL上のUbuntu 22.04チャレンジする。

事前準備として、WSLで扱うためにサウンドサーバーのインストールが必要。

sudo apt install pulseaudio

Speech SDKをインストール。

Speech SDK のインストール – Azure Cognitive Services | Microsoft Learn

Speech SDK では OpenSSL 3.0 (Ubuntu 22.04 の既定) はサポートされていません。

Ubuntu 22はOpenSSL 3.0が標準で、このままでは実行できない。

OpenSSL 1.1.1を手動でビルド&インストール。

/source/index.html (openssl.org)

9650 2023-Feb-07 15:38:20 openssl-1.1.1t.tar.gz

tar xfz openssl-1.1.1t.tar.gz
cd openssl-1.1.1t
./config --prefix=(インストール先)
make
sudo make install
export LD_LIBRARY_PATH=(インストール先)/lib

実行結果

https://(リージョン).api.cognitive.microsoft.com/sts/v1.0/issuetoken

Azure Portalで確認したエンドポイントは上記URLに対し、実際にアクセスしているURLは次の通り。

wss://(リージョン).stt.speech.microsoft.com/speech/recognition/interactive/cognitiveservices/v1?language=ja-JP

その結果。

Speak into your microphone.
CANCELED: Reason=Error
CANCELED: ErrorCode=ConnectionFailure
CANCELED: ErrorDetails=Connection failed (no connection to the remote host). Internal error: 1. Error details: Failed with error: WS_OPEN_ERROR_UNDERLYING_IO_OPEN_FAILED

尚、OpenSSL 1.1.1は今年9月にサポート終了予定。

OpenSSL 1.1.1 End of Life – OpenSSL Blog

RESTが無難か。
RESTの場合、次のサンプルを見るとwav形式で送信する必要があるのだけど、

audio_file=@'YourAudioFile.wav'

curl --location --request POST \
"https://${SPEECH_REGION}.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?language=en-US" ^
--header "Ocp-Apim-Subscription-Key: ${SPEECH_KEY}" ^
--header "Content-Type: audio/wav" ^
--data-binary $audio_file

Win標準アプリのボイスレコーダーはmp4形式という。