Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Speech to Textureで 思い通りに世界を改変しよう
Search
donabe
October 08, 2023
Technology
41
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Speech to Textureで 思い通りに世界を改変しよう
donabe
October 08, 2023
More Decks by donabe
See All by donabe
Unityがマルチプラット フォームビルドできる理由は? よく聞くIL2CPPって? 調べてみました!
donabe3
0
30
ハッカソン請負人の 開発ルーティンを紹介!
donabe3
0
81
AndroidXR 開発ツールごとの できることできないこと
donabe3
0
360
OutOfRange 【プロトスプリントリーグ】
donabe3
0
110
Unityで都市開発シミュレーションゲーム開発をしてみよう
donabe3
0
490
現実 VS バーチャルのマルチプレイゲームを作ろう
donabe3
0
210
院試までなにやったか
donabe3
0
50
XR Interaction toolkit & XRHands & Passthrough API で MR 開発
donabe3
0
290
XRの魅力を語りたい
donabe3
0
72
Other Decks in Technology
See All in Technology
MIRU 2026 チュートリアル
keisuke198619
0
960
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
220
猫付きpingコマンドを自作
uyuki234
0
250
Apache Icebergインフラストラクチャ:ストレージ・カタログ・エンジンの選択肢とClouderaプラットフォームでの実装
tsugiyama
0
110
その“隠したつもり”が命取り ── 自前と平文をやめて「正解」に委ねる
kuroneko13
0
130
Data Hubグループ 紹介資料
sansan33
PRO
0
3.2k
20分でわかるセキュアAPI
nwiizo
2
300
AWS ネットワーク構築でハマった(ハマりかけた) 5選とそこから得た教訓
nagisa53
4
240
侵入は突然に 〜 IoTマルウェアと悪用される家庭の機器 ~ / When Intrusion Strikes: IoT Malware and the Abuse of Home Devices
nttcom
0
5.9k
Head First モブプログラミング / Head First Mobprogramming
takaking22
10
12k
『三匹の子ぶた』から学ぶネットワークセキュリティの昔と今 / Network Security: Then and Now Through the Lens of The Three Little Pigs
nttcom
1
6.2k
Featured
See All Featured
Code Review Best Practice
trishagee
74
20k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
540
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Writing Fast Ruby
sferik
630
63k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
A Soul's Torment
seathinner
6
3.4k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
650
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
64
56k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
It's Worth the Effort
3n
188
29k
Transcript
Speech to Textureで 思い通りに世界を改変しよう 土鍋 2023/10/08 Zli 大LT
自己紹介 名前: 土鍋 (渡辺雄大) 学年: 学部4年(28期) 所属: A-PxL元代表、Zli、Iwaken Lab. 興味:
XR、Unity、ゲーム、CG、映像 趣味: ゲーム、ゲーム開発、鉄道旅行、Vtuber Twitter(X): @donadonadonabe Blog: https://donabenabe.hatenablog.com 近況: 筑波大学 大学院 合格しました 2
世界を思い通りに改変したいですよね?
現在の研究 空間デザインにおいて抽象的な想像を具現化するのは難易度が高い 直感的な指示によって想像通りなテクスチャ変更を可能にしたい 音声認識とハンドトラッキング、画像生成AIを用いて実装する
デモ
全体の構成 HandTracking
Speech to Text 1. 録音(AudioClip) 2. AudioClipからWaveへの変換 3. Whisper API
(Speech to Text) 4. レスポンスのtextが返ってくる 参考: Unityで録音アプリを作成 - YKpages
AudioClipをWAVEファイルに変換 録音データはUnity独自のAudioClip形式 Whisper APIは.mp3や.wavなどに対応している → 変換が必要 Wave Audio Clip ChunkSize
44 + AudioClip.samples * AudioClip.channels * BitsPerSample / 8 NumChannels AudioClip.channels SampleRate AudioClip.frequency ByteRate AudioClip.samples * AudioClip.channels * BitsPerSample / 8 BlockAlign AudioClip.channels * BitsPerSample / 8 Subchuk2Size AudioClip.samples * AudioClip.channels * BitsPerSample / 8 参考: 【Unity】AudioClipからWAVEファイルを生成する - はなちるのマイノート
全体の構成 HandTracking
ChatGPTでPrompt形式に変換 ChatGPT APIを叩いてるだけ Prompt 「送信されたテキストに基づいて、画像生成AI用のプロンプトを作成する。 ただし、プロンプトのみを出力する。英語、短い単語をカンマ区切りで。」 ChatGPT APIをUnityから動かす。|ねぎぽよし
全体の構成 HandTracking
Text to Image(Stable Diffusion) AUTOMATIC1111の「Stable Diffusion web UI API」 https://github.com/AUTOMATIC1111/stable-diffusion-webui
Cloneして ローカルでAPIサーバーを立てる
リクエスト セットアップ内容のJson → 今回はプロンプトのみ使用 その他の値はデフォルト 今後は選択したオブジェクトのテクスチャサイズ に応じて、画像を生成するようにしたい
レスポンスからUnityのテクスチャを生成 imageはBase64で返ってくるのでbyte配列に変換してあげる。 byte配列をテクスチャに変換 オブジェクトのMeshRendererのマテリアルのBaseMapに 生成したテクスチャをセット byte[] data = Convert.FromBase64String (imageData);
Texture2D texture = new Texture2D(1, 1); texture.LoadImage(data); nowSelectGameObject .GetComponent<MeshRenderer>().materials[0] .SetTexture("_BaseMap",result);
全体の構成 HandTracking
3Dスキャン Room Plan: Apple ARKitの機能の一つ LiDARセンサーでスキャンし、部屋の家具を仮想空間に再現する
ハンドトラッキング 指差したオブジェクトを選択してテクスチャを変えたい。 右手 1. 人差し指だけ伸びてるか? 2. 指からRayを発射 3. 当たったオブジェクトを取得 左手
親指と人差し指をくっつけると 録音開始・停止
今後の展望 オブジェクトの形状に合うようにテクスチャを生成するようにしたい
参考資料 • Unityで録音アプリを作成 - YKpages • 【Unity】AudioClipからWAVEファイルを生成する - はなちるのマイノート •
【Unity × ChatGPT API × WhisperAPI】音声認識AIアシスタントを実装する • ChatGPT APIをUnityから動かす。|ねぎぽよし • UnityのMicrophoneで正確な録音時間を取得する方法 - Qiita • stable diffusion webuiのAPIを使う方法 • UnityWebRequest で簡単 HTTP(POST)通信 | 株式会社ビヨンド • Unityでbyte配列からテクスチャ作ってスプライト化するまでやる · GitHub • Unity + Meta Quest開発メモ
ご清聴ありがとうございました