プログラマーの卵の日記

備忘録になってます!小難しそうなことから超簡単なことまでやってます!!

Empathを試してみた

概要

この記事で気になっていたので少し試してみました。

prtimes.jp

 

 

参考

感情解析API「Empath」の実力はいかに?実際に試してみた結果をレビュー - Qiita

EmpathをVisual Studio(C++)で使ってみた - Qiita

 

 

 

検証環境

pythonの環境が整っているので、pythonで行います。

 

 

 

準備

Empathの準備

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で調整を行います。

 

  1. mp3をD&Dで入れます。
  2. 左下の「プロジェクトのサンプリング周波数」を11025に変えます。
  3. 左上の「ファイル(F)」から「書き出し(E)」を選択し、「WAVとして書き出し(W)」を選択し、以下の形で保存します。

 

44010から11025に変更するだけでこれだけ変わります。

youtu.be

 

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に変更するような仕組みをすれば実用は出来そうに思いますし、利用しても面白そうに感じました。