水上さん修論_backup
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
[[技術資料]]
#attach(nolist)
----
目次
#contents()
----
*はじめに [#z00fd092]
本研究では大まかに2つのことをやる&br;
1.webから楽曲特徴量を取得し、特徴量に応じたHTMLの作成(下...
2.顔から感情値を取得し、感情値に応じてHTMLへ移動&br;
実行したいだけの人は下の「楽曲推薦の実行方法」まで飛ばし...
*使うプログラム全て [#h82a02b0]
使うプログラムはこちら ※最終的に1.8GBの容量になるのでPC...
あと、htmlの作成に合計3~4時間かかります&br;
#ref(感情分析プログラム.zip)
中身はこんな感じ&br;
#ref(使うプログラム1.png,,800x120)
「1.プレイリスト作成用プログラム」は、HTML作成するプログ...
「data」は「1.プレイリスト作成用プログラム」のプログラム...
*手順 [#z00fd092]
下準備1.GeniusAPIからアクセストークを取得&br;
下準備2.SpotifyからClientid、Clientsecretを取得&br;
1.「1.プレイリスト作成用プログラム」の「2.Geniusから歌詞...
2.「1.プレイリスト作成用プログラム」の「3.BERTのモデルの...
3.「1.プレイリスト作成用プログラム」の「4.LDAによるトピッ...
4.「1.プレイリスト作成用プログラム」の「5.トピックと楽曲...
ここで、HTML作成は終わり&br;
5.「2.顔から感情推定用プログラム」のapp.py実行用のモジュ...
6.「2.顔から感情推定用プログラム」のapp.pyをコマンドプロ...
以下にそれぞれの解説を行う
*下準備 [#gb4f7d1e]
**下準備1(Geniusのアクセストークンを取得) [#j1699223]
GeniusAPIから歌詞を取得するには、以下のサイトの、「Genius...
https://self-development.info/%E3%80%90%E6%AD%8C%E8%A9%9E...
登録したら、アクセストークンを控えておく。これは2.Genius...
#ref(アクセストークン.jpg,,320x300)
**下準備2(SpotifyからclientID、clientsecretを取得) [#v2f2...
spotifyから楽曲の特徴量を取得するには、spotifyに会員登録...
以下のサイトの、「ここまででCLIENT ID と CLIENT SECRET ID...
https://zenn.dev/tteaoocl/articles/6cce2e7615c11c &br;
アプリを作成の部分で、アプリ名とアプリの説明は何でもよい...
#ref(アクセストークン22.png,,620x500)
登録が完了したら、ClientIDとClientsecretを控えておく。こ...
以下は例↓
#ref(アクセストークン333.png,,820x400)
*「1.プレイリスト作成用プログラム」の解説 [#h82a02b0]
「1.プレイリスト作成用プログラム」の中身はこのようになっ...
#ref(使うプログラム2.1.1.png,,800x200)
2から順番に使っていきます&br;
基本的にコードを実行していくだけでできます。&br;
**「2.Geniusからの歌詞の取得ipynb」の解説 [#h82a02b0]
このプログラムでできること&br;
・アーティスト名と楽曲名から歌詞を取得する&br;
・スクレイピングで取得した歌詞の不要な部分の除去&br;
ipynbはそれぞれのブロックに分かれているので、それぞれの重...
***モジュールのインストールの部分 [#i6b7472e]
コードを実行するとこのプログラムの実行に必要なモジュール...
***Geniusから歌詞の取得の部分 [#i6b7472e]
tokenに「下準備1」で取得した自分のアクセストークンを入れ...
#ref(アクセストークン2.png,,800x100)
「clean_lyrics」は歌詞から不要な文字列を削除する関数。
#ref(2関数1.png,,500x450)
「get_lyrics」はアーティスト名と曲名を使って Genius から...
#ref(2関数2.png,,600x800)
これは削除したい不要な文字列を削除する部分。削除したい文...
#ref(2関数3.png,,400x200)
最後に、歌詞の列を追加したcsvが「data」の「2.ごみとり前歌...
***取得した歌詞のごみとり1の部分 [#i6b7472e]
これは取得した歌詞から分析に関係ないごみを取るコード。&br;
実行に200分くらいかかるので、実行したら放置。&br;
最後に、歌詞のゴミとり処理を行った結果のcsvファイルが「da...
***取得した歌詞のごみとり2の部分 [#i6b7472e]
これは上と同じようにごみを取るコード&br;
これはすぐ終わります&br;
最後に、歌詞のごみとり処理を行った結果結果が「data」の「4...
**「3.BERTのモデル構築&歌詞の感情推定」の解説 [#h82a02b0]
このプログラムでできること&br;
・BERTのモデルを構築する&br;
・構築したBERTモデルを用いて歌詞の感情値(0~1の連続値、1...
BERTについて知りたい人はこちらを参考に↓&br;
https://aisuite.jp/column/bert/ &br;
「3.BERTのモデル構築&歌詞の感情推定」の中身はこのようにな...
#ref(3の中身.png,,800x150)
***モジュールインストールの部分 [#i6b7472e]
実行するとこのプログラムの実行に必要なモジュールがダウン...
***同じディレクトリにある「chABSA-dataset.zip」を解凍する...
「chABSA-dataset」は、TISが公開している感情分析を行うため...
詳しくはこちら↓&br;
https://www.tis.co.jp/news/2018/tis_news/20180410_1.html&...
#ref(3.1.png,,800x70)
このコードは以下のサイトから「chABSA-dataset.zip」をダウ...
https://github.com/chakki-works/chABSA-dataset?tab=readme...
コードを実行すると「chABSA-dataset.zip」が解凍される&br;
#ref(3.2.0.png,,800x200)
***「chABSA-dataset」のデータの形を整え感情分析用のデータ...
このコードは「chABSA-dataset」を扱いやすいようにcsvファイ...
ほぼこのページを参考にしました↓&br;
https://zenn.dev/robes/articles/a7ba6e172f3a14
コードを実行すると「dataset.csv」が保存される
#ref(3.2.1.png,,800x200)
中身はこんな感じ。「label」は、「text」の文章がポジティブ...
#ref(3.3.png,,600x400)
***「bert-base-japanese-v2」の事前学習モデルを使って「chA...
このコードはさっき作った「dataset.csv」を使ってBERTを感情...
BERTは事前学習は東北大学が公開している「bert-base-japanes...
「bert-base-japanese-v2」についてはこちら↓&br;
https://www.math-joy-life.com/bert-base-japanese-v2&br;
BERTのモデルのトレーニングに使用するトレーニング引数である
#ref(トレーニング引数.png,,600x300)
num_train_epochsはエポック数であり学習データを全て 1 回モ...
per_device_train_batch_size、per_device_eval_batch_sizeト...
warmup_steps学習率が最大値に到達するまでのステップ数であ...
weight_decayは重み減衰率であり,モデルの過学習を防ぐため...
logging_stepsはlogに記録を書き込む回数のことである&br;
BERTの用語について詳しくはこちら↓&br;
https://deepsquare.jp/2020/07/transformer/&br;
このコードを実行するとBERTのモデルが作成される&br;
#ref(完成したモデル.png,,600x200)
また、最後にモデルの評価結果が出力される。
#ref(モデルの評価.png,,800x30)
***作成したモデルを用いて歌詞の感情分析の部分 [#i6b7472e]
このコードは、作成したBERTの感情分析モデルで、歌詞の感情...
BERTで歌詞のポジティブ、ネガティブの割合を分析し、ポジテ...
このコードを実行すると歌詞の感情分析結果を追加したcsvファ...
***列名を整えるの部分 [#i6b7472e]
csvファイルの列名を整えている&br;
コードを実行すると列名を変更したcsvファイルが「data」の「...
**「4.LDAによるトピック分析.ipynb」の解説 [#h82a02b0]
このプログラムでできること&br;
・LDAを拡張したガイド付きLDAを用いて、歌詞から任意のトピ...
LDAとは、それぞれのテキストを単語に分割して情報化して、各...
ガイド付きLDAとは、それぞれのトピックに「予約語」を設定す...
LDAについて知りたい人はこちら↓&br;
https://recruit.gmo.jp/engineer/jisedai/blog/topic-model/...
ガイド付きLDAについて知りたい人はこちら↓&br;
https://qiita.com/pocket_kyoto/items/23ebe43c7f647f2c6b6f...
***モジュールのインストールの部分 [#i6b7472e]
実行するとこのプログラムの実行に必要なモジュールがダウン...
***ガイド付きLDAを用いて歌詞からトピックを抽出するの部分 ...
ここでは、ガイド付きLDAを用いて、歌詞を「恋愛」「青春」「...
ここはストップワードを設定する部分。ストップワードとは、...
#ref(4.1.png,,600x130)
ここは予約語の定義の部分。予約語として各トピックに関連す...
それぞれのトピックの予約語は、トピックに関連するであろう...
#ref(4.2.png,,600x230)
ここは歌詞からストップワード、と英語を除去し、単語ごとに...
#ref(4.31.png,,600x300)
ここは予約語をもとに初期トピックの単語分布を設定している。
#ref(4.4.png,,600x260)
ここはLDAモデルのパラメータ設定部分。etaはトピックの単語...
#ref(4.5.png,,600x250)
最後に、トピックのクラスタ結果を追加したcsvファイルが「da...
また、クラスタとトピック対応表のcsvファイルが「data」に保...
**「5.トピックと楽曲特徴量によるHTML.ipynb」の解説 [#h82a...
このプログラムでできること&br;
・トピックと特徴量ごとにプレイリストを作成&br;
・プレイリストを埋め込んだHTMLの作成&br;
***モジュールのインストールの部分 [#n17ef1e8]
実行するとこのプログラムの実行に必要なモジュールがダウン...
***特徴量によるクラスタ分けの部分 [#vbd487ee]
これは楽曲を、「高ネガティブ強度向け」「中ネガティブ強度...
最後に、特徴量のクラスタ結果を追加したcsvファイルが「data...
***初回認証の部分 [#pec9d3ba]
これは、次の「プレイリストの作成とhtmlの作成」を実行する...
まず、「CLIENT_ID」と「CLIENT_SECRET」は「下準備2」で取得...
#ref(クライアント登録.png,,600x200)
実行すると、以下のurlが出てくるので、クリックする
#ref(実行1.png,,800x100)
そうすると以下の画面が出るので、このページのurlをコピーする
#ref(実行2.png,,800x400)
また、画面上部にurlを張り付ける部分が出てくるので、先ほど...
#ref(認証1.png,,800x400)
成功すると「認証成功!アカウント名:(ユーザの名前)」が表示...
#ref(認証結果.png,,800x150)
***プレイリストの作成の部分 [#he8bdeb3]
ここは、上の初回認証を終わった後に行う。
まず、「CLIENT_ID」と「CLIENT_SECRET」は「下準備2」で取得...
#ref(クライアント登録2.png,,600x200)
実行するとurlの入力が要求されるので、「初回認証」で取得し...
#ref(認証2.png,,800x260)
入力が成功すると、まず、自分のSpotifyアカウントにプレイリ...
#ref(プレイリスト.png,,600x400)
また、プレイリストのurlを格納したcsvファイルが「data」の...
#ref(プレイリスト2.png,,600x250)
***プレイリストからHTMLの作成の部分 [#he8bdeb3]
これは、先ほど作成したcsvのurlをもとに、プレイリストが埋...
実行すると、作成されたプレイリストが埋め込まれたhtmlが「2...
#ref(作成されたhtml.png,,900x520)
*「2.顔から感情推定用プログラム」の解説 [#h82a02b0]
表情から感情値を取得し、「1.プレイリスト作成プログラム」...
「2.顔から感情推定用プログラム」の中身は以下の通り
#ref(2の中身.png,,800x150)
「static」には「1.プレイリスト作成用プログラム」で作成さ...
「templates」にはhtmlの表示部分の「index.html」が入ってい...
「測定結果」には、表情から測定した各感情の確率が格納され...
「app.py」は実行プログラム&br;
*楽曲推薦の実行方法[#h82a02b0]
環境はPython 3.10.1で実行できました。ほかのバージョンでも...
以下のモジュールをインストール。多分これでいけます。モジ...
pip install flask==3.1.0
pip install deepface==0.0.93
pip install tensorflow==2.18.0
pip install tf-keras==2.18.0
コマンドプロンプトから「2.顔から感情推定用プログラム」の...
学籍番号と名前を入力(測定結果のcsvファイルの名前を区別す...
#ref(動作1.png,,800x150)
以下の画面になったら、ctrlボタンを押しながら「https:://12...
#ref(動作2.png,,800x230)
実行できたら以下のフロント画面が表示される。&br;
この画面はカメラから移される画面と、画面の中の表情から推...
#ref(動作3.png,,500x500)
「楽曲を表示」ボタンを押すと、ネガティブ強度の平均値に応...
左のランプは現在の人のストレス強度の段階(青なら低ネガティ...
#ref(動作4.1.png,,500x300)
フロント画面の「終了する」ボタンを押すか、フロント画面の...
「感情値(前)」の方は、フロント画面を起動してから「楽曲を...
「感情値(後)」の方は「楽曲を表示する」ボタンを押してから...
#ref(動作5.png,,800x180)
中身は以下のとおりである。1秒ごとの各感情の確率とネガティ...
#ref(動作6.png,,800x400)
**1分間のグラフを作成する方法 [#rafbda8e]
1分間のグラフの推移を作成するには、以下のプログラムを使う...
#ref(分析用プログラム.py)
***使う流れ [#jbc2fd43]
まず、pythonプログラムを起動すると分析するcsvを選択するダ...
#ref(分析プログラム1.1.png,,600x400)
次に、秒ごとの平均をとるか、分ごとの平均をとるかを選択す...
#ref(分析プログラム2.png,,800x50)
選択したら、何秒ごとまたは何分ごとの平均をとるかを選択す...
#ref(分析プログラム3.png,,600x200)
そうすると、選択したcsvファイルに選択した分ごとのネガティ...
#ref(分析プログラム4.1.png,,600x500)
ここからグラフの作成方法を説明する(excelの場合)。まず、計...
#ref(分析プログラム5.1.png,,500x600)
ドラッグした状態で「挿入」→「散布図(直線とマーカー)」を押...
#ref(分析プログラム6.3.png,,600x400)
出来上がり。グラフの色や書式は自分で選択したください
#ref(分析プログラム8.png,,600x400)
おわり
終了行:
[[技術資料]]
#attach(nolist)
----
目次
#contents()
----
*はじめに [#z00fd092]
本研究では大まかに2つのことをやる&br;
1.webから楽曲特徴量を取得し、特徴量に応じたHTMLの作成(下...
2.顔から感情値を取得し、感情値に応じてHTMLへ移動&br;
実行したいだけの人は下の「楽曲推薦の実行方法」まで飛ばし...
*使うプログラム全て [#h82a02b0]
使うプログラムはこちら ※最終的に1.8GBの容量になるのでPC...
あと、htmlの作成に合計3~4時間かかります&br;
#ref(感情分析プログラム.zip)
中身はこんな感じ&br;
#ref(使うプログラム1.png,,800x120)
「1.プレイリスト作成用プログラム」は、HTML作成するプログ...
「data」は「1.プレイリスト作成用プログラム」のプログラム...
*手順 [#z00fd092]
下準備1.GeniusAPIからアクセストークを取得&br;
下準備2.SpotifyからClientid、Clientsecretを取得&br;
1.「1.プレイリスト作成用プログラム」の「2.Geniusから歌詞...
2.「1.プレイリスト作成用プログラム」の「3.BERTのモデルの...
3.「1.プレイリスト作成用プログラム」の「4.LDAによるトピッ...
4.「1.プレイリスト作成用プログラム」の「5.トピックと楽曲...
ここで、HTML作成は終わり&br;
5.「2.顔から感情推定用プログラム」のapp.py実行用のモジュ...
6.「2.顔から感情推定用プログラム」のapp.pyをコマンドプロ...
以下にそれぞれの解説を行う
*下準備 [#gb4f7d1e]
**下準備1(Geniusのアクセストークンを取得) [#j1699223]
GeniusAPIから歌詞を取得するには、以下のサイトの、「Genius...
https://self-development.info/%E3%80%90%E6%AD%8C%E8%A9%9E...
登録したら、アクセストークンを控えておく。これは2.Genius...
#ref(アクセストークン.jpg,,320x300)
**下準備2(SpotifyからclientID、clientsecretを取得) [#v2f2...
spotifyから楽曲の特徴量を取得するには、spotifyに会員登録...
以下のサイトの、「ここまででCLIENT ID と CLIENT SECRET ID...
https://zenn.dev/tteaoocl/articles/6cce2e7615c11c &br;
アプリを作成の部分で、アプリ名とアプリの説明は何でもよい...
#ref(アクセストークン22.png,,620x500)
登録が完了したら、ClientIDとClientsecretを控えておく。こ...
以下は例↓
#ref(アクセストークン333.png,,820x400)
*「1.プレイリスト作成用プログラム」の解説 [#h82a02b0]
「1.プレイリスト作成用プログラム」の中身はこのようになっ...
#ref(使うプログラム2.1.1.png,,800x200)
2から順番に使っていきます&br;
基本的にコードを実行していくだけでできます。&br;
**「2.Geniusからの歌詞の取得ipynb」の解説 [#h82a02b0]
このプログラムでできること&br;
・アーティスト名と楽曲名から歌詞を取得する&br;
・スクレイピングで取得した歌詞の不要な部分の除去&br;
ipynbはそれぞれのブロックに分かれているので、それぞれの重...
***モジュールのインストールの部分 [#i6b7472e]
コードを実行するとこのプログラムの実行に必要なモジュール...
***Geniusから歌詞の取得の部分 [#i6b7472e]
tokenに「下準備1」で取得した自分のアクセストークンを入れ...
#ref(アクセストークン2.png,,800x100)
「clean_lyrics」は歌詞から不要な文字列を削除する関数。
#ref(2関数1.png,,500x450)
「get_lyrics」はアーティスト名と曲名を使って Genius から...
#ref(2関数2.png,,600x800)
これは削除したい不要な文字列を削除する部分。削除したい文...
#ref(2関数3.png,,400x200)
最後に、歌詞の列を追加したcsvが「data」の「2.ごみとり前歌...
***取得した歌詞のごみとり1の部分 [#i6b7472e]
これは取得した歌詞から分析に関係ないごみを取るコード。&br;
実行に200分くらいかかるので、実行したら放置。&br;
最後に、歌詞のゴミとり処理を行った結果のcsvファイルが「da...
***取得した歌詞のごみとり2の部分 [#i6b7472e]
これは上と同じようにごみを取るコード&br;
これはすぐ終わります&br;
最後に、歌詞のごみとり処理を行った結果結果が「data」の「4...
**「3.BERTのモデル構築&歌詞の感情推定」の解説 [#h82a02b0]
このプログラムでできること&br;
・BERTのモデルを構築する&br;
・構築したBERTモデルを用いて歌詞の感情値(0~1の連続値、1...
BERTについて知りたい人はこちらを参考に↓&br;
https://aisuite.jp/column/bert/ &br;
「3.BERTのモデル構築&歌詞の感情推定」の中身はこのようにな...
#ref(3の中身.png,,800x150)
***モジュールインストールの部分 [#i6b7472e]
実行するとこのプログラムの実行に必要なモジュールがダウン...
***同じディレクトリにある「chABSA-dataset.zip」を解凍する...
「chABSA-dataset」は、TISが公開している感情分析を行うため...
詳しくはこちら↓&br;
https://www.tis.co.jp/news/2018/tis_news/20180410_1.html&...
#ref(3.1.png,,800x70)
このコードは以下のサイトから「chABSA-dataset.zip」をダウ...
https://github.com/chakki-works/chABSA-dataset?tab=readme...
コードを実行すると「chABSA-dataset.zip」が解凍される&br;
#ref(3.2.0.png,,800x200)
***「chABSA-dataset」のデータの形を整え感情分析用のデータ...
このコードは「chABSA-dataset」を扱いやすいようにcsvファイ...
ほぼこのページを参考にしました↓&br;
https://zenn.dev/robes/articles/a7ba6e172f3a14
コードを実行すると「dataset.csv」が保存される
#ref(3.2.1.png,,800x200)
中身はこんな感じ。「label」は、「text」の文章がポジティブ...
#ref(3.3.png,,600x400)
***「bert-base-japanese-v2」の事前学習モデルを使って「chA...
このコードはさっき作った「dataset.csv」を使ってBERTを感情...
BERTは事前学習は東北大学が公開している「bert-base-japanes...
「bert-base-japanese-v2」についてはこちら↓&br;
https://www.math-joy-life.com/bert-base-japanese-v2&br;
BERTのモデルのトレーニングに使用するトレーニング引数である
#ref(トレーニング引数.png,,600x300)
num_train_epochsはエポック数であり学習データを全て 1 回モ...
per_device_train_batch_size、per_device_eval_batch_sizeト...
warmup_steps学習率が最大値に到達するまでのステップ数であ...
weight_decayは重み減衰率であり,モデルの過学習を防ぐため...
logging_stepsはlogに記録を書き込む回数のことである&br;
BERTの用語について詳しくはこちら↓&br;
https://deepsquare.jp/2020/07/transformer/&br;
このコードを実行するとBERTのモデルが作成される&br;
#ref(完成したモデル.png,,600x200)
また、最後にモデルの評価結果が出力される。
#ref(モデルの評価.png,,800x30)
***作成したモデルを用いて歌詞の感情分析の部分 [#i6b7472e]
このコードは、作成したBERTの感情分析モデルで、歌詞の感情...
BERTで歌詞のポジティブ、ネガティブの割合を分析し、ポジテ...
このコードを実行すると歌詞の感情分析結果を追加したcsvファ...
***列名を整えるの部分 [#i6b7472e]
csvファイルの列名を整えている&br;
コードを実行すると列名を変更したcsvファイルが「data」の「...
**「4.LDAによるトピック分析.ipynb」の解説 [#h82a02b0]
このプログラムでできること&br;
・LDAを拡張したガイド付きLDAを用いて、歌詞から任意のトピ...
LDAとは、それぞれのテキストを単語に分割して情報化して、各...
ガイド付きLDAとは、それぞれのトピックに「予約語」を設定す...
LDAについて知りたい人はこちら↓&br;
https://recruit.gmo.jp/engineer/jisedai/blog/topic-model/...
ガイド付きLDAについて知りたい人はこちら↓&br;
https://qiita.com/pocket_kyoto/items/23ebe43c7f647f2c6b6f...
***モジュールのインストールの部分 [#i6b7472e]
実行するとこのプログラムの実行に必要なモジュールがダウン...
***ガイド付きLDAを用いて歌詞からトピックを抽出するの部分 ...
ここでは、ガイド付きLDAを用いて、歌詞を「恋愛」「青春」「...
ここはストップワードを設定する部分。ストップワードとは、...
#ref(4.1.png,,600x130)
ここは予約語の定義の部分。予約語として各トピックに関連す...
それぞれのトピックの予約語は、トピックに関連するであろう...
#ref(4.2.png,,600x230)
ここは歌詞からストップワード、と英語を除去し、単語ごとに...
#ref(4.31.png,,600x300)
ここは予約語をもとに初期トピックの単語分布を設定している。
#ref(4.4.png,,600x260)
ここはLDAモデルのパラメータ設定部分。etaはトピックの単語...
#ref(4.5.png,,600x250)
最後に、トピックのクラスタ結果を追加したcsvファイルが「da...
また、クラスタとトピック対応表のcsvファイルが「data」に保...
**「5.トピックと楽曲特徴量によるHTML.ipynb」の解説 [#h82a...
このプログラムでできること&br;
・トピックと特徴量ごとにプレイリストを作成&br;
・プレイリストを埋め込んだHTMLの作成&br;
***モジュールのインストールの部分 [#n17ef1e8]
実行するとこのプログラムの実行に必要なモジュールがダウン...
***特徴量によるクラスタ分けの部分 [#vbd487ee]
これは楽曲を、「高ネガティブ強度向け」「中ネガティブ強度...
最後に、特徴量のクラスタ結果を追加したcsvファイルが「data...
***初回認証の部分 [#pec9d3ba]
これは、次の「プレイリストの作成とhtmlの作成」を実行する...
まず、「CLIENT_ID」と「CLIENT_SECRET」は「下準備2」で取得...
#ref(クライアント登録.png,,600x200)
実行すると、以下のurlが出てくるので、クリックする
#ref(実行1.png,,800x100)
そうすると以下の画面が出るので、このページのurlをコピーする
#ref(実行2.png,,800x400)
また、画面上部にurlを張り付ける部分が出てくるので、先ほど...
#ref(認証1.png,,800x400)
成功すると「認証成功!アカウント名:(ユーザの名前)」が表示...
#ref(認証結果.png,,800x150)
***プレイリストの作成の部分 [#he8bdeb3]
ここは、上の初回認証を終わった後に行う。
まず、「CLIENT_ID」と「CLIENT_SECRET」は「下準備2」で取得...
#ref(クライアント登録2.png,,600x200)
実行するとurlの入力が要求されるので、「初回認証」で取得し...
#ref(認証2.png,,800x260)
入力が成功すると、まず、自分のSpotifyアカウントにプレイリ...
#ref(プレイリスト.png,,600x400)
また、プレイリストのurlを格納したcsvファイルが「data」の...
#ref(プレイリスト2.png,,600x250)
***プレイリストからHTMLの作成の部分 [#he8bdeb3]
これは、先ほど作成したcsvのurlをもとに、プレイリストが埋...
実行すると、作成されたプレイリストが埋め込まれたhtmlが「2...
#ref(作成されたhtml.png,,900x520)
*「2.顔から感情推定用プログラム」の解説 [#h82a02b0]
表情から感情値を取得し、「1.プレイリスト作成プログラム」...
「2.顔から感情推定用プログラム」の中身は以下の通り
#ref(2の中身.png,,800x150)
「static」には「1.プレイリスト作成用プログラム」で作成さ...
「templates」にはhtmlの表示部分の「index.html」が入ってい...
「測定結果」には、表情から測定した各感情の確率が格納され...
「app.py」は実行プログラム&br;
*楽曲推薦の実行方法[#h82a02b0]
環境はPython 3.10.1で実行できました。ほかのバージョンでも...
以下のモジュールをインストール。多分これでいけます。モジ...
pip install flask==3.1.0
pip install deepface==0.0.93
pip install tensorflow==2.18.0
pip install tf-keras==2.18.0
コマンドプロンプトから「2.顔から感情推定用プログラム」の...
学籍番号と名前を入力(測定結果のcsvファイルの名前を区別す...
#ref(動作1.png,,800x150)
以下の画面になったら、ctrlボタンを押しながら「https:://12...
#ref(動作2.png,,800x230)
実行できたら以下のフロント画面が表示される。&br;
この画面はカメラから移される画面と、画面の中の表情から推...
#ref(動作3.png,,500x500)
「楽曲を表示」ボタンを押すと、ネガティブ強度の平均値に応...
左のランプは現在の人のストレス強度の段階(青なら低ネガティ...
#ref(動作4.1.png,,500x300)
フロント画面の「終了する」ボタンを押すか、フロント画面の...
「感情値(前)」の方は、フロント画面を起動してから「楽曲を...
「感情値(後)」の方は「楽曲を表示する」ボタンを押してから...
#ref(動作5.png,,800x180)
中身は以下のとおりである。1秒ごとの各感情の確率とネガティ...
#ref(動作6.png,,800x400)
**1分間のグラフを作成する方法 [#rafbda8e]
1分間のグラフの推移を作成するには、以下のプログラムを使う...
#ref(分析用プログラム.py)
***使う流れ [#jbc2fd43]
まず、pythonプログラムを起動すると分析するcsvを選択するダ...
#ref(分析プログラム1.1.png,,600x400)
次に、秒ごとの平均をとるか、分ごとの平均をとるかを選択す...
#ref(分析プログラム2.png,,800x50)
選択したら、何秒ごとまたは何分ごとの平均をとるかを選択す...
#ref(分析プログラム3.png,,600x200)
そうすると、選択したcsvファイルに選択した分ごとのネガティ...
#ref(分析プログラム4.1.png,,600x500)
ここからグラフの作成方法を説明する(excelの場合)。まず、計...
#ref(分析プログラム5.1.png,,500x600)
ドラッグした状態で「挿入」→「散布図(直線とマーカー)」を押...
#ref(分析プログラム6.3.png,,600x400)
出来上がり。グラフの色や書式は自分で選択したください
#ref(分析プログラム8.png,,600x400)
おわり
ページ名: