【Streamlit】音声ファイルを再生する:st.audio

Streamlit
この記事は約5分で読めます。

こんにちは、JS2IIUです。
Streamlitで音声ファイルを取り扱う場合の方法について見ていきたいと思います。

1. はじめに

今回は、PythonのWebアプリ作成ライブラリ「Streamlit」を使って、音声ファイルをアップロードして再生するアプリを作ってみましょう。

Streamlitは、たった数行のコードでインタラクティブなWebアプリを作ることができるとても便利なツールです。
この記事では、音声ファイルをアップロードする機能アップロードした音声を再生する機能を、初心者の方でもわかるように、順番に丁寧に解説していきます!

2. 開発環境の準備

まずは、Streamlitを使えるように開発環境を整えましょう。

必要なライブラリのインストール

まだStreamlitをインストールしていない場合は、以下のコマンドを実行してインストールしてください。

Bash
pip install streamlit

これだけでStreamlitを使う準備ができます!

プロジェクトのフォルダ構成

作業用に、適当なフォルダを用意しましょう。例えば、

Plaintext
streamlit_audio_app/
└── app.py

このように、フォルダの中にapp.pyというファイルを作成して、そこにコードを書いていきます。

3. 音声ファイルのアップロード機能を作ろう

まずは、ユーザーが自分の音声ファイルをアップロードできるようにします。

st.file_uploaderの使い方

Streamlitでは、ファイルをアップロードするためにst.file_uploaderという関数を使います。

以下のようにコードを書いてみましょう。

Python
import streamlit as st

uploaded_file = st.file_uploader("音声ファイルをアップロードしてください", type=["mp3", "wav", "ogg"])

ここでポイント!

  • "音声ファイルをアップロードしてください"
    → ユーザーに表示されるメッセージです。
  • type=["mp3", "wav", "ogg"]
    → アップロードできるファイルの種類を指定しています。

このコードを実行すると、ブラウザ上にファイルを選ぶボタンが表示されます!

4. アップロードした音声ファイルを再生しよう

次に、アップロードした音声ファイルを実際に再生できるようにしましょう。

st.audioの使い方

Streamlitでは、音声を再生するためにst.audioという関数を使います。

アップロードしたファイルを再生するには、次のように書きます。

Python
if uploaded_file is not None:
    st.audio(uploaded_file, format='audio/wav')

ここでポイント!

  • uploaded_file is not None
    → ファイルがアップロードされていれば、という意味です。
  • st.audio(uploaded_file, format='audio/wav')
    → ファイルを再生します。formatパラメータで音声の形式(MIMEタイプ)を指定します。

※ここでは'audio/wav'としていますが、ファイルによっては'audio/mp3''audio/ogg'を指定することもできます。

5. 完成したコード

ここまでの内容をまとめると、完成したコードはこのようになります!

Python
import streamlit as st

st.title("音声ファイルアップローダーとプレーヤー")

# ファイルをアップロード
uploaded_file = st.file_uploader("音声ファイルをアップロードしてください", type=["mp3", "wav", "ogg"])

# アップロードされたファイルを再生
if uploaded_file is not None:
    st.audio(uploaded_file, format='audio/wav')

アプリを起動してみよう!

このファイル(app.py)を保存したら、ターミナルで以下のコマンドを実行してアプリを起動しましょう。

Bash
streamlit run app.py

ブラウザが自動で開き、作成したアプリを確認することができます!
音声ファイルをアップロードして、正しく再生できるか試してみてください/

6. まとめ

この記事では、Streamlitを使って、

  • ファイルをアップロードする
  • アップロードしたファイルを再生する

という2つの機能を、簡単に実装できる方法をご紹介しました!

ポイントはたった2つだけ!

  • st.file_uploaderでファイルを選んでもらう
  • st.audioで音声を再生する

Streamlitを使えば、音声を扱うアプリも驚くほど簡単に作れます。
ぜひこの基本をもとに、さらにいろいろな応用にも挑戦してみてください!

参考リンク

最後に書籍のPRです。
24年9月に出版された「ハイパーモダンPython-信頼性の高いワークフローを構築するモダンテクニック」、Claudio Jolowicz著、嶋田、鈴木訳。開発環境の構築、プロジェクトの管理、テストに関して実践的な内容でとても参考になる一冊です。Poetryについても詳しく説明されています。ぜひ手に取ってみてください。

最後まで読んでいただきありがとうございます。

コメント

タイトルとURLをコピーしました