概要
この記事で気になっていたので少し試してみました。
参考
感情解析API「Empath」の実力はいかに?実際に試してみた結果をレビュー - Qiita
EmpathをVisual Studio(C++)で使ってみた - Qiita
検証環境
pythonの環境が整っているので、pythonで行います。
- python 3.9
- requests 2.31.0
準備
Empathの準備
公式サイトより、登録する必要があります。
APIに使用制限がありますが、無料でも登録して利用できます。
私は、「フリープラン (音声ファイル保存あり)」で行いました。
音声の準備
声 | 無料 BGM・効果音のフリー音源素材 | Springin’ Sound Stock
感情解析をする音声の準備が必要となります。
無料のものでも自前でも良いですが、私は上記の「はじまるよ」を利用しました。
解析可能な音声データ
Empathのドキュメントに記載はありますが、音声データに制約があります。
- PCM WAVE形式、16bitであること。
- データサイズが1.9MB以下であること。
- フォーマットがPCM_FLOAT、PCM_SIGNED、PCM_UNSIGNED のいずれかであること。
- 録音時間が5.0秒未満であること。
- サンプリング周波数が11025Hzであること。
- チャンネル数が1(モノラル)であること。
先ほどのサイトの「はじまるよ」はモノラル、32bit、mp3、44100Hzなので調整をする必要があります。
audacity
Audacity ® | Free, open source, cross-platform audio software for multi-track recording and editing.
audacityで調整を行います。
- mp3をD&Dで入れます。
- 左下の「プロジェクトのサンプリング周波数」を11025に変えます。
- 左上の「ファイル(F)」から「書き出し(E)」を選択し、「WAVとして書き出し(W)」を選択し、以下の形で保存します。
44010から11025に変更するだけでこれだけ変わります。
pythonの記載
参考にある記載をそのままですが、「empath_test.py」というのを用意して以下のように記載します。
※はじまるよ.wavはempath_test.pyを同じ階層に置いた状態です。
import requests
url ='https://api.webempath.net/v2/analyzeWav'
apikey = 'Empathにログイン -> API Key設定 -> API Keyの文字をここにコピペ'
payload = {'apikey': apikey}
wav = "はじまるよ.wav"
data = open(wav, 'rb')
file = {'wav': data}
res = requests.post(url, params=payload, files=file)
print(res.json())
実行・確認
実行すると以下のような結果が得られました。
D:\mine\py>python empath_test.py
{'error': 0, 'calm': 0, 'anger': 34, 'joy': 7, 'sorrow': 7, 'energy': 34}
それぞれが以下のようなパラメータです。
- calm: 平常
- anger: 怒り
- joy: 喜び
- sorrow: 悲しみ
- energy: 元気
「はじまるよ」という単語からこの結果となります。
思ったこと
解析可能な長さ
5秒ということで短いように感じていましたが、FORSPOKENでは0.32秒ということでした。
全ての単語の一言一句ではなく、一つのwavから一つの結果として得られるものなので、0.32秒程度の短い解析をたくさんするのが正しいように感じました。
実用
少なくとも無料版では、APIコール数が有限のため使用は厳しいように思いました。
解析する際のみ11025Hzに変更するような仕組みをすれば実用は出来そうに思いますし、利用しても面白そうに感じました。