🗣️

Gemini TTS API テスト実装 (開発日記 No.112)

に公開

関連リンク

はじめに

昨日は開発環境構築で苦戦しましたが、今日はGemini TTS APIを利用したテキスト音声変換のテスト実装と確認を行います。テキストを音声に変換できるか、一連の流れを確認することが目標です。

背景と目的

Gemini APIを活用した音声合成機能の検証は、今後のアプリケーション開発において重要な要素となります。今回のテスト実装を通じて、APIの動作確認、問題点の洗い出し、改善策の検討を行うことを目的とします。

検討内容

昨日の仮想環境構築の失敗を踏まえ、今回はDocker環境の利用を検討します。WSL2環境でのvenvの不安定さを回避し、より安定した開発環境を構築するためです。また、conda環境の利用も選択肢として検討します。

実装内容

  1. @/tools 以下に新しい作業フォルダ tts_test_dev を作成。
  2. 公式の@gemini_tts_test.py を参考に、TTSテストコードを作成。
  3. .envファイルからAPIキーを読み込み、環境変数GEMINI_API_KEYに設定。
  4. テストを実行し、テキストが音声に変換されることを確認。
  5. convert_to_wav 関数を修正し、_main_関数で実行したときに発生するfile_extensionNoneになる問題を解決。

昨日は仮想環境の構築で躓いてしまったため、今日は以下の手順で進めることにしました。

  1. Docker環境の構築: Dockerfile を作成し、必要なPython環境とライブラリを定義します。
  2. テストコードの修正: 公式のサンプルコードを参考に、APIキーを読み込み、テキストを音声に変換するコードを記述します。
  3. 実行と検証: Dockerコンテナ内でテストコードを実行し、音声ファイルが生成されることを確認します。
# Dockerfile
FROM python:3.9-slim-buster

WORKDIR /app

COPY requirements.txt .
RUN pip install -r requirements.txt

COPY . .

CMD ["python", "test_tts.py"]

技術的なポイント

  • Dockerによる環境構築: 開発環境をコンテナ化することで、依存関係の問題を解消し、再現性を高めます。
  • APIキーの管理: 環境変数を使用してAPIキーを安全に管理します。
  • エラーハンドリング: API呼び出し時のエラーを適切に処理し、ログに出力します。

所感

昨日の仮想環境構築の失敗は、WSL2環境におけるvenvの不安定さによるものと考えられます。Dockerコンテナを利用することで、この問題を回避し、スムーズに開発を進めることができました。APIキーの管理やエラーハンドリングなど、より実践的な開発スキルを学ぶことができました。

今後の課題

  • 音声ファイルの品質改善
  • 多言語対応
  • ストリーミング再生

まとめ

今日はGemini TTS APIを利用したテキスト音声変換のテスト実装を行い、テキストを音声に変換できることを確認できました。Docker環境の構築やAPIキーの管理など、実践的な開発スキルを学ぶことができました。今後は、音声ファイルの品質改善や多言語対応など、より高度な機能の実装に挑戦していきたいと思います。

GitHubで編集を提案

Discussion