brand new note

Be water, my friend.

24時間以内にVTuberになる方法

朝になると私はVTuberになっていました。


f:id:frazz:20250605171046j:image

 

Config

OBSの音量設定:AG01を18dbくらい上げる(ちっさい声でも拾ってもらう)

AG01の設定:マイクmax、イヤホン、BGM12時、gain high、mix minus mic on、input mix

配線の設定:AG01電源はタップから5VDCへ繋ぎ、PCのデータ伝送用USBケーブルとは分離(1本でも賄えますがノイズが出る為、非推奨)。AGの3.5mmジャックを使いスピーカーのALESIS ElevateのRCAへ接続。音声出力をALESISへ渡すとヘッドホンでもスピーカーでも音が聴けます。USB typeB to typeCでPC/AG、PC/スマホを接続。スマホを開発者モードにしてキャプチャが有効な状態にします。

スマホミラーリング:MirrorTo < scrcpy(低遅延、高画質)。明らかにTCP/IPを解っている人が書いています。遅延が70msくらいになる。

BGM:Youtube(オフライン化)、OBSに音楽を入力する場合はマイクでスピーカーから室内音を取り込むよりPC内部から出力した方が高音質です。

モデリング:VRoidStudio + VRoid hub。外注も自作もしない場合にはこれで十分です。

モーションレンダリング:VseeFace<VMagicMirror (.vroidよりは.vrm)

ボイスチェンジャー:Voicemodは「でかい声だけハーモニカになります」で有名なカタチン氏も使用。性転換は有料。N Airを使ってニコ生配信するとずんだもんその他の有名ボイチェンが無料になります。

Tips

軽量化:ハードエンコード(H.264)、30fps、2500kbps、key frame=2s (Twitchは3s以上だと厳しい)、顔のモーションキャプチャをoff、表情の無効化、透過背景の無効化。私のcpuは弱いので。

 

デバッグ:twitchのinspectorとダッシュボードでビットレート確認、OBSからパケロスとレンダリングロス率を確認(nw/gpu起因の切り分け)、speedtest(上りがビットレートの6倍: 15Mbps〜36Mbps程度必要)、AG01の場合マイク電源とデータ伝送を別ケーブルで確保(グラウンドループ回避)、タスクマネージャ監視(cpu張り付きの頻度を下げる手段を優先)

 

経緯

イケボ配信者と戦う|yekipo

 

ぜんぜんハードウェアは普通の仕事するためだけに作った6年前のモデルなのでスペックが足りていないです。足りないなりにソフトウェアの最適化をしたのでそっちは参考になるかなと思います。

 

はい。今日から私は蓼丸夏樹です。スパチャお待ちしてます。ところでTwitchに出没するのであれば私は正式にはVTwitcherではなかろうか。まあ、なんでもいいです。

ChatGPTの動作を軽くする

ChatGPTを最近使いまくってるのですが、だんだん重くなってきたのでどうにかしました。

試した対策

  • プランをアップグレード

これは無課金を貫きたいので今回は考えません。他の手を使います。

  • ブラウザのタブを消す

特に応答速度は変わりませんでした。クライアント側のメモリは関係ないらしい。

特に変化なし。半分くらい消したんですがもう半分のチャットだけでも量が多いのか…?もしくは削除しないとだめなのかも。

  • エクスポート

アイコン→設定→データコントロール→エクスポートする→メールを受け取る→チャット内容をDLして確認


htmlファイルにまとまってくれてるのでこれを保管しておけばチャットは削除しても内容は見ることができますね。

エクスポート後のファイル

  • チャットの削除(有効)

2ヵ月分くらいのチャットを削除しました。とりあえず過去ログはどこかに残して見られるようにしていきます。色々あったのを振り返れないのももったいないですし。とりあえず速度は回復しました。

しかし過去の速度ほどではないので、ここから何が他にもできそうなのか考えていきます。


  • 履歴削除

キャッシュ、ブラウザの閲覧履歴を削除。自宅はWIFIあるので大丈夫。googleアカウントでこれが共有されてるんだとしたらスマホの通信量ってこれで増えたりしますよね。若干それが心配ですがどうなんでしょうか。GPTの応答速度は少しだけ上がったような気がしますがよくわかりませんでした。

  • タブを小さくする

4Kモニタに描画するCPUのせいなのではないかと思いタブを小さくしました。若干高速になった気がしますが、よく考えると一気に文字が表示されるようになるのかもしれません。GPTの応答速度には関係ないですね。

  • 英語か日本語か(有効)

ここ重要で、英語だと大変スムーズに応答してくれました。出力の際、日本語翻訳するタイミングで多少処理が増えているんですね。英語を学びたい方はぬるぬる動いてほしいが為に英語でやりとりするという修行もできますね。

実験のようす

描画テスト

まとめ

GPTの高速化には言語翻訳の壁が大きいことがわかりました。チャット削除も有効です。アーカイブやメモリ削除だけではなかなか速度の回復は見込めないことが分かりました。

開発の度に高性能になっていますが、同時に処理速度に関しても課題が出ているのでしょう。とはいえあまり気にしない方にとっては相当高速なので、ヘビーユーザの方の参考になれば幸いです。

topコマンドの込み入った使い方

topって見るだけで終わりやすいのでいじって何ができるのか試してみた。

画像で見比べる記事が欲しかったので書いた所もある。

f:id:frazz:20210605102244p:plain

1

CPUコアごとの使用率を表示できる。

f:id:frazz:20210605102453p:plain

2

NUMAをサポートしている場合NUMAノードごとの使用率を表示できる*1

f:id:frazz:20210605104148p:plain

z

カラーマッピングの設定をONにする。見やすいね(?)

f:id:frazz:20210605114253p:plain

Zで設定を変更できるのでもう少し見やすくできそうではある。

b

bold。running tasksの訳が微妙にわからないけど、今CPUが処理しているプロセスにマーカーを引くってことだろうか。よく適当にbを押して自分出来てる感を演出したくなるのでこれはしっかり理解しておきたいところ。

f:id:frazz:20210605114823p:plain

B

boldをenableにする。マーカーだけだと思ってたら単に太字にする機能もあるらしい。こっちのがシンプルだしこれありきのマーカーなんだろうね。マーカーはmanでは"bold"と記載してるので、そういうことだとおもう。

f:id:frazz:20210605115733p:plain

f

Filelds management。これびっくりしたんだけど、いつも見ている出力はもっと自分が見やすくしたいようにカスタムできるらしい。試しに説明の通りCOMMANDを一番上に持っていくと、こんな感じになった。

f:id:frazz:20210605120215p:plain f:id:frazz:20210605120226p:plain

全部有効化してみる

ああ〜

f:id:frazz:20210605120952p:plain

見切れるくらいなら最初から/proc見ればいいんじゃないかという気持ちになった。

ちなみに

こんな遊び方をしても一回デタッチすると元の出力に戻るので安心してほしい。でも、遊びじゃなくとも恒久的に出力を自分好みにするための編集ファイルがあるほうがなにかと便利なはずだ。探してみた。

haydenjames.io

When you save using W, notice top will display the path to the file it creates to save custom settings.

これだ。Wで保存する。

f:id:frazz:20210605124141p:plain

いえす!ファイルを確認する。

ekp@ekp-ThinkPad-X1-Carbon-3rd ~/.c/procps> head toprc
top's Config File (Linux processes with windows)
Id:i, Mode_altscr=0, Mode_irixps=1, Delay_time=2.0, Curwin=0
Def fieldscur=�������ķ��Ŧ���������������������������������������������_`abcdefghij
    winflags=193844, sortindx=18, maxtasks=0, graph_cpus=0, graph_mems=0
    summclr=1, msgsclr=1, headclr=3, taskclr=1
Job fieldscur=�����(���@<��)*+,-./012568>?ABCFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij
    winflags=193844, sortindx=0, maxtasks=0, graph_cpus=0, graph_mems=0
    summclr=6, msgsclr=6, headclr=7, taskclr=6
Mem fieldscur=���<�����MBN�D34��&'()*+,-./0125689FGHIJKLOPQRSTUVWXYZ[\]^_`abcdefghij
    winflags=193844, sortindx=21, maxtasks=0, graph_cpus=0, graph_mems=0

うーんなんか若干文字化けしてるけどこれは別問題。

意外と簡素にまとまっていて、filelds managementでいじれる設定がこれを見る限りだとわからない。アルファベットが順に続いてるのはおそらく押して設定変更ができるキーのことを指してるんじゃないかと思う。このファイルをいじってカスタムするよりかは、topの実行中に好き勝手にやってみていいところで保存してくださいってことだろう。ともあれこれでtopを再度使っても自分好みの設定が持ち越されるようになった。デフォルトに戻したかったらファイルを消すだけだ。

s

脱線した。デフォルトでは3秒間隔でもろもろ出力されるけど、このインターバルはsで変更できる。きりがいいのでデータ取るときは1秒とかにすることがある。

f:id:frazz:20210605125915p:plain

n

デフォルトでは動作するすべてのプロセスを表示するようになっているけど、上位だけ表示することもできる。出力が減ると何が割りを食っているのか確認しやすい上に、ファイルに出力するときのデータサイズが軽くなるといったメリットがある。15から10にするときはこんな感じ。デフォルトは0、すなわち無制限である。

f:id:frazz:20210605130827p:plain

V

プロセスをツリー状に表示する。apacheとか使うとこの恩恵が多少わかるかもしれない。なんでVかと言われれば木っぽいからである(覚えられればいい)

f:id:frazz:20210605133940p:plain

m

メモリ使用率をバーで表示する。ここをどうするかは、ちゃんと使用量のデータを数値で取りたいか、その場で直感的に理解したいかで決めればよいと思う。普段使いならこっちのほうがかっこいいよね。

f:id:frazz:20210605131151p:plain

まあかっこよさだけならhtop使えって話ではあるんだけど。

最後に

こういう「出力が見えてから特定のコマンドを打ち込む操作」を「インタラクティブコマンド=対話コマンド」というらしい。manを見つけたので整形して再アップしてみた。テキスト探すの面倒じゃないみなさんはman読んでくれれば十分なんで、これが意味のある仕事かといわれればnoですけど、個人的に編集してて楽しかったので、型は今後につながるんじゃないかなあ、くらいに思ってます。

github.com

今更わかばちゃんと学ぶgit

わかんないもんはわかんないんですよねの精神で入門し直すgit.

わかばちゃんと学ぶ Git使い方入門

わかばちゃんと学ぶ Git使い方入門

動機

  • カーネル触れる人になりたい(難しくて一枚岩で精緻で芸術的なところがすき)
  • しかし知ったかぶりしたり背伸びしたりする癖があることもなんとなくわかってきた
  • 勉強のコツや精神的余裕が生まれてきたこのタイミングで改めて謙虚になるべきだと思った
    • わからないものはわからないと正直に表明するのはコミュニケーションの初手ではきっと大事(自戒をこめて...)
  • 尊敬するみんなが当たり前のようにわかってるのにわかってないのはけっこうしんどい
  • わからないとけっこうクリティカルに仕事に支障が出る
  • 萌えキャラを受容するこころを最近手に入れた

git

これはおさらいです.

  • バージョン管理システムです
  • 変更毎のバックアップをまとまった操作でできます
  • いつでも好きな時点に戻すことができます
  • 各メンバの修正を合体出来ます

なぜgitがあったほうがいいのか

  • 手動でファイル名を日付にしてバックアップ取るのがしんどいため(作成も参照も)
  • みんなでどこをどう編集したのかがその場でわかったりまとめたりできるととてもうれしい
  • コマンドを覚えるといつのバージョンにも同じ手順で戻れる
  • なぜ過去にこの人はその編集をしたのか?が残せると開発では便利(なるほど)
  • コーディングを通したコミュニケーションの場所が提供される(そういえばずっとこれに憧れているんだった)

ホスティングサービス

GithubやBitbucketがある

The world’s leading software development platform · GitHub

Bitbucket | The Git solution for professional teams

そもそもホスティングサービスってふわっとしかわかってないけど...

f:id:frazz:20200829234446p:plain

https://wa3.i-3-i.info/word1335.html

サーバレンタルサービスですね.(うっそだろお前)

Bitbucket is more than just Git code management. Bitbucket gives teams one place to plan projects, collaborate on code, test, and deploy.

まあこの意味も後々わかるでしょう.まとめです.

  • githubやbitbucketは,gitで管理しているファイルのバックアップ先として使える場所
  • ただのファイル置き場ではなく,コミュニケーションの場である.

昔後輩に入門したのにそれさえついていけなかったのを思い出してふと....やはり自分以上のスピードで歯抜けで学習するのはつらいですね.余裕ができてほんとうによかった

sourcetreeのインストールとbitbucketのアカウント作成

sourcetreeはgitをGUIで使えるようにしたもの(としか本には書いてないのでそれ以上の理解はいったんおいておく)

手元のPCがwindowsなので本の通りインストール

Sourcetree | Free Git GUI for Mac and Windows

f:id:frazz:20200830000614p:plain

この英語さえ心理的障壁があったあの頃.

bitbucketは無料で非公開リポジトリをいくつでも作ることができるそう(5人までなら)

これ今はgithubでもできるんじゃなかったでしたっけ...?とりあえずアドバイスは世界を広げるために一度聞いておきます.

f:id:frazz:20200830000840p:plain

流れるようにアカウント登録

f:id:frazz:20200830002432p:plain

で,できました.なんてやさしいUIなんだ....

ああ,これで2000字ですね.まだ何もしてないけど....

所感

本はまだまだ前半.ここまで1時間くらいです.英語のサイトがつらいとか,勉強の進め方ってこれであってるんだろうかとか,久々に気力が戻ってみるといろんなもやもやが大体取り払えたのを感じます.一緒に手を動かそうよみたいなやつ,これまでなかなか挫折ばかりでうまくいった試しがなかったのですが(ゆえにただの読み物を大量に読んで点の知識ばかり身につけて紛らわしていた)なんだかそろそろそれも終わるんじゃないかなという気がしています.気のせいじゃないといいですね....

manの素晴らしさに気づいた話

これを書くことによって,この情報を必要としてる人がいい影響を受けてすぐ変化するかというとそれは違う気もしますが,メモです.

UNIXコマンドを学ぶならmanをちゃんと読んだほうがいいよ,という話です.

なんで

なぜ改まってこんなことを言うのかというと,「読みやすい入門webサイトを差し置いて,なぜ初心者にとっては読みにくいmanを読むことにメリットがあるのか」という話が今回の本来の主旨だからです.

その理由は,「間違いがないから」です.

なんだそんだけかと思うかもしれませんが,読みやすいwebサイトから情報を仕入れて学びを進めている人ほど,公式ドキュメントの「間違いのない情報」を読むことには価値があります.

ここで勘違いしないで頂きたいのは,入門サイトの情報が間違っているということを言いたいのではありません.情報としてはほぼ正しいと思っていただいていいですし,独学にケチをつけたいわけでも,書き手の方をどうこう言うつもりもありません.ただ,「文章の洗練度合いによって,読み手が掴むべき情報を間違った解釈,あるいは間違った順番で解釈してしまう危険性がランダムに発生する」のです.これは有り余るインターネット上の情報から自分にとって見やすいものだけを見ているとどうしても陥りやすい現象です.

例えば

こちらの説明を見てみます.

touchはファイルのタイムスタンプを変更するコマンドだ。

また、存在しないファイル名を指定することで、内容の入っていないファイルを新規作成する機能も持っている。

タイムスタンプには3種類の日時がある。

日時はファイルの内容を書き換えた日時がmtimeと呼ばれる更新日時がある。

更新日時にプラスして、ファイルのアクセス権設定などを変更した日時ctimeがある。

最後にatimeという、所有者がファイルを読み取り以外の操作をした場合に変更となる日時がある。

touchコマンドは、mtimeとctimeを書き換える。

この情報は全て正しいのです.では,この文章に対して脳内で相槌を打ってみたらどうでしょうか.

touchはファイルのタイムスタンプを変更するコマンドだ。

ほう.

タイムスタンプには3種類の日時がある。

ほう.

日時はファイルの内容を書き換えた日時がmtimeと呼ばれる更新日時がある。

ほう.

更新日時にプラスして、ファイルのアクセス権設定などを変更した日時ctimeがある。

ほう.

最後にatimeという、所有者がファイルを読み取り以外の操作をした場合に変更となる日時がある。

ほう.

touchコマンドは、mtimeとctimeを書き換える。

ほう.

お判りでしょうか,読み手が思考を途中から放棄していることが....すごくわかりやすく情報が端的に抜き出されており,なんもわからん状態の読み手にとってこの上ないほどありがたい文章になっています.ゆえにトラップなのです.この伝え方になるともう学習者にとっては暗記ゲーと同じで,学習効率はその学習者の短期記憶のスペックと気合に依存するのです.暗記ゲーで習得しても,使わなければいずれ忘却してしまい,学習の積み上げ効果は薄くなります.これが積もり積もって挫折になる経験を自分自身が何度も経験しています.まあ...勉強の仕方を理解する為にはその経験も必要だったんですが,いかんせん無駄が多すぎました....

じゃあどうすんの...

これを踏まえて.man touch(1)を上から順に眺めてみます.

f:id:frazz:20200609000452p:plain

touch - ファイルのタイムスタンプを変更する

ん???これしか書かれてないの…?まあこれが一番上に来るってことは一番大事な挙動はこれなんだろうな(タイムスタンプってなんだ).

touch [OPTION]..[FILE]...

ん???まあコマンドを最初に書いて,次にオプションを書いて(オプションってなんだ),ファイルを書くのか(ファイルって自分であるやつを指定する感じだよな).この書式ってのは他のコマンドでもだいたい共通な気がする.

各FILEのアクセス日時と更新日時を現在時刻に更新します.

ん???あ,この日時って一番上で言ってたタイムスタンプのことっぽいな.しかもなんか2個あるな.それぞれの日時に更新する方法とそれを確認する方法がほしいから,少なくとも手を動かして確かめるために4通りくらい実行パターンあるなたぶん.

引数FILEが存在しない場合...(中略)...からファイルが作成されます.

ん???あ,ファイルがないってことは時刻情報もなにもそもそも情報を付与する対象がないから,1から作るってことなのか.


お判りでしょうか,わからないなりに読み手の思考が連鎖していることが.これがmanおよびあらゆる公式ドキュメントの強さです.上から読めば一番大切な本質情報から順に理解でき,わからないことはそのあとから解決できるように文章構成がされているのです.これは良いドキュメントですね!!!ぼくはこれを真の学習と呼ぶのだと腹落ちして深く感動しました.

え?しませんか??

公式DOCを読もう

最初はね,ぼくも皆さんが築き上げた読みやすい記事をひたすら読んでいたのです.しかし学習は積みあがらず,なぜか実力は伸び悩んでいました.

Terraform

インフラストラクチャをコードとして使用して、クラウド、インフラストラクチャ、またはサービスをプロビジョニングおよび管理する

こんなトップページの売り文句もなんだかぱっとわからなくて, すごく苛立ちを感じていたのですが,今となってはこの文章が最も大事な本質情報であるとわかります.この大切さに気付けると一歩進めますよ.というお話でした.

カーソル指定した所を翻訳してくれるchrome拡張

久しぶりに書き物する気力が湧いてきました.私事ですが晴れて修士論文を書き上げ,無事大学院を卒業することができました.夢だったインフラエンジニアにもなれました.色々思う所がありピークの頃ほど良い記事はまだ書けそうにないのですが,できるだけいいものを皆様の目に届けたいという気持ちは変わらずありますので,ほんとに拙いですが少しずつ更新していきます.ゆっくりですがいっぱしの技術者になれるよう努めますので,何卒よろしくお願い致します.

本題

日本人のスタックオーバーフローの入門: How to use Stack Overflow for Japanese People - Qiita

英語で調べ物するときにgoogle翻訳のタブを一つ常に開いてるのしんどいなあ,と思っていたらこんなのがありました.

chrome.google.com

カーソルを合わせるとその場所を翻訳してくれるchrome拡張です.

使い方の具体例は引用元のqiitaを見るとわかりやすいかもしれません.拡張なのでブラウザの右上からいつでも翻訳機能が呼び出せるというだけで便利なのですが,選択した箇所をその場で翻訳する機能を使うとさらに便利です.レンチのマークから設定画面に移り,"auto translate text in clipboard"にチェックを入れてください.

f:id:frazz:20200511223826p:plain
ああ~便利なんじゃ~

メリットは翻訳用のタブを別で開く手間が省けること(これが一番だと思います),google翻訳の機能を引用しているので翻訳の質がある程度高いこと,指定した箇所をピンポイントで翻訳できること(そのページをまるまる翻訳されると翻訳ミスによる解釈違いのリスクが上がる為),だと思います.

デメリットは,英語で検索ワードを入れたいなと思ったときに「あれ,この単語は英語でどうやって言うんだっけ...」というケースでは使えないことですね.まー英文をその場で翻訳したいというニーズに沿ってるので当たり前なんですが,英語を翻訳したいっていう欲求が2種類あることに初めて気付いたもんで....それと,chromeで開いたPDFファイルの翻訳には対応していません.あくまでも,汲み上げることができるのはブラウザから直に見えているテキストのみです.

えーと,それと,このbokura jishoはfirefoxには対応していません.しかしfirefoxでもgoogle翻訳拡張機能は使えますので,そちらをお使いいただければよいかと思います.若干直感的な操作はできなくなりますが,先に挙げたデメリットはなくなります.google翻訳のタブが浮かんで出てきますので(画像は割愛させて頂きますけど).

そんだけ

英語が読めるようになる努力も大事だけど,こういうのも頼って時間節約していきたいね~

Thunderbirdの受信メールのフォントを統一する

受信メールのフォントをオプションから統一することができます。

やりかた

  1. メニュー→オプション→オプションを選択
  2. 表示→詳細設定を選択
  3. 「フォントと文字エンコーディング」で、メールを受信した際のフォントに対してこちらでフォントを変更できます。

f:id:frazz:20190605200606p:plain

f:id:frazz:20190605200637p:plain

f:id:frazz:20190605200753p:plain

今回は全てメイリオに統一してみました。

案外こういうところに落ち着きを感じられるだけでも気持ちが良くなるものです。