LoginSignup
1
1

More than 1 year has passed since last update.

Watson Speech to Text for Embedを使用してみた

Last updated at Posted at 2023-01-16

初めに

オンプレ環境を含め、コンテナが動く環境であれば、Watson Speech to Text / Text to Speech が使える
IBM Watson Speech Libraries for Embedが発表されています。
そこで、今回はWindows 10環境に導入し、音声認識(speech to text)を実施してみました。

※IBM Cloud版のWatson Speech to Textの実行については、下記をご参照ください。
PowerShellからIBM Watson Speech to Text / Text to Speech を使ってみた

前提

コンテナイメージをダウンロードするためのEntitlementキーが入手できていること。
https://www.ibm.com/products/watson-speech-embed-libraries から評価版を申請できます。

実施手順

1. 「Container Desktp」の導入

Windows 10でコンテナを実行するために、「Container Desktop」を導入します。
導入手順については、以下を参照してください。
Container Desktopを試してみた

2. イメージの作成

以下のようなDockerfileを作成します。
今回は、日本語が使えるようにしています。ほかの言語も提供されています。
詳細はドキュメントを参照してください。

# Model images
FROM cp.icr.io/cp/ai/watson-stt-generic-models:1.1.0 as catalog
FROM cp.icr.io/cp/ai/watson-stt-ja-jp-multimedia:1.1.0 as ja-jp-multimedia

# Base image for the runtime
FROM cp.icr.io/cp/ai/watson-stt-runtime:1.1.0 AS runtime

# Configure the runtime
# MODELS is a comma separated list of Model IDs
ENV MODELS=ja-JP_Multimedia
ENV DEFAULT_MODEL=ja-JP_Multimedia

# Copy in the catalog
# $CHUCK is already set in the base image
COPY --chown=watson:0 --from=catalog catalog.json ${CHUCK}/var/catalog.json

# Intermediate image to populate the model cache
FROM runtime as model_cache

# Copy model archives from model images
RUN sudo mkdir -p /models/pool2
COPY --chown=watson:0 --from=ja-jp-multimedia model/* /models/pool2/

# Run script to initialize the model cache from the model archives
RUN prepare_models.sh

# Final runtime image with models baked in
FROM runtime as release

COPY --from=model_cache ${CHUCK}/var/cache/ ${CHUCK}/var/cache/

Dockerfileを作成したら、そこからイメージファイルを作成します。

docker build . -t stt-standalone

3. コンテナの起動

以下のコマンドを実行し、作成したイメージからコンテナを起動します。

docker run -d --rm --name stt-standalone --env ACCEPT_LICENSE=true --publish 1080:1080 stt-standalone

4. APIをコールし、音声認識を実行。

PowerShell上で以下のコマンドを実行し、音声認識できることを確認します。

$result = Invoke-RestMethod -Method POST -Headers @{"Content-Type"="audio/mp3"} -InFile common_voice_ja_20088745.mp3 -Uri "http://localhost:1080/speech-to-text/api/v1/recognize?model=ja-JP_Multimedia"
$result.recoResult | ForEach-Object {$_.results | ForEach-Object {Write-Host $_.alternatives[0].transcript}}

※音声ファイル「common_voice_ja_20088745.mp3」は、お手持ちのmp3ファイルに置き換えてください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1