pydubをめぐる試行錯誤(2)
「pydubを使う前提」にした場合、音声データ加工や音声再生、にはどんなモジュールをどう組み合わせるのが最適解か、の検討中。
の続きです。
pydub.playback にあるplay関数は、手軽に音を鳴らせる。(Windows環境の場合PyAudioのmoduleをインストールする必要あり。)
GUIアプリでなく、スクリプトだけでのテスト用にはこれで良い。
ただしGUIアプリを作る場合を考えると、あまりよろしく無さそう。
というのも、Copilot先生に
>pydub.playback でplay関数を使ってブロック再生を行っているとき、再生の途中で再生を中止して終了したくなったら手段はありますか?
と聞いたら、
pydub.playbackでは、直接停止する機能は無いそうです。
customtkinter使ったGUIアプリで使うことを考えるなら、最初からちゃんとstopコマンドが用意されているpygameなり、just_playbackなりを使うのがよさそう。
snykAdvisorのスコア比較
PyAudio
図らずもインストールしてみることになったPyAudioについて調べる
PyAudio 0.2.14 のリリースは2023年11月7日。snykAdvisorの評価点数はあまり高くなかった。
Similar Package ではlibrosa,やsounddeviceの評価が高い。
just-playback
ちなみに、当方が再生で使っているjust-playbackの評価を見ると
pydubのスコア79に比べても、だいぶ低い・・。最近は、just-playbackを元にして自分のライブラリとか書いていたからちょっとがっかり。
じゃあ、なにを代替にする?
IPython.display
librosa のドキュメントには
>from IPython.display import Audio
とIPython.displayの中のAudioモジュールを使った音声再生の例が出ています。IPythonはsnykのスコアも非常に高い
ただ、これって「その環境にあるウェブブラウザの機能」を使っていることになる。そうじゃなくてスタンドアロンのtkinterアプリに機能を組み込みたい、と考えるとどうなる?
pygame
pygameのmixer.music を使うのが一つの方法。もともと、これを使っていたのでした。snykのスコアも非常に高い。
sounddevice
だそうです。そしてsounddeviceも、snykのスコアも非常に高い
方針の見直し
音声データに関して
・加工は、librosaを基本にする。
・再生は、sounddeviceを基本にする。
・ファイルフォーマットが対応していないときにpydubを併用する。
(mp3での書き出しなど。)
ため口
なぜか、Copilot先生が急にため口になってしまいました。
質問のレベルが低いから、舐められたのでしょうか(笑)
この記事が気に入ったらサポートをしてみませんか?