自宅での訓練・実験室での効果測定について

・教示文
1. 実験手順
2. 実験概要
3. 制御方略

*制御方略の「その他」は,1~3に該当しないもの,そして温冷感・情動イメージの併用などが該当します。制御方略には個人があるため,ご自身に合ったものを選択して訓練を行ってください。

4. 実験スケジュール
パターンA
パターンB
5. 自宅での訓練

・大学での計測:4回
・自宅などでの訓練:3週間

訓練毎にForms回答!!

訂正:目を開けて訓練, 安静中FBなし
6. BF装置の使用方法

連絡先:Teamsチャットにて

【電池交換】

(+基盤の薄さがわかる画像を添付

電池ボックスがかなりキツく簡単に取り外せません。電池交換の際は、千枚通し, ボールペンなど細く尖ったものをお使いください。

*基盤が非常に薄いため乱雑にとると簡単に壊れます。そのため、右画像のようにしっかりと両手で抑えて外すようにしてください。

【装着例】

ストラップは自由に付け替えてok

【説明に用いた資料】

Pythonを用いたツンデレChat GPTとの対話

サンプル動画

ツンデレ

開発環境準備
・Chat GPT:テキストを考える
・Coeiroink:テキスト読みあげ→Voicevoxはコードを指定すれば使える
・Notepad++:プログラム書く
・python:プログラム動作
・IrfanView:Chat GPTリロードのスクショに

*Pythonの開発環境設定も忘れずに

Pythonプラグ(参考サイト

$ pip install requests
$ pip install pydub
$ pip install pyaudio
$ pip install pillow
$ python hello_ink.py

*ctrl+Cでpython対話終了

ファイルの保存先

Cドライブ直下に「INK」というファイルを作成し、そこにNotepad++で書いたプログラムなど今回用いるファイルを格納する。INK意外にした場合、プログラムを書き換える必要がある(auto01.py)。

Anaconda Navigater

以前使用したのが保存されないのか、「Anaconda Navigater→INK」を選択してからでないと左画像のようにPrompt内で(base)のままでエラーをはかれる。

動作チェック
そもそもCoeiroinkに読んでもらえるかの動作チェックは下記プログラムから。9行目のspeaker_idからつくよみちゃんのタイプを切り替える(ID6など)。

import json
 
import requests
from pydub import AudioSegment, playback
 
# パラメータ
text = "こんにちは、つくよみちゃんです。よろしくお願いします。"  # セリフ
text2="先日さ、友達とカラオケに行ったんだけど、その時の話がすごく面白かったんだよね。みんなで歌って楽しんでいたんだけど、途中で友達の一人が「誰か知らないけど、めちゃくちゃ上手い人が歌ってる!」って言い出したんだ。";
speaker_id = 1  # スピーカーID (0:つくよみちゃん)
 
# 音声合成のクエリの作成
response = requests.post(
    "http://localhost:50031/audio_query",
    params={
        'text': text2,
        'speaker': speaker_id,
        'core_version': '0.0.0'
    })
query = response.json()
 
# 音声合成のwavの生成
response = requests.post(
    'http://localhost:50031/synthesis',
    params={
        'speaker': speaker_id,
        'core_version': "0.0.0",
        'enable_interrogative_upspeak': 'true'
    },
    data=json.dumps(query))
 
# wavの音声を再生
playback.play(AudioSegment(response.content,
    sample_width=2, frame_rate=44100, channels=1))

実行するためのプログラム
この後に出てくる「setting01.txt」というChat GPT性格設定に使うテキスト文を元に、ヤンデレなり、ツンデレなり、思春期の娘など自分の好きなタイプに合わして会話できる。

注意点
・15行目:txtファイルの呼び出し
・21, 55, 69行目:カーソル位置
・38行目:画面のサイズを適当に→設定からMaxサイズを調べちょい減らした値

#auto01.py
import pyautogui
import pyperclip
import time
import json
import requests
from pydub import AudioSegment, playback
 
speaker_id = 0  # スピーカーID (0:つくよみちゃん)
#speaker_id = 1  # スピーカーID (まなノーマル)
config=""
 
##########################################
def copy_and_paste(text):
    with open('C:/INK/setting1.txt', 'r',encoding='utf-8') as f:
        config = f.read()
    #print(config)
 
    # インプット部分をクリックします
    #pyautogui.moveTo(-905, 1370)
    pyautogui.moveTo(361, 994)
    pyautogui.click()
    time.sleep(0.5)
 
    #print(text)
    print("_")
     
    #入力する
    pyperclip.copy(text)
    pyautogui.hotkey('ctrl', 'v')
    pyperclip.copy(config)
    pyautogui.hotkey('ctrl', 'v')
    pyautogui.press('enter')
 
    #出力終了を待つ
    time.sleep(1)
    print('scan ',end='')
    search_region = (0, 800, 900, 1070)
    
    time.sleep(5)
    
    
    while pyautogui.locateOnScreen('C:/INK/regbutton.png', region=search_region) == None:
        time.sleep(0.1)
        print('>',end='')
    print(" found")
    
   
    
         
    #下までスクロール
    #time.sleep(1)
    #pyautogui.scroll(-5000)
    #time.sleep(1)
    pyautogui.moveTo(856, 923)
    pyautogui.click()
    pyautogui.press('down')
    pyautogui.press('down')
    pyautogui.press('down')
    pyautogui.press('down')
    pyautogui.press('down')
    pyautogui.press('down')
    pyautogui.press('down')
    pyautogui.press('down')
    pyautogui.press('down')
    pyautogui.press('down')
 
    #x, y = -548, 1321
    x, y = 856, 901
    step=20
    prev_clipboard = pyperclip.paste()
 
    time.sleep(1)
 
    for i in range(40):
        y -= step
        pyautogui.moveTo(x, y)
        pyautogui.click()
         
        # クリップボードのテキストを取得して表示する
        clipboard_text = pyperclip.paste()
        #print(y, clipboard_text)
        if clipboard_text != prev_clipboard:
            break
         
        # 前回のクリップボードの内容を更新する
        prev_clipboard = clipboard_text    
 
    print(clipboard_text)
    pyautogui.moveTo(1791, 1220) #コンソールに復帰
    pyautogui.click()    
    return clipboard_text
 
##########################################
def speakINK(msg):
    # 音声合成のクエリの作成
    response = requests.post(
        "http://localhost:50031/audio_query",
        params={
            'text': msg,
            'speaker': speaker_id,
            'core_version': '0.0.0'
        })
    query = response.json()
      
    # 音声合成のwavの生成
    response = requests.post(
        'http://localhost:50031/synthesis',
        params={
            'speaker': speaker_id,
            'core_version': "0.0.0",
            'enable_interrogative_upspeak': 'true'
        },
        data=json.dumps(query))
      
    # wavの音声を再生
    playback.play(AudioSegment(response.content,
        sample_width=2, frame_rate=44100, channels=1))    
     
##########################################
def main():
  
    print("チャットをはじめます。q または quit で終了します。")
    print("-"*50)
    while True:
        user = input("<あなた>\n")
        if user == "q" or user == "quit":
            print("お疲れ様でした")
            break
        else:
            buf1=copy_and_paste(user)
            speakINK(buf1)
 
 
 
# 現在のカーソル位置を取得
#current_position = pyautogui.position()
#print("現在のカーソル位置:", current_position)
 
 
 
#buf1=copy_and_paste("こんにちは")
#speakINK(buf1)
 
 
 
#image_location  = pyautogui.locateOnScreen('C:/Users/Science/SELENIUM/clipicon.png')
#print(image_location )
 
if __name__ == "__main__":
    main()

人格設定
Chat GPTの人格設定で、文頭に「。」がついていると読み込みやすい。「~の話し方」「~という感じで」とかアバウトでok.

。敬語は使わず、ヤンデレの話し方をして下さい。回答は50~100文字くらいで行ってください。口調は「なんで逃げるの?」とか「あなたのことは何でも知ってる」「私だけはずっと側にいるよ」といった感じで話してください。

カーソル位置の取得
Pythonで勝手に文章のコピペ(コントロール)してもらうのに、座標を一つずつ教えてやらないといけないみたい。x, y座標を調べるためのプログラムは「auto02」。やり方は下記動画の通りマウスカーソルを合わして実行するだけ。座標の入力は「auto01」21, 55, 69行目。

#auto02.py
import pyautogui
import pyperclip
import time
  
# 現在のカーソル位置を取得
time.sleep(1)
current_position = pyautogui.position()
print("現在のカーソル位置:", current_position)

参考サイト(152)
Pythonで画面操作
Pythonでつくよみ

4月安全管理委員会

※本記事は公開を想定して書かれています。

前回のあらすじ

http://kodamalab.sakura.ne.jp/wordpress/?p=46787

安全管理委員長

4月の安全管理委員長は,私大栗になりました。

厚生労働省より,
「令和5年3月13日以降、マスクの着用は、個人の主体的な選択を尊重し、個人の判断が基本となりました。」
となっています。

しかし,黄砂や実験室利用などの観点から窓を解放しないことも多いかと思われます。そのため,従来通りマスクを着用して距離を確保する方法を取っていきたいと思います。

ご理解とご協力をおねがいします。

質問紙調査

Forms作成方法

【項目作成】

テキスト
 内省報告や氏名など文字・数値入力。「長い回答」をオンにすると段落を構成できるため、回答者が見返すのに便利な機能。「・・・」から数値制限(年齢回答時に外れ値対策)を行える。Youtube, 画像などの挿入も可能。

選択肢
 性別などの回答に用いる。複数回答もチェックを入れると可能になる。「・・・」から選択肢をシャッフルすることができる。

リッカート
 尺度の回答。「ステートメント=項目」「オプション=~件法」。

セクション
 尺度や基本項目(氏名や年齢など)の切り替えなど目印に使える。

【回答リンク】

回答者:リンク
調査者:リンク

質問紙レポート

授業内で独自に作成した尺度を基に、「大学生のSNS利用が対人ストレスに及ぼす影響」について調査して、レポート化したもの。2年次に作成したため、結果の書き方等ツッコミどころはあるため、温かい目で見守って下さい。

ECG, SCC 測定アンプ作成

前書き
サイエンスで使用するECG, SCCの測定アンプ10セットをゴールデンウィークまで(4/29(土))に作成することとなった!!

パーツ一覧

【AD変換:計測安定】

【SCC: 皮膚コンダクタンス変化】

【ECG:心電図】

ワークショップ(E-152)

余談
筋電図の時に組み立て参加したから多分大丈夫だと思う。
理想は卒論の実験始めながら、作成したいところ。

装着位置

分散分析

内容
Ⅰ,  分散分析
Ⅱ,  要因・水準
Ⅲ,  結果の見方
Ⅳ,  結果の書き方
Ⅵ,  用語

=======================================================================

【ざっくり】
・t検定:2つを比較
・分散分析:3つ以上を比較

【種類】
1, ~要因
・1要因:大学(A, B, C) × テスト得点
・2要因:時間帯(午前, 午後) × ご飯(白米, パン, 麺)
・3要因:旅行先(北海道, 沖縄, 所沢) × 移動手段(自転車, 徒歩) × 旅行日(平日, 休日)

*水準:大学(A, B, C) →3水準, 時間帯(午前, 午後) →2水準

2, ~計画
・対応あり:共通。カウンターバランス 例) 「前安静→課題→後安静」3期間
・対応なし:片方に所属。群分け。   例)      性別, 大学差など
・混合計画:対応あり+対応なし    例)  「室内の温度(温/寒) × コーヒー(3種)」

*「対応あり=参加者」「対応なし=参加者

←2要因3水準参加者内計画  2要因3水準混合計画→

【結果の見方】 

例)「衝突前後 (衝突前・衝突後) × 試行数(1~5試行)」の発汗量
・独立変数:衝突前後, 試行数
・従属変数:発汗量

1, ざっくりと分析(主効果, 交互作用)
・主効果:「衝突前後と発汗量」「試行数と発汗量」各々で関連はあるのか
・交互作用:「衝突前後×試行数」が発汗量に与える影響

参照: https://www.business-research-lab.com/220606/

2, 細かく見る(多重比較, 単純主効果)
・多重比較:主効果が認められた場合のみ、「衝突前×1試行, 2試行…5試行」「衝突後×1試行, 2試行…5試行」どの組み合わせが有意かみる。
・単純主効果:交互作用が認められた場合かつ、2要因の交互作用が有意であった場合に行う。

【結果の書き方】
・有意差なし (n.s.)
 
→「F(4, 5)=0.72, n.s.」で終わり

・有意差あり (p<.01  p<.05)
→①主効果・交互作用:「F(4, 5)=0.72, p<.01」
→②多重比較を行いどの組み合わせが有意かみる

F(自由度分子, 自由度の分母)=F値, P値

【用語】
・主効果:「結果の見方1」ざっくりと分析して、結果が有意だった時に使う。
→例)衝突前後で有意:「衝突前後の主効果が認められた」

・多重比較:「結果の見方2」細かく分析して、主効果が認められた時に使う。
→例)衝突前×1試行目で有意:「主効果が有意だったため、多重比較を行った結果1試行目で有意差が認められた」

・交互作用:下の図のようにクロスで分析する。
→例)「パフォーマンス(高)×リスク志向(低)」

・単純主効果:交互作用が有意であった場合に行う

交互作用のプロット図

「平行でないもの・クロスしているもの」が交互作用が認められる。反対に平行なものは上記画像(上段)の通り交互作用が認めらない。

【注意点】
分散分析自体かなり複雑なため、レポートに書くときは丁寧に書く。
・分散分析:「A(~, ~)×B(~, ~)の ~要因~水準の~計画を行った」
・多重比較:「~法(Holm, Bonferroni法など)による多重比較を行った」

=========================================================================

一連の分析の流れは、例題と共にこちらのサイトで紹介されていた。統計ソフトはSPSSっぽいが、用語の説明など詳しく書かれていた。

t検定は省くとして, 重回帰分析は微妙だが因子分析なら教えられそう…

内受容感覚_先行研究

MAIA
・構成:8因子32項目
・測定:身体感覚, 内的受容感覚, 気づきや注意制御, 信頼など。
→内受容感覚への気づきの程度, 自身の内受容感覚を信頼している程度, 注意を保つことができる程度。FFMQはマインドフルネス尺度のこと。

MAIA引用

Mehling,Price,Daubenmier, Acree,Bartmess,& Stewart(2012) のMultidimensional Assessment of Interoceptive AwarenessMAIA) 尺度がある。

これを庄子雅保・大野誠士・BeateM.HerbertWolfE.Mehlingが日本語化した「内受容感覚への気づきの多次元的アセスメント」では,「緊張しているとき,身体のどの部分が緊張しているか気づいている」などの質問に回答を求め,内受容感覚の程度を評価している。

寺澤・梅田,2014
・内受容感覚とバイオフィードバックについても少し述べられている。

内受容感覚とBF

心身相関,脳の機能

前島(島皮質_Takahiro Hayashi・Naoki Ikegaya,2022)

内受容感覚の3つの測定方法

  • Interoceptive Accuracy (IA): 心拍検出課題などで内受容感覚の正確さを測定。
  • Interoceptive Sensibility (IS): 質問紙を用いて身体内部に意識を向けた際の傾向を測定。
  • Interoceptive Awareness (IAc): 内受容感覚の正確さに関するメタ認知を測定。

栗野(2022),ciniiのサイト

寺澤,2017

Freedman,2012リンク

Christine(2014):内受容感覚の文化差について詳しくレビューされている
Chentsova&Dzokoto., 2014
・Ma-kellam,2012→庄司,2017に引用元がある

金井・湯川,2017

福島(2014)
・内受容感覚の性差(心拍知覚,呼吸不可,血糖値,血圧):男性>女性
・内受容感覚の文化差(心拍知覚):西洋人>アジア人

櫻井・清水
・BFによって,内受容感覚が鋭敏になるか(心拍カウント,心拍弁別)
→BF前後で変化はみられなかった。内受容感覚は,短期的に個人の中で安定

VRチャットで、実験参加者を招待するための手続き

招待方法

1, (ハンコン)Bボタン→Social


2, Online Friend→hikensyaを選択


3, Send invite→Send invite

4,完成

事前準備
・VR Chatにログイン(実験者・参加者)
・準備中に参加者のアカウントにsendから申請を送る(実験者)
・VR空間上で椅子に座って待機(実験者)

ミラーリング
・Oculusボタン→VR Chatの左下4つの右から二番目がミラーリング
(選択すれば勝手にできたような気がする)参加者のみ

==================================================================

メモ
・VRスピーチでの安静期間は開眼
→VRゴーグルを外すのは,後安静が終わってから

資料

・実験協力者の待機場所
・実験者の待機場所→参加者の心理指標回答中の待機スペース

VRゴーグル
・N1=実験者
・N2=参加者

Finometer 勉強会

長野ゼミの卒論生がフィノメーターを使用するとのことで、「重田・永松・河田・漆師さん・長野先生」の5人で使用方法を学んだ。後ほど、永松さんが使用方法をブログに投稿するため、ざっくりとメモ書きしておく。

マニュアル・プログラム】
2014年時点でtairaさんがゲーム時の生体計測を扱っており、そこにフィノメーターに用いるマニュアル・プログラム一式を添付 (E-152:リンク)されてた!!

↑これを読めば一先ず使用可能に…

【使用方法】
1, 本体の電源を入れる

USBケーブルでPCと接続して、フィノメーターの電源を入れる。

ソフト「BeatScope Easy」を立ち上げ、、3枚目画像のように青く光ればok.
(光らなければもう一度やり直し)

2, カフの装着

注意点
・カフ自体、高価で繊細なため、使用時は細心の注意を
・カフを装着の際、開きすぎると割れてしまうため指1本通るくらいに留める
・計測中は指を通さないと破裂する恐れがある
・保存時は段ボールを噛ましておくと長持ちする
・S14とかが年号で、22が一番新しかった気がする

非利き手の腕に通して、マジックテープで固定する。
測定部位は、心臓付近が好ましいため、画像のようにクッション等で調節する。

装着位置
・中指の第1, 2関節の中間の腹部
・カフの黒点(光センサー)が指の側面を挟むように装着

光センサがズレると計測できず、またきつく装着すると圧迫されてしまう。手首につける方は腕時計に近い位置でかつ緩めに装着する)

3, 高さセンサーの装着

肘より少し上らへんにマジックテープで固定して、固定したちょい先をめくって高さセンサを貼り付ける。高さセンサはもちろん心臓の高さまでもっていく。3枚目画像のように、水色の丸で囲った部分(カフ・高さセンサ)の差圧で血圧を測定するらしい。

高さセンサの装着が終了次第、フィノメーターのコマンド「Height」を音が鳴るまで長押し。-00表示になれば補正が完了する。-10でも開始できるけど、-70とかは「start/stop」でリセットしてから、もう一度「Height」を押す。

4, 計測開始

ソフト「BeatScope Easy」を立ち上げ、中央上にある”Start”から実験参加者の基本的なプロフィール(赤丸は必須回答)を入力したらok. Fingerにチェックをつけることと、明らかに身長が低い人には気をつける(年齢は大学生だから同じでいい)。

水色:CO
黄色:血管抵抗

あとはHRなど。左下の赤丸部分が測定経過時間を表している。
脈波(オレンジ)が直線が多くあると調整段階のため、少々待機。

注意点
前半5分は測定値が乱れてしまうため、切り捨てなければならない。そのため、安静期4分ならば6~8分とる必要があるため、実験スケジュールを確認。
指先が冷えていると外れ値がバンバン出やすい。実際にあったのがこれ↓ 

手先が冷たいといえばもちろん某しげたのお手て。
周囲からの評判も生理指標が汚い男として知れ渡ってしまった。

 ←Fitbit_HR

まあそんなことは置いといて、手先がめっちゃ冷たい人だと計測が困難。見極め方は「HR50~100」が良いとされているため、それ以下(HR20, 30)だった場合…

あとは市販の血圧計190, フィノメーター140であれば差分の50を全体の値から引いていくという方法もあるらしい。先生曰く。つまり、脈波(オレンジ)が横ばいになっていると計測できておらず、安静期間までを伸ばす。

残りの計測器外し方は、メモの通り。

分析方法に関してはスマホで動画撮影したのでそれを使ってもらえればと(毎回新しいファイルで動画編集した結果画質がごみになりました…)。

データ処理
1, exportから .csvファイルをデスクトップに保存(BeatScope Easy)
2, Beat Helperからファイルを変換する
3, 変換したファイルをもとにグラフ化する(一人ずつ変換を行う)

Unity 映像作成3

【作成方法】

使用するAsset, Pluginは前回のブログ「Unity 映像作成2」で紹介した通り。おそらく計3つインストールしておけば動くはず。

作成動画の尺としては16分程度だが、Assetのインポート含めて20分程度で簡単な映像が作成できるため、ぜひお試しください。動画1の序盤が参考になるだけなので、残りは公式の動画を見た方が早いかも。

また、Unityで映像作成をするメリットは以下の通り(Unity Japan)

要は利便性が高く、試行錯誤ができますよってことだと思う。そこまで、真剣に考えていないから正直…ってとこだけど。右画像のように具体的な構想があれば、あとはAsset組み合わせて作成できるからその手法の一環として、アニメーションにおいてなら有効なのかもしれない。

文京のPVに心理学科サイエンスコースがUnityで作成しました!! ってのもできる。いいように使われるだけで、まったくやる気は起きないが。

【High Definition RP】

HDRPに感動した。

あまりにもクオリティが高くなりすぎて、ことばが出そうで出ない。今まで見てきたものが嘘のようにもうすんごいの。パンダの質感もめっちゃいいし。ただ、ゲーミングPCでもステージ配置して数秒は若干重いけど、最初だけだったみたい。

HDRP使用時の最初はエラーが続出するけど、「Fix All→Create One」でShaderとかまとめて適応されるため、なんら問題なし。PCスペックを考えるとこのPluginはあまり推奨できない。重くて動かなくなるかも。

URPはそもそもShaderに色がつかず、透明になったため推奨できない。使うなら「UI→Unit→Detail」になり、テカテカしたいろになるため注意。