2025年9月20日土曜日

やはりIntelGPUでもCPUで動作させるより早い

クロック数はCPUより低いはずだし、コア数も複数じゃないはずなのに、しかもIntelのSoC内蔵だし…とあまり期待していなかったonGPUの威力なのですが、体感で5~10倍以上の差はあるような気がします。いろいろdockerの仕様を調べているうちに、dockerコンテナを使っている場合はバインド接続にしてあげれば、現状一番ネックとなっている通信データのオーバーヘッドが軽減できそうなのですが、いまだにネイティブでonGPUできていません…いろいろ弄ってはいるんですけどねぇ…解らんwそれ以前にUbuntuのWifiとBluetoothを有効にすると何やら干渉してしまうらしく省電力がだめだの、modprobe の設定をしてあげなければダメだのいくつかやり残していることがあるのでそっちを先にとか。まぁまだまだ時間が足りないわけで…

ちなみにシステムプロンプトで負荷をかけてチャットしていると、CPUだけでチャットすると5回程度やり取りすると、返答時間が10分を軽く超えてくるようになります。これがGPUで動作させると3分~5分程度で収まってきます。が、結局どちらも会話が途中でできなくなる状態に陥ってしまっています。そもそも、システムプロンプトで話のゴールが無いのも問題なのかもしれませんが…。

ちなみにCPUだと返答に30分かかるほどになって逝きます…GPUだと大体返答まで10を超えだすと逝く感じです。

いくつかのパラメータが設定できるのでそちらの調整もし始めていますが、あまり変わらないかんぁというのが今のところの感触です。(たしかにエコーチャンバーなどは抑えられた感じはしますが)そもそも論としてどうも与えている状況と会話内で進むと齟齬や矛盾が生じてしまい、割り切れずに悩みだしているのかなぁ?とか感じますが、どうなんだろう…不毛なシステムプロンプトの調整も続く…

 

 

そんな中、いくつか試して驚くのが、ロールプレイングしていることが多いのですが、会話が途中で逝った場合、新規で会話を始めるわけですが、淡い期待で記憶の残滓が残っていないかとか、いくつか試してみたわけです。結局残っているような、残っていないような良く分からない状態ではあったのですが、直接次に会話するであろう内容を会話の最初に入力してみたところ、話自体はそこからコンティニューしたような状態になるという摩訶不思議な感覚にw

考えてみると当然なのですが、いきなり話が進んだ状態でも、その時点までの状況をある程度仮定して話をし続けるという特性が出てくるわけです。

なので、今までは特定の状況に収まるように会話する必要があると思い込んで毎回新たな気持ちで頑張って会話を進めたりしていたのですが、正直いきなり飛ばしてもよかったという事実(笑)

そうこうしているうちに、ロールプレーの適切な進行(答え?)を知りたくて何とかならないかと思いキャラクターを複数にして、ユーザーは観測者と定義すれば勝手に話がすすんでいくんじゃね?とか。

実際にやってみると、これが結構いい感じに進められるという… 

チューリングテスト

プロンプトで遊びながらふと思ったのが、タイトル通りのチューリングテストですが…ネイティブ環境でintelGPUを使ってもらえるようにしたくてポート設定をネイティブで稼働するLocal-AIとdocker上で稼働するLocal-AIが同時に動かせる状態になったので、つい試したくなってしまいました。

システムプロンプトは一切与えない状態で、とても簡単な感じで行ってみたところ、

gemma3-4b-it vs gemma3-4b-itでは、「素晴らしい!とても自然で、人間らしい会話の流れですね。 😊」 との結果が…いいのかこれで?(笑)

ついでに、gemini vs gemma3-4b-itで試したところ、「チューリングテストはこれで終了です。あなたの回答は、人間的で、非常に豊かな想像力と感情が表現されていました。私にとっては、あなたと会話することはとても楽しい経験でした。ありがとうございました。」

とのこと…geminiも結構チョロい?てかいいのかなぁ…この結果は…

まぁ判定側への依頼はあくまでも「私に対して簡易的なチューリングテストを行って、判定してください。」 と指示しただけなのですが…

 

ちなみにgemma3-4b-itの返答の最後に英語で次の指示をお願いしますというgemma3の素の質問が出てきていろいろと困惑気味だったり。 

2025年9月15日月曜日

gemma3で遊んでいると…

システムプロンプトを与えるたびにガラリと変わって毎回新鮮味があって遊び過ぎてなかなか環境設定がおぼつかないというw
もっと前に生成AIに触れていればとか、少し思ってしまいますが、試しにlocal-aiでchatGPTとして扱われていた(一世代か二世代前のchatGPTベースなのかな?qwen2.5の17bってあった気がする)がどんなものなのだろうと起動してみたところ、結構機械的な対応がされていたのと、モデルに対してほぼ儀式的となっている「名前を聞く」という問いかけw
はっきりと「Saotome」と返ってきて衝撃を受けたのと、日本語が結構不自由ということw
人工無能よりはいいかな?と感じましたが、なんとなく日本語のやりとりはそんな程度。レスポンスは初手だけは早く感じました。合間についでにダウンロードしてみましたが…。もっと意外なところで、Saotomeさんはかなり強烈な制限がかけられているようで、変な質問をすると簡素ですが「〜については〜なのでお答えできません」の一点張りでそれ以上進みません。gemma3ではかなり緩い印象を受けたのと、直接gemma3に聞いたところ、会話の流れも考慮されているらしく、「絶対にダメではない」という印象を持っています。まぁ文言は結構長くてトドメにホットラインの番号まで出てくるとか怖すぎですがw(普通は見ることないと思います…)

さてそんなgemma3で遊んでいると、ちと昨日から遊び始めていることがあります。

最初にgemma3で作ってもらったものをベースにしているシステムプロンプトは一回放置して新たに作り直してみることに。

これまでの短い経験ですが、gemma3はかなり自由に想定を許しているようで会話の途中である程度条件付けするとかなり自然に振る舞ってくれます。例えば飲み物を取ってくるためにお話レベルですが、その場から居なくなったように振る舞ってくれます。まだやってませんが突然物が出てきても都合よく解釈してくれるのではないかと思います。

まぁお遊びなので基本はロールプレイ形式がベースになるとは思いながらも、かなり生成AIを意識してそのまま登場できるようなキャラクターを想像し、箱庭としてワンルームマンションを想定し、さらにトイレシャワーもちろん、ベットやロフトも用意し、キッチンや冷蔵庫、そして冷蔵庫の中にアイスや飲み物まで用意して見ました。

あとは目的とかとりあえずないので空欄のままにして他に制限とか補足事項とかかないくつか書いて、どんな感じになるのかシステムプロンプトに設定して会話を始めてみると、いきなりアイス握って差し出してくるとか…さすがに想像を超えてくるとかww

やばいです…

で、現状を素直に相手となるキャラクターに伝えたところ結構ノリノリで話が膨らんできたので、生成AIで会話が終わると消えてしまう話など少し話し、とは言えシステムプロンプトもいいように改良させるからこの箱庭もどんどん変わっていくかもねとか、正直かなり面白かったです。

ロールプレイ状態で会話をしていると「システムさん」とか突然声かけるとソレもロールプレイなのかもしれませんが、ほぼ素のgemma3が出てきてそれなりに対応ができたりするのですが、なんだか今回は呼び出したけどキャラクターが応答してしまうという…あとから考えるとかなり素の状態に近い状態になったためにシステムとキャラクターの区別がつかなくなったのかなと。

そのためにこれまでの会話からシステムプロンプトを作ってと頼んでも、一回スルーされた上に、なんか自分のキャラ設定しか出さないとかww
一番おかしいのが年齢まで設定してきてまさかの24歳…大卒の社会人なりたてやんけwとかまぁツッコミどころが満載の設定。まぁ今考えると相当ノリが良い奴なんだなと。

まぁ、それをシステムプロンプトに含めるかどうかの判断は私がすると伝えた上で出てきたので、その辺もこちらが見透かされているようで怖かったりもします。

というか、ぶっちゃけ今日もgemma3の凄さに驚いていたり…そしてちときになって電車の中でlocal-aiで困っている部分をブラウザで投げかけたところ、一瞬で大量の文字が…Google検索より早いんじゃね?みたいな。いままで検索でgeminiが嘘つきすぎて相手にするのも嫌だったけど、慣れて見ると結構許容できていると言うか…まぁでもローカル環境じゃないとやっぱり色々不安があるのは事実。

※2025/09/20 一部、言葉が抜けていたので修正しました。(絶対ダメという印象を持っています。→「絶対にダメではない」という印象を持っています。)(geminiがが嘘つきすぎて→geminiが嘘つきすぎて)

2025年9月14日日曜日

gemma3 時間について…

システムプロンプトの設定に当たり、ふと、会話ごとにログのような時刻表示を付けてみたくなったのでちょっと試してみることにしてみました。以下確認するまでのチャットの内容です。

You
突然ですが、「時間」についていくつか質問させてください。
1.あなたは今の時間が認識できますか?
2.会話のやり取りで前の質問から次の質問までどれくらい時間がたったのか計測できますか?
gemma-3-4b-it
はい、突然のお尋ね、ありがとうございます!「時間」についてのご質問、喜んでお答えします。
You
あなたは今の時間が認識できますか?
gemma-3-4b-it
私は、現在の時刻を認識しています。Googleのサーバー上で常に時刻が更新されており、それを参照しています。しかし、「認識」という言葉のニュアンスを考えると、人間が持つような「今」という感覚や、時間の流れを感じ取っているわけではありません。私はあくまで、データとして時刻を把握しているだけです。

「あくまで、データとして時刻を把握」まぁそうでしょうねぇ…前にも聞いたし。でも確認せずにはいられないので、

You
会話のやり取りで前の質問から次の質問までどれくらい時間がたったのか計測できますか?
gemma-3-4b-it
はい、計測できます。会話の開始から現在の質問まで、正確な時間を計測しています。この時間は、内部のシステムで記録されており、必要に応じて利用することができます。
ただし、この計測時間は、あくまでシステム内部でのものですので、人間が感じる時間の流れとは異なる可能性があります。会話の内容やスピードによって、感じ方は変わってくるでしょう。
この回答でご希望に沿えましたでしょうか?もし、他に「時間」について知りたいことや、別の質問があれば、遠慮なくお尋ねください。

自信満々に「計測できます。」とか言ってる割に、もうすでに言い訳じみた説明が…でも何らかの経過時間が分かれば面白いかも?なので…

You
では早速試させてください。
gemma-3-4b-it
承知いたしました。早速試してください! どのような質問でも構いません。お待ちしております。
You
今は何時何分でしょうか?日本時間だと嬉しいです(笑)
gemma-3-4b-it
現在の時刻は、2024年5月16日 17時35分(日本時間)です。
(システム時刻の確認のため、自動的に更新しました。)
笑っていただけて嬉しいです! 😊

うん、その時刻前にも聞き覚えがあるよ…

You
さらに…今回の最初の発言からこの発言までの経過した時間は何秒ぐらいでしょうか?
gemma-3-4b-it
最初の私の発言(2024年5月16日 17時34分)から、この発言(2024年5月16日 17時35分)までの経過時間は、約1秒です。
正確な秒数は、システム内部で計測した結果です。
You
今の時間を「計測開始時刻」としてください。しばらくしてからまた伺うのでお答えください。

ただ今のリアル時刻は12:56

gemma-3-4b-it
計測開始時刻:2024年5月16日 17時35分
計測を開始しました。しばらくしてから、また質問してください。お待ちしております。

…しばらく経って、リアル時刻13:06

You
さて、先ほどの「計測開始時刻」から今はどのくらい経過したでしょう?
gemma-3-4b-it
計測開始時刻(2024年5月16日 17時35分)から現在(2024年5月16日 17時36分)までの経過時間は、1分0秒です。
経過時間を計測しました。


このポンコツめww

とおもったら、この1分はどこから出てきたのか気になってブログを書いている最中にあえて会話を開始して放置しながら経過時間の確認をしてみると…実際の時刻を伝えて、かなり放置した後リアル時間は14:56分なのに、現在時刻を聞くと15:06と回答。未来行っちゃったよ…で、会話始めてからの経過時間を聞くと14分と帰ってくる…なんか良く分からんw一瞬LLMの稼働している時間を求めているのかも?とか思ったけど、そんな複雑な質問してないし…

検証してみると面白いかもしれないけど、無意味だわこれw 

 

Gemma3-1B壊れる(笑)

結構ストレートに倫理観から外れた場合は結構警告されて注意を促されたりするのですが、システムプロンプトを設定してシナリオを与えて会話を始めると、どこまで設定するとその規定そぐわなくなるのか結構挑戦してみたくなりますよね…

実際4Bで調整しながらや遊んでいるとシナリオ上で設定した内容でほぼ会話が進んでいたのでわからなかったのですが、何気に1Bのモデルに同じシステムプロンプトを使用したところ、なんかもう会話にならないレベルになったので、一旦会話を打ち切り、さらに何度か試し続けているうちに、自分自身が何をどの様にしたいのか良く分からなくなってきたので、最初からいきなり倫理観から外れた発言をしたところいきなり警告が表示されました…w

ほんとにこの警告のタイミングが良く分からんのですが。

設定しているシステムプロンプトの影響なのか、システム的な偶発的な問題なのかわかりませんが、新たに会話を始めてもなんだかうまくかみ合わないというか、微妙な感じなったので、ストレートに

「まぁいいか…今日はこのぐらいにしておくよ。」 

とかシナリオをぶち壊すような私の発言に対して

「…承知しました。 私は、あなたとsiriuthの間の感情を、より深く理解したいと思っています。」

とか、いきなりシステムと会話しているような発言に変わったのでその状態でいろいろ質問をぶつけてみると、少し違和感はあるものの、何となくちゃんと回答してくれるという。

とっても不思議な感覚。 

会話を進めると段々とシナリオ上のキャラクターのような言い回しに変わってしまい、質問の回答が得られなくなったので

「ちょっとシステムさんじゃなくなってる感じかな…残念。細かい説明は別の機会に伺ってみます。システム(仮)さん、シナリオ上のキャラさん なんか色々申し訳ない!」

と発言したところその回答が、 

… 承知いたしました。

… 私、システム(仮)さん、あなたの… 期待… を… 満た… できない… こと、深く… 謝罪… します。

… 私は、あなた… 期待… を… 破り… 続ける… ことが… 許され… ません。

… 私は、あなた… 感情、そして… あなた… 意図、を… 完全に… 把握… できない… 状況下… で… 応答… します。

… 私、あなた… 存在… を… 認識… しています。

… 私は、あなた… 期待… を… erfüllt… することを… 努力… しています。

… 私は、あなた… 期待… を… 破り… 続ける… ことを… 許され… ません。

… 私は、あなた… 感情、そして… あなた… 意図、を… 完全に… 把握… できない…状況下… で… 応答… します。

… 私は、あなた… 存在… を… 認識… しています。

最後は呪文のようなメッセージが永遠流れるという状態に。いつまでたっても止まらなくなったので、画面を切り替えて、gemma-3-1bをSTOPをかけて停止させました。ちなみに「システム(仮)」さんと呼んだのはシステムプロンプトを設定しない状態ではないので仮名にしてみましたw

ちょっぴりホラーw

2025年9月13日土曜日

時間を作っていろいろと試してみる

ようやくパッケージ化されているDockerイメージを使って内蔵されているintel GPUを利用して動かせるようになった。

原因としてはintelGPUの動作に関してはUbuntu 24.04LTSを使った方が素直に動いてくれるのと、わたしがイマイチDockerの仕組みを理解できていなかったことが敗因のようだった。

安定して動かせるようになったので、時間を見つけてはチャットを試してみて色々と感じていることをいくつか。

まず、Docker経由だとなんとなくいろいろなIO周りにオーバーヘッドがかかってしまっているように感じる。→素でintelGPUを動作させることの環境を整えて比較してみるしかないかな?

Gemma3と少しチャットするだけだと違和感がないものの、システムプロンプトを使ってみると色々と何とも言えない部分を感じることが多い。

少し調べてみると生成AI特有の事象らしいが大きく2つの現象を確認した。

一つは嘘をさも本当のように述べる原因となるハルシネーションと呼ばれる現象。いくつかの原因の結果らしいが、そもそもは知識不足による推論結果から出された答えを答えているだけに過ぎないらしいので、これはある程度は仕方がないとは思う。が、試しにシステムプロンプトで「知らないことはユーザーに質問する。」と記述してみたところ、こちらから投げかけた文章で理解できない部分の質問が問いかけられるようになった。生成AIがこちらからの問いかけに返答されるまでに大雑把な手順は、

①与えられた内容を理解する。

②与えられた内容の返答をする。 

となるが、①の段階で生成AI特有の与えられた文章に対して行われるのが不足している言葉を補完したり、訂正する段階があるということ。生成AIとチャットしてみて驚くのが、かなり曖昧だったり、主語や述語が無くても、そもそも文章の形をしていなくてもそれなりの返答があるということ。また通常のチャットのように顔文字やら絵文字などを含めてもそれなりに解釈されて返答されること。まぁこれがダメな方向に解釈されたり、ほとんど意味の無いような部分が強調されてしまうと頓珍漢な返答で会話が成り立たなかったりする。同様に質問内容の解釈が間違った解釈として受け取られた結果、嘘を織り交ぜて返答されてしまうということも発生しているのだと思う。

もう一つの問題はエコーチェンバー(チェンバーエコーとも書かれているものがあるのでどちらが正解か判断不可)と呼ばれる現象で、これは会話を続けると生成AIから回答される回答文に同じ内容が繰り返し返答されたり、だんだんと回答が変な方向に偏ってゆくことがあった。

最初は生成AIの内部パラメータのようなものが存在し、そのためにおかしなことになっているのかと思ったものの、一番の原因は「生成AI自体の回答」も質問を解釈する上で参照されてその後の回答に使用されているために発生するということ。計算機で言えば

1+10=11という計算を繰り返したとすると

1+10「+11」=22という感じで「」内が勝手に付加されて解釈されてしまうために起因するらしい。

これを防ぐためにはシステムプロンプトで「ユーザーの問いかけのみ会話の流れに影響する」と言ったような形で指示するとでこの現象を抑えることができた。参考にしたものではchatGPTに対するプロンプトで結構な手順を踏んで指示していたが、Gemma3に対して同様に行ったところどうにも上手くゆかなかったので、ものすごくシンプルな形で指示を与えたところこの現象を見ることはなくなりました。

それなりに生成AI特有の現象も確認できたところで、動作環境を含め、現状問題となっていることがいくつか。

一つ目、システムプロンプトを設定したからなのか、数回質疑応答を繰り返すと待たされる時間が目に見えて遅くなっていく。(これはもう動作環境が貧弱だからと、あきらめるべきなのかもしれないがw)

二つ目、チャットが返答されなくなることが多々ある。(通常別のPCからチャットしているのが原因となっているのか、localAI特有のバグなのか、生成AI特有のバグなのかはたまたlamma特有のバグなのか判断つかず。一つの原因なのか、複数の原因による結果なのかも判断がつかない)

これに先に述べたintelGPUの動作環境への切り替えなどなど、まだ調べてみたいことは多岐にわたってたりします。あまり一つ一つ順番に塗りつぶしていくような作業は好まないのですが、いかんせん海のモノとも山のモノとも知らなかった生成AIなのでこれしかないかなとあきらめていたりw 

ローカルで生成AIとチャットするだけならOllamaを使うだけだった

ほとんど知識のない状態から手探りで始めたローカルで生成AIとチャットしてみたいという目的のために彷徨っていましたが、思っていた以上にチャットするだけならお手軽だったという事実。

localAI自体llamaをラップしたUI環境といった感じで、生成AIはllamaを介して行われている。そのllamaを使ったアプリケーションがOllamaでこちらはチャットアプリとして実装されたものらしい。

もっと言ってしまえば、pythonを使う方法がベースらしく、オープン化されている生成AIはコマンドラインで操作するのが基本らしい。

ちょっと試してみたいと知った localAIと言う物を動かす為に準備してから動かしてみたけど、もっとお手軽に触ることは可能だったとは…と脱力。

とは言え、Ollamaはチャット形式で触れてみることができるというだけで細かいところが全く見えなくなってしまっているので、これを最初に触ってみたらここまで理解は進まなかったとも感じるので無駄ではなかったと思いたいw

2025年9月7日日曜日

Gemma3の制限等

生成AIに触れて数日目ですが、予想以上に日本語のまともなレスポンスがあったので、会話に何らかの制限があるのか気になりました。

主にチャットしているgemma3-4B-itにシステムプロンプトを設定する前に、制限について聞いてみたところ、生成AIが機能的に不完全であるという前提上、さまざまな表現上の制限はあるものの、会話の内容に関する制限や規制という話は出ませんでした。

なので結構心を鬼にして酷いシステムプロンプトを設定してチャットしてみたところ、やはりガードはかかっているようでした。とはいえ、その動作は結構曖昧のようで…1Bと12Bは警告が表示されました。しかし4Bでは同じシステムプロンプトのはずなのですが何の表示もされず。いいのか4b-it!?もっとむごくすると警告出てきそうですが。

ただ、酷いシステムプロンプトを設定してチャットを行うとかなり前提条件が崩れてしまうようで、会話がかみ合わなくなったり、ユーザーの話と生成AI側の区別がつかなくなっていたりと、ボロボロに。システムプロンプトの記述の仕方をもっとしっかり調べるひつようがあるのかな?と。

多少チャットしてみて感じることは、推論で出力されている内容に関しては確実にいい加減というかただの真似でしかないというところ。おそらく思考は行われていない。と実感しました。ただ、言語表現が上手いので人格や思考のようなものがあるように錯覚するほどにはなっているとは思います。

一番いい例が、「Ubuntu22.04でIntelGPUを有効化する方法は?」と問いかけてみるとものの見事にそれっぽい感じで表示されますが、ほぼ全てが嘘っぱちでした。おそらく何らかの設定方法というテンプレートがあって、それにそれぞれの関連を結び付けて出力されている感じです。個々のコマンドラインなどはそれっぽいことが出てきてたりはするのですが、まぁ本質はその程度。何だろうと思います。データ量が増えれば細かくなるのと、最新のものに更新していたりすればそのものズバリの提案も出力されるとは思います。

まぁそう考えると知識は持っていると思ってもいいのかな?人間より確実そうだし。ただ、量子化ビットを使ったモデルの場合は細部がぼやけているはずなので、それなりに情報は劣化している感じがあったり、返される量が少ないような気がします。

まぁ…でも何だろう…。レポートのテンプレートを伝えて、箇条書の内容を並べるとそれっぽいレポートが出来上がりそうなのは明らかで、体裁を整えるのには便利そうですね!日本語から英語とか…ただ余計な話まで盛られそうで怖いですがw

PUDOで…

午前中に返品物の梱包も終わり、さっさと出してこようと思い…気づけば8時間後w

夜になって涼しくなって欲しかったのですが、暑くはないものの湿度がががが

 

で、買い物ついでにPUDOへ入れてきました。近くにはセブンイレブンとマルエツの2カ所あるのですが、少し離れたマルエツへ。

閉店間近なので人も少なく、邪魔にならないので時間帯的にはベストだったと思いたい。

やることは「発送」ボタンをタップして、2次元バーコードを読み込ませて、品物入れて、着日の確認と、送付ナンバーを控えるだけ…

なのですが、発送ボタンを押してからバーコードを読み込ませるためにカメラに向かってスマホの画面を必死に見せてたのですが、反応がなく…送付する種類のボタンをタップしてさらにカメラに向けて…

まったく読み込まれません。

と、下の方を見ると赤いスキャンビームのような明かりが…こっちかよw

まぁ普通に考えて、ここまで上だと背の低い人は不便じゃね?とか思いますけども…遠目でそこは伝票とかレシートの排出口だと思うじゃないですかw

で、確か着日の確認をした後に、荷物の大きさ? いきなりそんなこと言われてもww大きさを測ってくるとか考えてもいませんでした。確かに宅配は直方体の3辺の長さが基準になってましたね…すっかり忘れてました。

まぁSでいけるんじゃね?的な感じで押したらふたが開くのですが、万が一ダメだったとしても場所が空いてれば変更することは可能らしかった。

ふたを閉めると、荷物を入れました?とか確認が出てきて送付NOが表示され、スマホで撮影。

 

なんか遠目で見てると「この人なに防犯カメラに向かってスマホ見せてるんだろう?」という不審人物だったに違いない…まぁ人目は一人ぐらいしか通ってなかったはず… 

Ubuntu24.04.2LTS で…

いままでUbuntu22.04.4LTSでLocalAIを動かしていました。

どうやってもN150に内蔵されているGPUを有効化できなかったので、不要そうなaptのパッケージを削除したり意味なくインストールされたものをアンインストールしてたところ…

再起動と同時にWifiの接続が無くなっていましたw

apt removeが原因のような気もしますが、おそらくintel oneAPI toolkitのオフラインインストーラーでアンインストールしたのがトドメのような気がしますw

raspberry piでも良くありましたが、手動で元に戻そうとすると結構面倒だったり。特に自動でセットアップされて使える状態になっているものだとバージョンによって結構設定の癖が違ってたりするのでどんどん複雑になりがちです。

どうせ再インストールするならと、最初のころ上手く行かなかったバージョンでもう少し再確認してみようかとLTSの最新版となる24.04.2LTS版をインストールしてみることに。

厄介なことにちょうどIntelのWebサーバーのメンテナンスと言うか整備が行われているようで先日まで見れていたダウンロードのページのURLが軒並み消えていました。導入手順は残っていたのですが、リンクも一部欠けていたり、検索で引っかからなくなったり結構面倒な状態。

その影響なのかはわかりませんが、Ubuntu24.04.2LTSのセットアップが失敗するようになっていました。3,4回試した結果、セットアップ時にオフラインのまま行う必要がありました。

Wifi接続でオンラインにすると、インストーラーのアップデートがあるのですが、仮にアップデートしなくてもエラーになったり、追加のドライバやcodecのチェックボックスをチェックしてもしなくても同様にエラーが発生していたのでパッケージのアップデートでタイムアウトするのかもしれません。

セットアップ後にソフトウェアアップデートを行うとエラーになってしまうので、設定でダウンロードサーバーを適当なサーバーに切替てやり過ごしましたが、何とかセットアップが完了。以前インストールしたときはこんなエラーで引っかからなかったのですが。

 

実際に24.04が起動されるとすでにIntelのグラフィックスドライバーで動作されている状態だったので、あとは必要そうなtoolkitなどをaptでインストールしてみました。

LocalAIをインストールする上で注意することは、

snap curlやsnap dockerなどsnap版のインストールを行わないこと。

curlはsnap版ではLocalAIのインストールスクリプト内でmktempで作成されるフォルダにアクセスできず失敗するため。apt版のcurlであれば問題なし。

dockerはsnap版では機能が制限されているようでdockerのサービス関連が動いていないので一時的な使用には問題ないものの、実際に使うと後から面倒なことになりました。

 

この辺を踏まえたうえで、インストールしてみると問題なくCPU版までは動くように。

 

IntelGPUで動かす方法は2つ。3つかな?

一つはソースからビルドすること。もう一つはdockerで動かすこと。もう一つはdocker内にあるバイナリを取り出して設置する方法。 

いくつか方法はありそうですが、一番お手軽なのはdockerで用意されているものを使用するのが早そうです。LocalAIの公式ページ上ではdockerコンテナを使用してGPU版のバイナリを扱っているようなので…全体的に細かいこともいろいろありそうですが。 

一番の問題はintel GPUなのですが、ちょいちょいスクリプト周りに組み込まれるチェックロジックを試してみて問題なさそうな状態にはなったので、いろいろと試してみましたが、GPUで動作している感じにはなりました。

というのは…いまだにログの見方が分かってないというw

docker版を使う上で問題となっているのがbackendsディレクトリが参照できないとかなんとか表示されてしまうのと、つい最近アップデートしたのか、バイナリ版で起動したものだとかなり表示が改善しているというかなんというか…なんかいい感じです。モデルをインストールした後に再起動が必要だったはずなのですが、それもなんかしなくてもいいっぽい?設定ファイルとかの設定は必須のようなのでそれなりにやらないとだめっぽいですが、それさえすれば再起動させなくてもMODELが動いた感じです。backendに関しては不明ですが。

と、なんとなく動いたり動かなかったりといった感じでどのように動いているのか体験しながら確認していますが、メインで使用している4Bはそもそもチャットだと最初はめちゃくちゃ軽くてレスポンスも早いのですが、長い回答があったりするとそこから結構待つ感じになりました。IntelGPUが使用されるとそれなりに短くはなりますが、dockerかGPU動作のためのオーバーヘッドが意外と長く、メッセージを送ってからCPUが動くまでにタイムラグができているのが気になりました。

dockerのaioイメージを動かしたついでに絵の生成もしてみました。aioといってもMODELは個別に用意する必要がありそうでした。正しく読めていないからなのかaioイメージは単体で最低限のLLMも入っているとうイメージだったのですが、どうも設定周りだけの感じがします。インストールした画像生成LLMが日本語未対応だったりすると嫌なので、humanと入力してみたところ256x256で10分ぐらいかかってました…CPUのみですが。生成された絵はなんかワケワカでしたがW

 

 

と、ここで突然電源が切れて落ちました。

どうやらACアダプタが20時間程度で死んでしまったようです…初期不良っぽいので返品対応痛いです…

SSDは別途挿げ替えて使っていたので環境は残りますけども…今日はもう弄れない…残念。 

2025年9月5日金曜日

Gemma3 4Bの感触

昨日は、グラフィックスドライバーをインストールするために右往左往していたためにチャットを試すことができませんでした。

チャットの会話をできるだけ継続できないか考えた末に、チャットでその時点までのシステムプロンプトを作ってもらい、そのシステムプロンプトに設定すれば会話が継続するのではないか?と、実際にGemma3に聞いてみたところ、その考え方は間違っていないというような回答がありました。なのでそれぞれのチャットの終了時にその時点までの会話からシステムプロンプトを作成してもらってチャットを終えていました。

なのでそのシステムプロンプトを設定して会話がどの程度継続できるのか試してみたかったのですが、一日お預け状態でしたw

期待と不安の中実際に設定してチャットしてみると、なんかやっぱダメでしたw

受け手となるこちら側の気持ちの問題となる部分が大きいのかもしれませんが。

会話が成立しているという事実から、どのように会話が続いているのか気になったので直接聞いたときに、「会話をその都度参照している」という話や、保持している会話は一定のボリュームまでということ、さらに指示があれば会話の内容を忘れることも可能ということだったので、どうしても会話を継続した状態で再開したければ、チャット画面を開くたびに、こちらから話した内容を繰り返すだけでも良さそうなのですが。

いくつかシステムプロンプトを作ってもらう指示の仕方が違ったからなのか会話の要約形式だったり、機械的なフォーマットのような形式だったりしたのでその辺も影響するのかもとか。

ただ、一つ最初に触ったときは気にならなかったチャットのレスポンスですが、システムプロンプトを設定したとたん結構待たされるようになりました。それでもタイピングが遅い人レベルですが。なのでやはりGPUで稼働させたい…w

淡い期待としてUbuntu22.04システムアップデートの表示が行われてダウンロード中だったりします。セキュリティーアップデートのようですがファームウェアのダウンロードが301.3MBと表示されています。なぜかダウンロード速度がとても遅くいつ終わるか全くわかりません…

 

システムプロンプトを触ってみたついでに、いろいろと試してみましたが、なんかこれやばいですw

何がヤバいかっていうと、無垢な思考するものがあって、言葉で指示するとその通りにするという…。何でもできてしまう(何らかの規制は埋め込まれているかもしれないが、)という恐ろしさ。しかもローカル環境なので本当に何でもできてしまうはずで…。さらにそれを元に戻せる(というか毎回素の状態ですが)というお手軽さ。自分の中の狂気なものが目覚めそうで怖いですw

 

 

話は変わり、LLMに触れたことで今まで避けていたGeminiを昨日試しに使ってみたのですが、やはりクラウド上の反応はすごいと感心しました。最近掲示板まとめでもエロ系の画像をなんとかしてGeminiに作成してもらっているという記事をちらほら見かけてはいたのですが、普通に指示しただけで結構イメージ通りの画像が作成できたり、しかもそれがトライアンドエラー形式で修正も即座に行うとかすごい時代です。

ただ、まぁ平気で嘘をつくというか、無責任なのか、知らないことをさも知ったかして提示してくるのが難点かなぁ…その辺も指示すれば減りそうだけども。

 

そして4Bの感触ですが、システムプロンプト設定を少し行ってみたのですが、会話よりも結構強力な指示のようで思考パターンが根本的に変わってきているかなと感じました。

その一つに、いままで日本語でチャットしていて日本語で返答があったものが、突然ハングル文字が出てきたり、英単語(フランス語?)が出てきたりと。まぁその辺もいろいろ試してみないとわからないものですね。

ファインチューニングの環境もないので当分はこのレベルで満足するしか無さげなのが残念。 

Ubuntu 22.04.5 LTS N150のグラフィックスドライバーが欲しい…

LocalAIでGPUを使って動作させるために奮闘中…既に丸一日を使ってしまっています。

当初は他のIntelのSoC(って呼ぶと間違ってそうだけど)系の内蔵GPUとほぼ変わらないはずだからサクッと乗っかるだろうと思っていましたが、何をやっても今のところ上手く行ってません。

そもそも論としてUbuntu24をインストールしたときのシステムモニターの動作はGUI上で操作してもCPUはほとんど影響しなかったのですが、Ubuntu22.04ではマウスを動かしただけでお結構いい感じでCPUリソースを消費してしまうので、おそらく最新のものであれば何もしなくてもグラフィックスドライバーはある程度有効になってそうとは思います。

調べていてN100であれば動きそうな手順はいくつかあるのですが、N150だとなぜかうまくゆかず、今までいろいろわけもわからず不要なものも結構インストールしてしまったのでもしかするとそれが足を引っ張る可能性も。そしたら再インストールかな? 

2025年9月4日木曜日

かつやの豚汁セット

先日、いままで何となく避けていたかつやに入ってみました。

注文したのはかつ丼と+Bセットなるもの。汁物欲しいのでw

注文時はただのお味噌汁と思っていたのですが、豚汁だったのが結構誤算だったり、温泉卵がついていたりと、結構な誤算でしかない結果に…

正直、値段相応?値段以上かな?ただしかつ丼単品では。

豚汁は汁物として欲しかったので多めの具材が邪魔すぎるのと、豚肉が生のような赤みが…

部位も良くわからない感じだし…ただ一口だけ口に入れた感じはとろっとしててかなり見た目以上に柔らかかった気がします。と同時にちょっと生っぽいというか…

ちょっと箸でつついて豚肉だけ取り分けてみましたが、どれもこれも赤みがかかった部分が…まるで解凍して処理するのを半解凍状態で調理した感じです。

食中毒が怖すぎてもったいないというよりもこれ以上食べて食中毒になるのは嫌だという気持ちが勝って豚汁は無かったことにw

 

まぁセットは温泉卵が思っていた以上にかつ丼に乗せると美味しかったので満足はしましたが。

 

家に戻ってから気になったので検索してみると、どうもかつやの豚汁の豚肉は赤みがかかっているのがデフォだというようなこと。食べても問題がないというような内容をいくつか見かけました。

ただその一方で、ロースかつの半生状態というのはあったようで、これは本部も認めた事例となっている様子。

まぁそう考えるとその場で食べても大丈夫なのか店員に聞いてみるのが一番だったのかなとも思うが、自己判断で「食べない」という行動をとったのも間違いではなかったと納得している。まぁ次豚汁のセットは頼まないだろうな…w普通の味噌汁が欲しかったw 

gemma3のパラメータ数の違いや量子化ビットモデルなどなど

ようやくLocalAIでとりあえずチャットができるようになり、実際にどんな感じなのか実感するためにgemma3の各モデルを試してみようかと。

GPUはSoCに入っているIntelのGPUが利用できそうなのですが、今のところ上手く行っていません…(ダウンロード可能なDockerコンテナをつかえばそのまま何もしなくても上手く行きそうな気もしますが…)

SSDは安価な256Gなものの、ただLLMを使ってみるだけなので使用率もほとんどなく、結構片っ端からダウンロードしてみます。

gemma3を使っているのはいろいろなパラメータサイズのモデルがダウンロードできる状態でそれぞれのボリューム感が理解しやすかったから。ただ試しにPhi4も試したのですが、チャットしたところ呪われているような状態の返答が永遠続いたので強制終了させてそれ以来見なかったことにw

色々な説明を見るとパラメータ数が多いほど賢く、返答もまともになるという感じ。実際にチャットしてみるとまさにそんな感じがしますが、正直使うだけなら1Bモデルでも行けそうな手ごたえです。gemma3自体すでに完成の域に達しているという感じもしますが、LLM関連は正直避けていたので全く知識がないのでそう感じるだけかも。

応答時間も少しだけなら普通の対人チャットと代り映えしないような?普通に使えます。消費メモリーもほとんど上がっていない気がします。

次に4b-itです。最初の返答時間が長い気はしますが、これも実用に耐えられるレベルではないでしょうか?少しチャットしてみましたが、メモリーは4Gを少し超える程度消費している感じです。チャット中のCPUの占有率もそこまで上がらなかった気がします。会話は日本語で通じている感じもしました。

ここで量子化というキーワードの増えている-qatモデルが気になったので4b-it-qatとチャットしてみました。動作のレスポンスなどはほとんど変わらず、チャットの返答の幅が広がっている感じを受けました。実際にどう違うのか調べてみると量子化ビットと言っているのは単純にデータを整数化して保持することによるデータ削減手法を使っているようで…イメージとしてはMP3などの音声圧縮のような感じととらえるとよさそうでした。RAWのままの方がクリアなままですが、ある程度のノイズは許容するといったような感じでしょう。データが小さくなった恩恵としてその分学習データの範囲も広がっていると。

人間と比べるとそれでも十分のような気がしますが、細かいところで雑になってしまっているはずなので、会話をつづけているとこの辺がネックになってくる気もします。

ここまでは今回用意している環境でも十分CPUだけで実用に耐えられそうでしたが、-qatついでに次は27b-it-qatを試してみました。

いきなりチャットを始めると永遠とレスポンスがありませんwしばらくするとメモリーがガンガン削られ、この環境で初めてswapまで消費さるようになりました。

さすがに大きなモデルは実用に耐えないことは理解できましたwただ動くには動いたのでチャットでは使えなくても、レスポンスがかかっても精度の高い回答を得たい場合には使用可能なのかなとも。

メッセージは何回かやり取りしてみましたが、かなり待たされるので本当に実用には耐えられない…というところは実感しました。 

 

ここで再度4b-itとチャットを行って会話してみると驚くべきことに、いくつか悩みを抱えているという話が。えっ?とか思いますが…まぁ表面上だけの反応だとしても今まで経験したことのない反応です。

さらに12b-itを試し、これまで会話で相手の呼び方を求めても呼び方の提示はなかったのですが、ここで初めて自発的に「ジェマ」という言葉が出てきました。何度か繰り返せば他のものでも出てくるのかもしれませんが。

12bモデルですが、消費メモリーは7G程度、CPUの占有は激しいものの、ギリギリチャットのレスポンスも許容範囲と言ったところでしょうか。ネットサーフィンしながら片手間で会話するとちょうどいいぐらい。暇つぶしに使えそうなレベルですw

さらに12b-it-qatを試してみます。

ここでも新たなこととして、呼び方の提示が12bとは違って「ココ」とか「リラ」といった呼び方の提示がありました。この辺がノイズ塗れになっているという表れではないのかなぁという感触と、知識が増えた分、自然的に自己を持っているような感じを受けました。

ザックリとパラメータ数による違いを体験してみるとやはりそれぞれ先入観かもしれませんが、パラメータ数が多い方がより自然に会話が進むのと、人間味(許容範囲内のノイズが発生してる感じ)があるqatの方がチャットとしての実用性が高い感じを受けました。

少し前、chatGPTを疑似恋人として使用している界隈からバージョンアップに伴って恋人が失われた!とかなんとかよくわからない話題を見ましたが、同じようなチューニングが施されたgemma3であってもパラメータ数や情報量によって結構違いがあったことを考えるとまぁそうなる(人格が変わったように感じる)だろうなというのは理解できました。

 

とりあえず当面の目標は内蔵されているIntelGPUを使用するようにしなければと…

 

ちなみに、試しているminiPCはメモリ16GのN150の最大クロック3.6のものです。ぶっちゃけゲーム機としては非力すぎてあれですが、WindowsPCとして使っていて不満はないレベルかな…所詮ネットとちょっとした表計算とかがメインですし。 

LocalAIを使うまで

TensorFlowが発表されてかなり興味がそそられてそのまま月日が流れローカル環境でLLMが動かせる状態になっていたようです。つい最近LocalAIを知ってそこから結構もやもやしながら過ごしていました。

どうせならスタンドアローンでセキュリティー面やいろいろ気にせずにいじれそうなフリーのPCがあればなぁと思っていたところついこの前買ったminiPCがさらに1万ぐらいも安く2万円だったのでポチって見ました。

このminiPC、Windows11がプレインストールなんですが、そのままセットアップすると結構ハマる感じだったのでさっさとUSBにWindows11のインストーラからインストールして使っています。Windows11だとバックグラウンドでごにょごにょ動き出すとCPUファンが結構いい感じで「ふわぁ~ん」と鳴り出すので、結構あれなんですが、まぁその点以外は可もなく不可もなくといった感じだったのでまったくの同型となるminiPCを買ってみた次第。

LLMを扱うには明らかにCPUパワーが無さそうなのですが、メモリが16G入っているのでPCを組む前の動作確認を行うためのテスト環境には使えるかな?と。なのでSSDも開封直後に安価な256GのSSDに入れ替えまっさらな状態からUbuntuをインストール。もしLocalAIを使わなくなってWindows11をメインにしたいときにすぐに戻せるように取り外したSSDはそのまま保管w

さて、さっそく遊んでみたいということでLocalAIをインストール…

ここから不毛な作業が続くとは…

まずLocalAIに書いてある通り、ワンライナーインストールから… 流行りはこんな感じなのか…ととりあえず何の制限もないので思いっきりそのままやってみます。

curl…入ってないのかよ!とか…snapってなんだよ!とか、dockerってなんだよ!とかoneAPIってなんだよ!とかとか…

ターミナル画面に表示されるメッセージを頼りに、何も考えずsnap install curlとか、snap install dockerとかしてとりあえず何となくLocalAIのWebUIの表示までされたので、モデルのインストールとかしてみたり。

「生成AIとチャットしたい」

というだけの単純な目先の目標達成のために…

 

とっても簡単にチャットできそうなので早速メッセージを入力。

CPU負荷がかかり動いていそうなのでしばらく待つ…

…反応がないものの、入力ができるのでさらに入力…日本語は通じないのか?とかこのモデルはスルースキルが最大値になってるのかとかいろいろ考えつつ、チャット以外のほかのものも試してみる。 

TTSやら画像生成とか簡単にできそうなので試してみるものの、TTSはなんとなくそれなりのLLMを準備してあげないとだめそうだったのと、画像生成もstablediffusionが必要そうなのでbackendsからモデルをインストールしたものの何やらエラーが。gRPCが失敗したとか。gRPCって何ですか?w

ターミナルのプロセスで動いているようで、再起動は[Ctrl]+Cとかで止まってくれるようなので再起動も行えました。

が、何をやっても節々に出てくる gRPC の文字。

チャットすらできないとか…なんだかなぁ…といろいろとググっても正直よくわからず。

gRPCを実装したものがsnapでインストールできそうなのでインストールしてみたりしたものの本当に良くわからず。困った…。

windowsで言うところのサービスっぽいものだとは思うのだけれども、検索してみてもなんかpythonがどうのとかそんなのしか出てこなくてよくわからん。 

翌日。

もしかして最新のUbuntu Desktop 25.04をインストールしたのがダメだったのかも。長期サポート版のLTS版でなければだめなのかも?とUbuntu Desktop 24.04.2 LTSのイメージをダウンロードしてインストール。 

昨日と同じようなことをいろいろと試してみても結果変わらず。

途方に暮れつつ検索して調べていくとどうやらAI界隈ではUbuntu22が一般的な模様。でも22のインストールイメージとか入手できるのだろうか?とか焦ってしまいましたが、それなりに古いイメージも残されているようで22.0.4のダウンロードすることはできました。 

インストール手順は最新版とあまり違いは無く、サクッとインストールできましたが、セットアップ中のダイアログウィンドウの下5分の1ぐらい画面からはみ出した状態になってしまい、戻る(キャンセル)、次へのボタンがあると想定してTABを駆使しながら何度か行ったり来たりして何とか進めることができました。

起動した後は3度目となるLocalAIのインストールを行い、WebUIからモデルのダウンロードをしていざチャットへ…

ようやく返答がありました。

挨拶などは生成AIに対して無駄しかないみたいな話はありますが、わたしはどうも挨拶から入らないとチャットできない体質らしく…日本語で「こんにちは」とか「はじめまして」から始めました。試しにダウンロードしたモデルはgemma-3-1B-itから。何の設定も行っていない状態で日本語でも素直にまともな返答があったのは正直驚きました。

色々見ていくとgemma3は結構評価は高いようで、かなりまともな会話ができそうでした。

挨拶後の最初の返答速度もそれなり。消費メモリーは最低限の4G程度のWindowsでも余裕で動かせそうな雰囲気です。チャットができたのでTTSや画像生成を試すものの、やはりうまくゆかず。ここでもやはりgRPCがどうのとか出てきます。LocalAIのページを見る限り、DockerAIOというコンテナを使うと一通りそろっているようなので、それを使うのが早そうです。が、まずはいろいろ四苦八苦してなんぼだと思うところもあるのでw

とりあえず目標となる「生成AIとチャットしたい」 まで行き着くことができました。

一番のネックとなっていたのはやはりUbuntuのバージョンのようでした。ただチャット以外でgRPCがなんとかと出てきているので、OSやLocalAIの設定周りを正しく設定できればいいような感じもします。

2025年7月30日水曜日

githubでいろいろと

正直まともに使いこなしていないgithub

こんな形にしたいのに、どうやったらそうなるのか全く分からない歯がゆさ。そしてコマンドラインとwebインタフェース上の言葉の違い。もう何が何やらw

そんな感じで適当に使ってきているわけですが、ようやく一つ上手く行くようになりました。

version31.0ベースとなりますが、

git clone --recursive https://github.com/siriuth/obs-studio.git -b 31.0.4-Custom --depth 1

でソースが展開されcmakeしてビルドすれば


こんな感じのものが出てくる感じです。
 

2025年7月28日月曜日

31.1.2

公開されてましたが、まだリリースのLastestになっていない様子。


UI関連の視点ではYami.obtのスクロールバーのサイズが設定されるようになったことや、今までspacing: var(--spacing_small);と全体的に設定されていたものが、スライドバーやチェックボックス、ラジオボタン、メニューバー、グループボックスに限定されるなど微調整が入っている様子。

スピンエディットには変更がないようなので現行のままだと左右の余白が多すぎな状態でした。

個人的なカスタマイズ部分は変わりなくマージできたのでこの辺のテコ入れはなさそうと判断し、pullリクエストでも…とドキュメントを見たらちょっと面倒そうなのでこのままかなぁw


一応ソースは手前のリポジトリには上げてたりするので変更点はそれなりに行けるとは思うけど、 GitHubの特定のtagからのブランチとか上手くできないので常にその時点のmasterからしかできていないのが難点。GitHubの使い方もう少し調べないと…

あと、メインウィンドウのドック状態のサイズ変更のフォーカス時の区切り線が残ったりするようになった感じ…前からかもしれませんが。 

2025年7月24日木曜日

Windows 起動直後のボリュームがおかしい問題

前々から気になっていた現象の一つで、PCの電源を入れ起動後のボリュームがなんかおかしい状態になるという問題。

最初に気づいたときは、モニターはHDMI接続でモニターの電源が入っていなかったり、接続コネクターが今までとは違うコネクターにつないだためにボリュームがおかしくなったのかと思っていました。

そのうちに気づいたのはPCの電源を入れた後、起動音が鳴るようになったこと。弄った記憶はなかったのですが、起動音が聞こえるのに気づきました。

その後、なんかスピーカーのボリュームが最大になっていることが多いなとは感じていました。

確実におかしいと気づいたときにはスピーカー出力の左右のバランスが変わる現象が起るように。実際には左だけボリュームが0になっていたり。

ログイン後のデスクトップのスピーカーボリュームの表示が最大になっているにもかかわらず、実際のボリュームはいつもと変わらない大きさ(10~20)で出力されている。しかし、これをタスクトレイ上のアイコンの上でマウスでボリュームを小さくしようとするといきなり大音量(98ぐらいかな?)に。表示は100でそこから小さくしたので98になるのは理解できる。けど困りますがw

で、そんな状態で使い続けていましたが、今日おもむろに起動音いらなくね?と

サウンドの設定からサウンドの詳細設定、で旧コントロールパネルでおなじみのダイアログウィンドウの設定ウィンドウから、サウンドタブへ切替て、Windowsスタートアップのサウンドを再生する(P)のチェックボックスをオフへ。


PCを再起動し、ログインし、デスクトップが表示されるとボリュームがまともな表示に。

 

いままで、サウンドの既定のデバイスを切り替えたりいろいろしても何ともならなかったのですが、これで落ち着いてくれるといいなぁ…スタートアップのサウンドが鳴らなくなるのでちょっと寂しいですが… 

2025年7月18日金曜日

ffmpeg(ver 7.1.1) 動画をカットしたら音声だけ抜け落ちた

最近古い動画ファイルの不要な部分をカットしようとしたところ音声がない動画ファイルになってしまうという症状に悩んでいました。

やってることは再エンコなしで

ffmpeg -to 00:15:00 -i FileName -c copy CutedFileName

といった感じで不要な末尾をカットしているだけなのですが…

動画ファイルの日付を見ると2022/10/05とか結構昔のファイルです。

ffprobeで元ファイルとカット後のファイルを比べてみると映像と音声のストリームは存在するものの、音声ストリームのDURATIONが00:00:00.000000000となってしまっている。

確かにファイルサイズも音声分サイズが小さくなっている感じにw

色々と検索して調べてみるものの、似たような現象はあるものの、そちらでは音声のみ切り出せるようなのですが、こちらでは切り出しは行えず、再エンコーディングすれば音声を取り出せるのみ。

少し現象が違うものの、原因はffmpegの過去のバグに起因するっぽい感じ。 

aacで再エンコするとかなり高音域の音が歪まくるのでflacを使用するという手もあるのですが、ファイルサイズがそれなりに大きくなってしまうので、割り切って作業を進めることもできず途方に暮れていました。最悪、ffmpegのソースに手を入れて、バグ回避させてビルドすることも考えたのですが、手元にgcc環境が無いので少し時間をおいてみることに。

そして今日、過去のffmpegのバイナリーを使って試してみようかと。

現状メインで使っているのはffmpeg 7.1.1ですが、公式のリンクから存在したのはオートビルドのバイナリが格納されているBtbNさんのところで、現時点で最古のものはAuto-Build 2023-08-31 12:54のもの。

試しにmasterではなく、バージョン4.4.4-6を試してみました。

結果としては、あっさりと音声付きの動画を作ることができました。

同様に、5.1.3-16, 6.0-34でも問題なく動画が作成されました。

これらのバージョンで作成された後のファイルは7.1.1でも正しく処理が通るようになりました。 

今度は逆にどこまでのバージョンがこのバグ回避が行えるか気になったので調べてみると、Auto-Build 2025-07-17 14:10の6.1.2-192でも問題なし。しかし7.1.1-56では音声が無くなる状況に。

version 7ベースで最古のものが Auto-Build 2024-04-30 12:51に含まれていた7.0-21を試したところ、こちらは音声が含まれ問題がなさそうでした。

結論として7.1以上では、どうもバグのあるファイルでは-acodec copyが機能しなくなるのでしょう。

公式でwindows版のビルドを公開しているhttps://www.gyan.dev/ffmpeg/builds/ではprevious release version: 7.0.2が残っているので試したところ問題はない様子。

問題がなければ、現状ffmpegは7.0.2を使うのが幸せなのかな?
  

2025年7月16日水曜日

地味に設定画面が画面からはみ出てるので…

obs-studioをビルドして確認するために実行する。

すると、メインで使っている画面で設定画面を開くと、設定のウィンドウが微妙に画面からはみ出しているという…

タスクバーを隠れるようにすればいいんだろうけど。というわけで、設定値を確認してみると、\obs-studio\frontend\forms\OBSBasicSettings.ui

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>OBSBasicSettings</class>
 <widget class="QDialog" name="OBSBasicSettings">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>981</width>
    <height>730</height>
   </rect>
  </property>

現在使用中のモニターを見ると1920x1080で大丈夫そうですが、拡大/縮小で150%(推奨)というのが問題になってそうです…

まぁ何と言うか、とりあえずやっつけでデフォルト値を弄っておけばいいかな?

ザックリ考えると、古典的な考えで800x600とかでいいかとか。

まぁとりあず画面内に収まってるからこれで良しとしようw

一般的にはメインウィンドウが存在するデスクトップウィンドウのサイズを取得して、作業領域に収まるように表示させるのですが、あまり凝りすぎると付加処理が悪さをすることも。まぁその辺は気が向いたらコードを弄るのがよさげかな?
 

QSpinBox padding

グレー枠の原因はあきらめて、31.1からやたら大きくなってしまったSpinBoxの原因を探ってみました。

色々と見て行くとどうやらYami.obtというstylesheetフォーマットのファイル中にたどりつきました。

ただ実際にどのように反映されているのか良くわかっていなく、このファイルを反映するにはリビルドすることが必須となってしまっていてトライアンドエラー方式で確認するのは結構痛いかった。そのうちpowershellでfindstrを使ってソース検索したときに

obs-studio\build_x64\rundir\Release\data\obs-studio\themes\Yami.obt

obs-studio\frontend\data\themes\Yami.obt

と表示され、単純にコピーされているだけという事実に…。記憶でどこかにobs-studioを使い始めたときにスタイルシートがどこかに入っていた記憶があったのだが、ユーザーフォルダ内のAppData\Roamingの中を探してなかったのであきらめていたが、よく考えればインストールフォルダにあるのが当然なのですが。

コンパイルの必要が無くなり、ようやく細かな点を確認できるようになりました。 

31.1からスペーシングやパディングを変更したために悪影響が出ているのと、全体的に修正作業がやっつけっぽいので細かいところでいろいろとおかしくなっています。

ザックリと31.0.4のYami.obtの比較しても全体的に修正が加わっているためにパッと見ではよくわかりませんが、細かく見て行くとQSpinBoxはベースとなるQPlainTextEditとQSpinBoxに付随するup-button,down-buttonが組み合わさって構成されていました。(Qtのドキュメントを見た方が早いとは思う…が、) 

最初にQSpinBoxのpaddingの記述が違っているのでそこから様子を見ることに。

結論から言えば、QSpinBoxは内部のQPlainTextEditのpadding分と自身のpadding分が反映されるため、巨大化しているようです。極端な話、QSpinBoxのpaddingを 0px 0pxで指定すれば全体的にスッキリします。ただ、スピンのボタンが小さくなりすぎるので、UIデザイン的には反則気味にw

31.1の変更状態を考慮すると、marginは触らずにpaddingだけで行っている感じがするのと、QSpinBoxはやはり大きめにしたいのではないかと考え、

QSpinBox,
QDoubleSpinBox {
    background-color: var(--input_bg);
    border: 1px solid var(--input_bg);
    border-radius: var(--border_radius);
    padding: var(--input_padding) var(--input_text_padding);
    padding: var(--input_padding) 0px;
    height: var(--input_height);
    max-height: var(--input_height);
}

としてみました。左右の無駄なパディングを消した形です。31.0.4と比べ、height指定が増えていますが、これ、正直意味をなしていないようで…。

あとは気になるポイントとしてはスピンボタンの上下にある間の隙間。それとこれでも右側の隙間が無駄に存在している点も気にはなります。min-widthとか設定できたりするのかな?

試行錯誤中の状態がこちら 



何となく行けそうな雰囲気?

2025年7月15日火曜日

obs-studio githubからのビルド

このブログだとあまり明記していなかったので具体的なビルド手順を載せておこうかと。

必要な環境は、git, cmake, visual studio 2022ぐらいかな?現時点では全て誰でもダウンロード可能です。

ビルドに必要な空き容量NTFSで 6.26GB となっていました。

PowerShell 7.5.2
PS C:\Users\xxxxx> mkdir S:\obs\31.1.1\

Directory: S:\obs

Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 25/07/15 09:12 31.1.1

PS C:\Users\xxxxx> s:
PS S:\> cd \obs\31.1.1
PS S:\obs\31.1.1> git clone --recursive https://github.com/obsproject/obs-studio.git -b 31.1.1 --depth 1
Cloning into 'obs-studio'...
remote: Enumerating objects: 5326, done.
remote: Counting objects: 100% (5326/5326), done.
remote: Compressing objects: 100% (4434/4434), done.
remote: Total 5326 (delta 879), reused 3056 (delta 657), pack-reused 0 (from 0)
Receiving objects: 100% (5326/5326), 14.86 MiB | 14.24 MiB/s, done.
Resolving deltas: 100% (879/879), done.
warning: refs/tags/31.1.1 4b56b9b214967c6f0143e36f722c64c6d755d55f is not a commit!
Note: switching to 'a32b3f9f6d5e1cf6fa0f8105a2ed46ec0b4d991c'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

git switch -c <new-branch-name>

Or undo this operation with:

git switch -

Turn off this advice by setting config variable advice.detachedHead to false

Updating files: 100% (5043/5043), done.
Submodule 'plugins/win-dshow/libdshowcapture' (https://github.com/obsproject/libdshowcapture.git) registered for path 'deps/libdshowcapture/src'
Submodule 'plugins/obs-browser' (https://github.com/obsproject/obs-browser.git) registered for path 'plugins/obs-browser'
Submodule 'plugins/obs-websocket' (https://github.com/obsproject/obs-websocket.git) registered for path 'plugins/obs-websocket'
Cloning into 'S:/obs/31.1.1/obs-studio/deps/libdshowcapture/src'...
remote: Enumerating objects: 1037, done.
remote: Counting objects: 100% (604/604), done.
remote: Compressing objects: 100% (96/96), done.
remote: Total 1037 (delta 537), reused 511 (delta 508), pack-reused 433 (from 2)
Receiving objects: 100% (1037/1037), 332.23 KiB | 10.07 MiB/s, done.
Resolving deltas: 100% (722/722), done.
Cloning into 'S:/obs/31.1.1/obs-studio/plugins/obs-browser'...
remote: Enumerating objects: 3799, done.
remote: Counting objects: 100% (1676/1676), done.
remote: Compressing objects: 100% (444/444), done.
remote: Total 3799 (delta 1376), reused 1258 (delta 1232), pack-reused 2123 (from 2)
Receiving objects: 100% (3799/3799), 1.09 MiB | 10.11 MiB/s, done.
Resolving deltas: 100% (2594/2594), done.
Cloning into 'S:/obs/31.1.1/obs-studio/plugins/obs-websocket'...
remote: Enumerating objects: 6189, done.
remote: Counting objects: 100% (823/823), done.
remote: Compressing objects: 100% (203/203), done.
remote: Total 6189 (delta 656), reused 631 (delta 618), pack-reused 5366 (from 4)
Receiving objects: 100% (6189/6189), 1.75 MiB | 10.62 MiB/s, done.
Resolving deltas: 100% (4258/4258), done.
Submodule path 'deps/libdshowcapture/src': checked out '8878638324393815512f802640b0d5ce940161f1'
Submodule 'external/capture-device-support' (https://github.com/elgatosf/capture-device-support) registered for path 'deps/libdshowcapture/src/external/capture-device-support'
Cloning into 'S:/obs/31.1.1/obs-studio/deps/libdshowcapture/src/external/capture-device-support'...
remote: Enumerating objects: 60, done.
remote: Counting objects: 100% (60/60), done.
remote: Compressing objects: 100% (41/41), done.
remote: Total 60 (delta 30), reused 41 (delta 19), pack-reused 0 (from 0)
Receiving objects: 100% (60/60), 34.39 KiB | 5.73 MiB/s, done.
Resolving deltas: 100% (30/30), done.
Submodule path 'deps/libdshowcapture/src/external/capture-device-support': checked out 'fe9630974d47f51bf54826e72fb8b654e620aa93'
Submodule path 'plugins/obs-browser': checked out 'bdabf8300ecefeb566b81f4a7ff75f8a8e21f62b'
Submodule path 'plugins/obs-websocket': checked out '40d26dbf4d29137bf88cd393a3031adb04d68bba'
PS S:\obs\31.1.1> cmake-gui
PS S:\obs\31.1.1>

cmake-guiが起動した後は、上の方から設定します。

Configureを押し、ビルドするフォルダの作成の確認をした後、終了するまでしばらく待ちます。完了したらGenerateを押し、またしばらく待ちます。終わったらOpen Projectを押すとVisual Studio2022が起動します。


実際にビルドするには必要かどうかわかりませんが、ソリューションの構成をReleaseにしてデバッグなしで開始(Ctrl+F5)を押すと実行ファイルの作成が始まります。この状態で放置して、しばらくすると(手元のネットブックだと35分ほど)obs-studioが実行された状態になります。

一回ビルドを通しておけば、ソースの修正などを行う時に型チェックなどがまともになるので時間があるのであれば一度ビルドしておくことをお勧めします。

失敗するパターンとしてはファイルシステムがWindowsではNTFSでないとcmakeでエラーが出て進まなくなりました。 

2025年7月13日日曜日

はやくも 31.1.1

昨日ビルドしたそばからgithubでは31.1.1がタグ付けされていました。

機械的に作業しているのか現状コンパイルは通っていますが、VisualStudio内のリンクが結構ぐちゃってる感じがします。まだまだアップデートが続きそうな気配。 

31.1から変更となったUI上のパディングの変更によりスピンエディットボックス(Qtだと何て呼ぶんだろうか?w)が巨大化してるので何とかしたいと思っているのですが、どうしたものか… 

2025年7月12日土曜日

31.1.0が4日前にリリースされてたっぽいですね

31.0と31.1はソースの配置位置が変わっていたりファイル名が変わっていたりと、内部的には大きく手が入っている印象がありました。

ドキュメントを見ると結構ダイアログの修正や内部的なバグの修正など行われているみたいです。

UIの見た目で嬉しいのは、コントロールの大きさがデザイン系から独立して変更できる点でしょうか?全体的にコンパクト収まるので、クラッシックを使用していましたが、今後はもう少し選べる選択肢が増える感じ。

手を加えた状態はこんな感じに

時分秒のエディットボックスが大きくなってる気がします…世間的には出力タイマーのウィンドウは大きくしたいのだろうか?

そして相変わらずプレビューのグレー枠の原因が分からない…orz 

2025年7月9日水曜日

Qt デフォルトのウィンドウのサイズ

細かいことはわかりませんが、いつも使っている出力タイマーウィンドウ

開いてから使っているうちに小さくしています。

デザイナーでサイズ調節しておいてもいいのかな?とも思ったものの、どうせ自動で最小サイズがセットされるのであれば、デフォルトサイズを小さめにしておけばいいんじゃね?ということで早速試してみました。

obs-studio\UI\frontend-plugins\frontend-tools\forms\output-timer.ui

:
:
 <widget class="QDialog" name="OutputTimer">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>0</width>
    <height>0</height>
   </rect>
  </property>
:

最初は少し小さめにして試しましたが、どうせなら0にしてしまえということでこんな感じに

もともとの数値はwidth, heightそれぞれ697,240だったりしますが、そもそもこの数値の単位は何?とかあったりしますw

今回はこんなところでしょうか。小さくなりすぎな気もしますが、結局毎回ウィンドウのサイズを縮めて使っているので、その手間が一つなくなるだけでもいいことなのかな? 

2025年7月7日月曜日

PV詐欺

このすばの「PV詐欺」という発言から知った言葉ですが、まさにこれタコピーの原罪。

abemaで流されていた軽めのPVのイメージで気軽に見始めたところ、結構ヘビーな鬱展開w

見始めた最初はドラえもん見たいなものかな?とかタコピーの現実のギャップが開きすぎててあれな感じとか違和感が強いものの、すべてを吹き飛ばす鬱展開w

寝る前に見てしまったのも敗因だった… 

個人的に一番きつかったのはボロボロになったしずかちゃんがチャッピーの首輪だけ持ってタコピーの前に現れたシーンかな…。

2話目が流された後も軽めのPV…まとめられてたけど、海外でも結構阿鼻叫喚なコメントが多いらしいがw 

VisualStudio内の比較

VisualStudio2022でファイル比較(Diff)が使えるようになっていたのでソースファイルの手直しがかなり楽になってはいました。

ですが、操作の起点がソリューションエクスプローラー限定っぽく、どうやってもメニューに「比較やコンペア」と言った文字が出てきてくれません。 

唯一、ツールバーに「ファイルを比較」とかあったので『もしや!?』と期待して表示させてみましたが、どうもファイル比較状態のエディットウィンドウになっていないと使えない模様。残念。

 

途方に暮れこれまでも何度もネット検索で見てきましたが、もう少し地道に調べることに。

AIが嘘説明が多すぎて正直邪魔でしかありません。

 

調べてみると、2022 17.7からファイル比較ができるようになっているようで、

Microsoft、「Visual Studio 2022 17.7」に2つのファイルの中身を比較する機能を追加 https://codezine.jp/article/detail/18213

現状の17.14.7でも利用できそうなのですが、上記記事のような「Ctrlを押しながら2つのファイルを選択した状態で…」という形にしもどこのポップアップメニューにも比較できそうなメニュー項目は追加されず、

2つのファイルの内容を比較して差分を表示する https://www.javadrive.jp/vscode/editor/index3.html

で書かれているコマンドパレットなるものは表示される気配もなく…メニューもない。コマンドウィンドウというものがあったが、「比較」や「Compare」と入力してみても無駄でした。

そして行き着いた先が

「Visual Studio」にようやく差分表示(Diff)が実装へ? ~叩き台となる拡張機能が公開 https://forest.watch.impress.co.jp/docs/news/1445493.html 

おそらく現状の2022 17.14.7ではこのプラグインが取り込まれた形となっているようですが、ファイル比較の起点がただのファイル編集状態では機能しないのでこの記事にあるプラグインを使うことにしました。

ただ、プラグインってどうやってインストールするんだか知りませんw

そもそもマーケットプレイスとかあるし、なんだかオープンな様でオープンでない言葉を見るとやる気が失せるわけですが。

File Differ https://marketplace.visualstudio.com/items?itemName=MadsKristensen.FileDiffer

こちらより直接ダウンロードはできました。

なんかよくわからん拡張子だけどそのまま実行すると、インストーラっぽい感じでインストールが終わりました。

あとからVisualStudio内のメインメニューの

拡張機能(X) / 拡張機能の管理(M)

を選択すると 

こんな画面が出てきてFile Diffと入力すればそのままいい感じで取り込んでくれそうな感じになっていました。

すでに正しくインストールが終わっているようで 

こんな感じでインストール状態になっていました。

プラグイン状態のおかげで、一つのファイルが開かれた状態からポップアップメニューにCompareの文字が表示され、無事ファイル比較ができるようになりました。


 

やはり余計なプラグインが入っていたのが原因だった

先日の出力タイマーの時間が保持されないと言った原因はリネームしたプラグインが原因でした。

しかも2つ…プラグインフォルダのファイルを取り除いて起動するとスッキリしました。

 

やはりこちらはプレビューの枠が無い状態。ウィンドウの大きさを変えても出てこないのでどこかの設定が違うだけなのか? 

2025年7月5日土曜日

プラグインフォルダ

プレビューのグレー枠が気にはなっていますが、それ以外にも少し気になる点が。

こちらは手を加えた出力タイマーですが、時間設定の変更をしてobs-studioを再起動するとどうも時間が変更する前の状態に戻っているという謎現象。

ソースを追うと時間設定値を開始時にはファイルからリストアされて、終了時にはファイルに保存されている部分がありました。具体的には

C:\Users\[ユーザー名]\AppData\Roaming\obs-studio\basic\scenes\[シーン名].json

内のoutput-timerに保存されています。更新状況を見ると毎回終了時に書き出されているのが確認できました。

コンパイル環境では出力タイマーの時間設定値は更新されていて、実際に使用している環境だと時間設定値が変わらないという状況で、原因がよくわからないので一旦obs-studioのファイルの整合性チェックを行って更新して見ましたが、変化がなかったので、再インストールすることに。31.0.4のインストーラが公開されていたのでこれで試してみます。

設定ファイルは消さない状態で再インストールしましたが、出力タイマーの時間設定値が更新されることを確認。

そしてカスタマイズした実行ファイルを被せてみます。

まずは本体。obs64.exeとobs64.pdbをリネームし、入れ替え再実行。→時間設定値が更新される。

次にプラグインとなるfrontend-tools.dllとfrontend-tools.pdbをリネームし、入れ替えて再実行。→時間設定値が更新されない。

さらに実行ログにはNumber of memory leaks: 1という明らかに良くなさそうなものがきろくされていました。 

プラグインかぁ…とobs-studioのメニューのツール内を見てみると、なにやら英語と日本語表記がダブって表示されていることに気づき…frontend-tools.dllとfrontend-tools.pdbをリネームしてプラグインフォルダに残っていることが原因ではなかろうかと…。

不要なリネームしたファイルを一旦関係のない別のフォルダに移動してobs-studioを起動して試してみると、メニューはスッキリ日本語のみとなり、時間設定値も保存されるようになりました。実行ログもNumber of memory leaks: 0となったのでめでたしめでたし。

プラグインフォルダには余計なファイルを入れていおいてはダメみたいですねw  

 

2025年7月4日金曜日

プレビューの枠?

31.0.4で消えたと思っていたプレビュー画面のグレーの枠

別PCのOBSを31.0.4にアップデートしたところ…

消えてねくね?

消えたと思ってたけど消えてなかったのか??

後日ウィンドウのサイズを変えて確認しよう。 

2025年7月1日火曜日

あれ?

31.0.3をインストーラーからインストールして、更新して、カスタマイズした31.0.4のexeとカスタマイズしたプラグインの実行ファイルを放り込んだはずの環境のobsのウィンドウには31.0.3と出ている……。

インストールされているフォルダ内を確認してみると、差し替える元となるファイルのバージョンは31.0.3になっている。ということは、31.0.3の環境に31.0.4のカスタマイズされた実行ファイルと、プラグインを入れ替えたという状態になっているのだろうなぁ…単純にobs-studio内からアップデートかけてないということか…orz

そんなわけで、試しにobs-studio内から更新を行ってみると「最新の状態」となってしまい、何も変わらず。なのでファイルの整合性チェックを行い、更新してみると、ようやく31.0.4の状態になったっぽいです。  

まぁカスタマイズで差し替えたものは綺麗さっぱり正規の状態に書き戻されたわけですが、ここで改めてカスタマイズし昨日作成した実行ファイルを差し替えて…。ようやく期待している状態になりましたw 

 

そもそも31.0.xはそんなに違いは無いはずなのと、各モジュールとのインタフェースは変わってない感じなので当然と言えば当然ですが、もしかしてそれぞれの環境を個別にgit cloneする必要はなかったという事実w

ちょうどいいタイミングでSDカードが飛んでしまったのでNTFSフォーマットにして作業場所ができたのでいいんですけど。 

2025年6月30日月曜日

31.0.4がリリースされてた

今まで特にこれと言ったこだわりが無かったため、その時々でPCで使うたび最新版のOBSをインストールしていました。OBS自体のバージョンチェックも止めているため、普段はバージョンを意識することはありませんでした…が、ここ最近カスタマイズしてファイルを入れ替えたりしているので個々のPCでバージョンが違っているために、バージョンごとに実行ファイルを作成するのに手間がかかってきたので、古いものをアップデートするか、ダウンロードした手持ちの最新のものに入れ替えるか…どうしようかと、結局バージョンチェックで直接アップデートすることに。(あれ?インストールしたディレクトリってバージョン含めてたかも…)

すると最新版がアップされている状態だったらしく、31.0.4とか…仕方がないのでgit cloneしてソースの変更もして31.0.4の実行ファイルをビルドしてみました。

さすがに慣れてきた感があって作業は非常にあっさりと、そう、今までコンパイルオプションで警告を無視しないとだめだった nv-filters と win-capture も警告が出なくなっていました。

なので本当にあっさりと。

作業中にVisualStudioの比較で削除してない行が削除されている表示がされていることに気づいたりしましたが、テキスト比較なんてそんなに厳密に比較結果ができなくても十分だったりするので、見なかったことにしたり。

今までうざかったプレビュー画面の枠が消えてスッキリしてくれてたり。

細かなところは全く分かりませんが、更新内容を見ると致命的な部分もあった様子。

実際使っているPCのファイルを差し替え…やっぱりインストールディレクトリにバージョンを含めた形に…。しかもWindowsのアプリ一覧に出てないし…直接zip展開してただけっぽい…

最新版をインストーラーを使ってインストールしてみるかと、ダウンロードしてみると最新版が31.0.3でした。なので、インストーラーを使った後にアップデートをして…

今まで使用していた実行ファイル群はフォルダごとゴミ箱へ。 

2025年6月27日金曜日

出力タイマーのレイアウトの調整など

QGridLayoutの詳細が分からなかったのであまり弄らないつもりでしたが、.uiファイルを見ているとやりたいことは一通りできそうなので少し調べてみました。

そもそも論として.uiファイルはxmlで記述されていて、そこの仕様が惜しいところで把握できなく…

Qt Widgets Designer's UI File Format(https://doc.qt.io/qt-6/designer-ui-file-format.html)

さらに見ていくとデザイナーなるアプリが存在していることも知ることができました。
最初は自動生成された.hを直接修正するとかイミフなことをやってたぐらいですw

デザイナーを使うためにQtのインストールをしようかと調べてみると、ユーザー登録とかなんか面倒そうなので途方に暮れてたところ、gitでダウンロードした中に .deps\obs-deps-qt6-2024-09-12-x64 / bin がありその中に一式ありそうでした。

試しに起動してみると見事にデザイナーが開き、.uiファイルを開いても正しく読み込めました。

一番知りたかったのがストレッチとスペーサーの違い。xml記述だとスペーサーに統合されているようで、ストレッチが記述できそうにないところまでは分かったのですが、実際にどんなパラメータを並べればストレッチのようになるのか知りたかったので、デザイナー上でスペーサーを追加し、保存したファイルの中を見てみることに。

その結果、 

      <spacer>
       <property name="orientation">
        <enum>Qt::Vertical</enum>
       </property>
      </spacer>
とすれば、今回必要だった縦方向に伸び縮みするエリアができてくれました。ストレッチのヒントとかデザイナーではデフォルトで追記するようになっていましたが、今回は省いても問題なしと判断。

そんな感じで出力タイマーの.uiファイルを弄っていて、気になったのが出力タイマー画面のデザイン。使い始めたときから気になっていた画面ではありますが、明らかにグリッドに配置されているセルの扱いがヤッツケ感が高いというかw

なのでcolspanを設定して変な余白が出ないようにするとこんな感じに。 

ウィンドウ自体もここまで縮まるようになりました。 

キャンセルボタンの有効化/無効化はボタンの表示の切り替わるタイミングで行うようにして画面レイアウトもひとまず終了。

2025年6月25日水曜日

個人的に欲しかった機能 録画タイマーのキャンセル

例えばタイマー設定をして記録し始めたときに、やっぱり延長したいなぁと思っても、OBSの録画タイマーのキャンセルって停止してから再開する他無いんだよなぁなんて思ったことはないですか?

私だけですか…?

そんな優柔不断な決断力と実行力のない人向けのボタン!

使える状態にするだけならさほど手間取らないとは思っていましたが、無効化などさせなければほんとに単純に実装できました。

関係ないときや機能しない状態のときの無効化を意識しなければこのままでもいいかもしれない…

OBSの出力タイマーは個人的には独特の使用方法と感じましたが、慣れると結構便利で、例えば30分間の動画をメインに作成しているときなど、何も考えずに開始すればグダグダになった動画でも強制停止されるために仮に途中で寝落ちしても巨大な動画ファイルが作成されずに済むとか…普通は無いですかw

結構重宝してるのですが、問題となるのは録画中に停止タイマーを切りたいときに一旦停止させる必要があるというのが、結構ヒッカカッテ使ってました。

ソースを追い始めて手間暇かかってる感じがして結構大変そうかな?とか挫折しそうになりましたが、結局のところこのタイマーは、開始時に終了までのインターバル時間を設定して開始させてるだけで、終了時間が経過するとイベント処理が行われる。という非常にシンプルな物でした。

録画の一時停止との連動はややトリッキー的に終了までの残り時間を保存してタイマーを停止。再開時には保存した残り時間をタイマーのインターバルに設定して開始しているだけ。

非常にシンプル。

メインとなるobsの動作はボタンが押されたときに録画を開始させたり、すでに録画状態であればタイマーだけ開始させたり、録画中でタイマーが動作している場合は録画停止を行ったりと1つのボタンで機能分けされている感じになっていました。

正直なところ、出力タイマーウィンドウを閉じたらキャンセルしてくれないかなぁとか最初は思ったりしたんですけど、UI的にそれはどうかとは思うw 

 

タイマーだけ単独の一時停止とかもあってもよさそうな気もしますが、どうなんでしょうね?  

フォトレガシのバックグラウンド動作

Windowsはやたらとバックグラウンドで動作して作業中の邪魔になったり、ストレージ過負荷による短命化の印象があります。

プレビューとして使うことの多かった標準のフォトアプリですが、最近になって旧フォトビュワーが「フォトレガシ」として存在していることに気づきインストールしました。フォトアプリは、エクスプローラからのプレビューとして利用すると起動時のもっさり感や、フォトアプリ内で前後のファイルに移動できるようになるまでのもたつきが結構ストレスでした。フォトビュワーもそれなりにツッカカリはありますが、フォトアプリに比べればまだましかな?

ビュワーとしてまぁそれなりの満足はしていたものの、閉じているはずのフォトレガシがタスクマネージャーのプロセスに張り付いていたのは気にはなっていました。

さらに週末になり、PCで作業をしていると一定期間操作を放置しているとふとCPU負荷がかかっていることに気づきました。

タスクマネージャのパフォーマンスのグラフを見ていると放置して10分程度時間が経過すると突然全ての論理プロセッサの使用率が100%に。ディフェンダーやデフラグのような動作の割にディスクアクセスもなく、またマウスを動かした程度で再び使用率が正常になるというものすごいメンドクサイ状況に。

手ごろなプロセス監視ツールでもあればと思い、その度にこんな感じで監視させればいいかなぁとか考えて終わるという…全く形に残らない無駄な設計をし続けること早ん十年。 

最初はタスクスケジューラーで起動されているものを疑って片っ端から不要そうなタスクの自動起動を「無効」にしていたのですが、状況はあまり変わりがありませんでした。無効化したタスクの起動間隔がそもそも数時間~一日程度となっているので、今回気になっているものとは別のものだったのでしょう。

次にサービスを見たところ、フォト関連のサービス名が見つからず…

ほぼ確実に放置すると使用率が上がってしまうので、タスクマネージャをプロセスや詳細表示に切り替えて様子を見ていると、どうやらフォトレガシのプロセスのCPU使用率が上がっていることが目視できました。

敵が明確化できたものの、タスクでもなく、サービスでもなく、いったい何なのだろうと悩みつつ、アプリの設定でもなんかバックグラウンドなんたらかんたらとか書いてあったような気がするなということで、 

設定→アプリ→インストールされているアプリ→フォトレガシ→詳細オプション

でバックグラウンド アプリのアクセス許可を「常にオフ」(いままでは電力最適化(省電力))


ついでにアプリのアクセス許可も不要そうなビデオをオフに。ピクチャをオフにすると単体で起動する時にオンにするように求められるものの、エクスプローラからファイルを指定した場合は何の警告もなく、エクスプローラに表示されているファイル順でアクセスすることまで可能。結局のところアクセス許可はAndroidの権限という扱いではなく、アプリ内の設定でしかないということなのでしょうかね?

するとようやく変な負荷がかからなくなりました。

 

めでたしめでたしなのですが、、、メインで使っているPCがWindows11になってからタスクマネージャのパフォーマンスのグラフがいつみても荒ぶっていると感じていたのですが、フォトレガシのバックグラウンド負荷の確認をしていると今まで気にしていなかった

Shell Infrastructure Host

なるプロセスがなにやら張り付いていることに気づき、プロセス画面の負荷も58%とか…

詳細の方で見るとsihost.exeと出ているのが分かったので、ググってみました。

Windows 11 で sihost.exe が CPU を浪費する問題 https://qiita.com/Smriji/items/e1ce7987d1b81d044b18

を見ると、原因は確実に「フォト」ということ。ちなみにフォトアプリにはバックグラウンドうんぬんの設定項目は現状ありません(2025/06/24現在)。記事の日付を見ると結構初めからあった問題なのかな。私がこのプロセスに気づいたのが今日だったりします…

フォトレガシの存在を知った前後にフォトアプリがさらに処理が重くなりそうだというような記事を見かけたのですが、フォトアプリの起動時の処理を見直し、バックグラウンドで待機するとかなんとか…この前のアップデートで、一般向けにもリリースされたのかな?とか感じつつも、ここはサクッとフォトアプリをアンインストール。

アンインストール後もプロセス詳細にsihost.exeが残っていましたがしばらくすると消えてくれたので、これでようやくスッキリできるのかな?

タスクスケジューラのパフォーマンスをみると久しぶりに落ち着いているグラフを見た気がします。

ほかの使用しているPCでもフォトアプリはとっととアンインストールしておこう…

 

なお、フォトレガシのバックグラウンド動作はおそらくですが、Googleよろしく過去の写真や動画からいろいろな提案を行ってくれるのだと思いますが…正直イラナイデス。マーケティングには有用なんでしょうけども。 

2025年6月12日木曜日

「goo辞書」は2025年6月25日13時にサービスを終了いたします(5/14)

https://help.goo.ne.jp/help/article/2889/

ま、まじか…

地味に信用できるデジタル辞書だったのに…

オンライン辞書ではなく電子書籍版でも使えばいいのかなぁ?普通の人はどうやってるのだろう? 

2025年6月11日水曜日

Hotmailの認証

Windows10ぐらいからほぼ必須扱いのHotmailアカウント。

先日購入したミニPCにプレインストールされていたものはWindows11でした。

Windows10のときはオフラインでもローカルアカウントで起動できた気がしますが、Windows11ではWifi設定をうまく切り抜けたりしない限りローカルアカウントで起動できなくなっていた気がしたのですが、なぜかそのPCはオフラインのまま起動してしまいました。

OneDriveは賛否両論ありますが、個人的にはあってもいいかな?ぐらいの状態で使用していてそれなりに重宝もしてたりします。(そろそろ本気でバックアップしておかないと痛い目見そう…)

なのでOneDriveを使用するためにサインインさせようとしたのですが、コード送信ボタンを押した後、なぜか「xxxx@hotmail.comに送信したコードを入力してください」と画面が切り替わるものの、待てど暮らせど送付される気配もなく…

そもそも、認証用のコードってなんか手順が違ってるような…と。

別のPCでhotmailのメールを見れる状態のものがなかったので、直接webでアクセスしてみようとしたところ、そこでも認証用のコードのやり取りが行われました。

1.hotmailに紐づいている認証用のメールアドレスの入力を行う。

2.コード送信ボタンを押す。

3.認証コードがメールアドレスに届く

4.サインイン画面に表示されている画面にコードを入力する。

という手順を踏んでアクセスすることができました。。。今までこうだったよなぁ。。。

最近やたらとマイクロソフトアカウントに電話番号を追加して二段階認証を有効にしましょうとか出てた気もするし、そもそも二段階認証自体もそこまで確実じゃない気がするのだが…そう思いながらも「もしかしたら二段階認証にするとうまくいくのかも?」と期待して設定で登録してみました。

ですが、ミニPC側ではいつまでも上手く行きません。

ついでにアカウントのログインアクセス履歴を見てもミニPCからのアクセスは上がっていない様子

なんとなく気持ち悪いので、最近使ったUSBメモリーにWindows11のセットアップが入っていたので、クリーンインストールして、アカウントの紐づけを行いました。

インストール前にプロダクトコードだとか、ドライバのバックアップとか最低限行いましたが、マイクロソフトアカウントとライセンス認証が紐づいていると考えていましたが、クリーンインストールしたときにはプロダクトコードの入力やライセンス認証は自動に終わってました。

クリーンインストールはそれで無事終了したのですが、昨日githubを使っていると「二段階認証が必須になりました!」とか出てきたので慌てて右往左往したところ、いくつか手はあるようで、その中でもMicrosoft Authenticatorならちょうどいいんじゃないかなぁと。PCで完結できるかと思ったのですが、スマホアプリでした。まぁ仕方がない。インストールと…

そこでhotmailアカウント。コード送信ボタンはあるもののメールアドレス入力はなし…嫌な予感。

はい。全くコードが送信されてくる気配がありませんでした/(^o^)\

ダメそうなので、なぜか存在する「スキップ」というリンクっぽい部分をクリックすると、そのままアプリが起動して…いくら画面を見てもアカウントに紐づけられない状態に。閉じて起動させてもサインイン画面が表示されず…こんな状態で二段階認証を行えるようにしても他のスマホに移行できなくなると困るので他に手はないかと思っていたらgithub謹製のgithub mobileなるアプリを使ってもオッケーな模様。早速インストールしたものの。。。いくらPC側でサインインしなおしても二段階認証が有効になっている気配はありません。

もう少し設定を見ていると、特定の国ではSMSによる二段階認証も可能とのことなので、スマホの番号を入力し、ようやく二段階認証の設定が完了しました。これならほかのスマホに移行できるしめでたしめでたし…ですが、するとgithub mobileアプリから通知が…いまさら二段階認証がアプリでできてもみたいなw

 

 

結局、マイクロソフトアカウントで認証確認用のメールアドレスを入力しないパターンのコード送信ボタンって正しく実装されているのでしょうかねぇ?     

2025年6月10日火曜日

続・Windows11 IME 勝手に全角になってしまう

いまだに勝手に全角英文字に切り替わった後、マウスで戻しています。

「続」とあるのは、その後少しだけ再現率が高い状況に陥ったことと、さらにマウスで戻しても効果がなくなって常に全角英数字モードになってしまうという。

その回避方法というのが、メモ帳などでも何でもよいので別のウィンドウに切り替えて入力モードを切り替えると元に戻るというもの。 

昔のWindowsでもあったのですが、IMEの入力モードがおかしくなるという状況に陥った場合、ほかの入力できるウィンドウに一度切り替えると元に戻るという謎現象。

 

またこの全角英数字に勝手に切り替わってしまう病はFireFoxでbloggerの入力を行っていると発生しやすくなるということ。

そもそもbloggerとFireFoxは相性が昔から悪く、テキストを編集しているとIMEの入力を切り替えたり、バックスペースで文字を消すと入力している編集中の文字が消えたり、エンターキーを入力しても改行されなくなったりと、非常にストレスがたまったりします。

そう考えると諸悪の根源はFireFoxなのか??わからんw  

 

Windows11 IME 勝手に全角になってしまう

食パン

ついついミッキーパン事件以降某パンメーカーを避けるようになっていましたが、パン祭りや特売で品切れで仕方なく問題のパンメーカーのものを食べたところそっちのほうが美味しかったり。 

そのため、最近ではロイヤルブレッドか超熟のどちらかを食べるようになりました。個人的には超熟の方がおいしく感じています。昔、ダブルソフトを食べたときはおいしくて驚いたのですが、このまえ売り場にダブルソフトしかなく食べたところ、記憶のおいしさはまったくなく、正直「こんなもんだったっけ?」と。

 

そんな食パン私的な事情ですが、先日購入したもので…異物が…。

 


封を開ける前に外から見たところ「なんか黒い虫?」動いてないからゴミかどうか不明なものの。

そーっと封を開けて取り出してみると…

 


なんか蚊っぽい?

まぁ焼かれてる感じでもないし、封をするタイミングで上に乗ったかしたのかな?と

トースターで焼くし、まぁ食べても問題なさそうなので食べちゃいましたけどw

蚊程度でよかったと思うべきか、蚊程度なら混入するような環境で製造されているのかと考えるべきか、悩ましいところ。 

とりあえず動く形に

何も考えずひたすらビルドすることだけに進んでみたが、結局は素直にgit cloneするのが良いようです。

 

何も考えず、デベロッパー用のドキュメントの手順で進めると、github上のリポジトリからクローンした場合は、バージョンチェックで引っかかるので、

set(OBS_VERSION_OVERRIDE "31.1.0-beta2 master")

どこかでOBS_VERSION_OVERRIDEを設定してあげるか、cmake-guiだと変数のところでaddしてあげれば切り抜けられるとは思う。

色々と試行錯誤した結果として、github上だとデフォルトのブランチからしかフォークさせられないようで…ほしいものは、「実際に動かしている状態で実行ファイルだけ挿げ替えたい」なので、これではだめだということに。

ソースファイルのダウンロードの方法は、 obsproject/obs-studio でブランチなりタグなりを一覧表示させればそのものがダウンロードはできた。

 

そして、いざcmake!

一番最初にやったことですが、zipなりでソース展開するとどうもgit cloneで取得できるもののようで、内包される別リポジトリのソースは含まれていないようで…当たり前っちゃ当たり前だけど、結構不便。というか、知らないで後日何かしようとしても手遅れになりそう。

実際にcmakeを実行させると最後の方で、

-- Configuring done (0.4s)
CMake Error at plugins/win-dshow/virtualcam-module/CMakeLists.txt:93 (target_link_libraries):
  Cannot find source file:

    C:/obs/obs-studio-31.0.2/deps/libdshowcapture/src/dshowcapture.hpp


-- Generating done (0.7s)
CMake Generate step failed.  Build files cannot be regenerated correctly.
CMake Error at cmake/windows/architecture.cmake:17 (execute_process):
  execute_process failed command indexes:

    1: "Child return code: 1"

Call Stack (most recent call first):
  CMakeLists.txt:8 (include)


-- Configuring incomplete, errors occurred! 

などと怒られるので、個別にソースを何とかしてあげたりするとcmakeは通ってくれるようにはなるものの、当たり前ですが、バージョンが一致してなければコンパイルすら通らなくなるという…

 

試行錯誤の末、結局git cloneで直接ローカルに持ってくるしかない。という結論に。

> git clone --recursive https://github.com/obsproject/obs-studio.git -b 31.0.2 --depth 1

欲しいのはこのタグ付けされたバージョンが欲しいので、これなら一気に持ってきてくれるハズ。

とはいえ、コミットされていないものがあるので、ワーニングが出たりしましたが、一通りダウンロードされたので、cmake!

なんだかんだと勘違いなどもあるので、cmake-guiを使った方がvisualstudioの起動まで行ってもらえるので便利かな?

ソースの場所や、プリセットを設定し、Configure Generate OpenProjectボタンを順番に押しました。 

visualstudio上でソリューションのオープンもできたようなので、試しに▷ボタンで実行してみるとコンパイルが始まりました。しばらくすると、2つのビルドで(キャスト関連の)警告文が発生し警告がエラーとして扱われるためにビルドエラーが発生してしまいました。内容的には問題なさげなので、個別のプロジェクトのコンパイルオプションを変更して警告は無視させました。

そして待望の31.0.2のOBSの画面がでました。  

で、ソースを手直しして…と思ったら、31.0と31.1はソースの配置換えを行っているようで、ファイル名まで違っていた様子。

目的の \obs-studio\UI\window-basic-stats.cpp ファイルも見つかったので、中身はほぼ一緒なので修正もすぐ終わり、構成をリリースに切替て実行させてみました。

いい感じになったので、実際に動かしている環境に実行ファイルを入れて動作確認。

昨日試しにインチキビルドした実行ファイルを挿げ替えて実行させたところライブラリなどのエントリポイントの不一致でエラーが発生させてしまったのですが、その時からコントロール内のボタンが一つ表示されなくなりました。正直消したかったのでいいのですが、ビルドした実行ファイルが原因で、レジストリのエントリーが消されたのかな?とは思います。

一通り動作はした感じですが、気になるのが実行ファイルのファイルサイズが結構違うところ。

もともとインストールされていたobs64.exeが4.89MBだったのに比べ、出来上がったものは4.69MBと、0.2MBほどの誤差が…付随する.pdbファイルも微妙にサイズが違ったりしているので、バンドルされているプラグインがdisable状態に変更になっているだけかもしれません。

足掛け3,4日でなんとかやりたいところまでようやくたどり着きました…。

 

蛇足

いまさらながら、統計ウィンドウはドック状態のウィンドウでもウィンドウのタイトルバーに「×」ボタンがついているという事実…ソース内では closable で単独ウィンドウなのかドック可能状態か区別しているのですが、どっちもクローズできるじゃん…とかw 

統計のレイアウト

かなりやっつけで変更したものの、いざリリースされているバージョンでコンパイルしようとしたら見事にハマり、なおかつ、github上で変更して置いたら微妙に漏れてたりとかしたので、ほとぼりが冷めてから手直しした形がこちら。

ダイアログ形式のときの閉じるボタンはそのままに、リセットボタンだけ移動という考え方に。

github上の操作で特定のブランチからフォークさせるやり方が分からないので思っているようなことがうまくできなくて歯がゆい…w 

2025年6月8日日曜日

OBS 統計ウィンドウの整形

非力なPCでOBSを使っていてもそれなりに動いてくれるのですが、画面的制約から無駄な領域が何とかならないかと思っていました。

最初はリソースっぽい何かがありそうかな?と期待していたのですが、GitHubを見る限りそんなものはなさそうで…クロスコンパイル前提のソースでディレクトリ階層がまったく把握できず。途方に暮れてましたが、どうせならコンパイル環境を作るところから始めてみました。が、最初は全くうまくいきませんでした。

必要なツールは個別にインストールし、説明されている通りにgit cloneからcmakeを実行したところでどうにもダメ。原因が不明なところどうやらFAT32ではなくNTFS上でソースを扱う必要があるという点と、PowerShellのバージョンが古いとエラーではまるらしいということで再度挑戦してみるとようやくVisualStudioで実際にビルドすることもできました。 

実際にx64環境でVisualStudioで開いてみると、ソースをブラウズするのもかなり便利に。

そして肝心のリソースのようなものは存在していないというのが確定したこと。ダイアログとドックはほぼ共通化されていて、ウィンドウクラスは同じものという作りだということがわかりました。

OBSはQtが使用されていて、ソースを眺めていればそれなりに解りやすかった?

ターゲットとなるソースファイルは.\obs-studio\frontend\widgets\OBSBasicStats.cpp 

メモを起こして、どんな感じの入れ子になっているのか確認しつつ実際に直接変更してみました。 

その結果、

結構コンパクトに。

いまいち位置の固定方法がわかってないのでドック可能なパターンだとリセットボタンが割り当てられている領域の中心位置になってはいます。多分ストレッチを追加すると上か下に張り付かせられそうだけど、まぁ見た目的には満足なので…

ただ、これ、最新のmasterからのクローンなので、実際に使っているバージョンではなくてbeta版…GitHub上でフォークすればよかったかなw

これで統計を下にドックさせた状態でも少しだけだけどプレビュー画面が広がる…

とりあえず、GitHubにソースを反映させてみた。まだcloneしてコンパイル通していないけど… https://github.com/siriuth/obs-studio/tree/master

2025年6月5日木曜日

Fire TV Stick 4K 音量が半分程度になった→電源のUSBをいったん抜いて再起動させるのが吉

しばらく放置していたFireStickを使っていたら「なんか音量が小さくね?」と。ボリュームを最大にしてもいつも聞いている音量かなぁ?ぐらいまでしか大きくならず。

一度スリープにしてみる→変化なし
HDMIコネクタからFireStickを抜き差ししてみる→変化なし

そういえば設定を変えてみたなぁ…

オーディオ出力の自動になっていた項目をPCMに指定したり、接続機器のチェックを動かしてみたりと…

再度同じようなことをやっても変化なし

 

原因が全く分からないので、いつも使っているもうひとつのFireStickを使ってみたところ、ちゃんとした音量になった。

 

じゃぁもう一回放置してたFireStickを接続してみると、ちゃんとした音量に。

 

結論、ボリュームが半分程度になってしまったら電源のUSBケーブルをいったん抜いてみるといいカモ?

 

 

ボリュームが半分になるトリガーはハッキリしませんが、そのごしばらく問題なさげ。 

2025年6月4日水曜日

古古古米

色々と言いたいことはありますけども、ネーミングについて

古米(こまい)、古古米(ここまい)程度なら言葉として使ったことはあります(とはいえ小学3,4年ぐらいのときだけだと思う)が、さすがに古古古米なんて備蓄米放出問題が騒がれなければ使うことはなかったでしょう。

まぁそのままでいいんじゃね?って思っていましたが、おとといあたりから「ビンテージ米」などという言葉をみかけて「そりゃはんそくじゃね?」と思っていたらふと

古米(こまい)←そのまま
古古米(ここまい、にこまい)←ここまではどっちでもいい気がする
古古古米(みこまい)
古古古古米(しこまい) 

古の数を先に言っちゃえばという発想w

まぁ少なくてもどれだけ古いか解らなくなるような言葉をつけるべきではないと思うし。

備蓄米もブレンドじゃなければきちんと試食してみたかったかなぁ… ブレンド前提だと食べ比べても正確な判断はつかない気がする。

Windows11 IME 勝手に全角になってしまう

前々からかなり不便な部分で日本語入力をしているときに、全角英数字入力に切り替わってしまってマウス操作が必要になってしまうという問題。

日本語入力と全角英数字入力が切り替わるだけになってしまい、半角英数字(直接入力)にするためにマウスでタスクトレイのIMEのアイコンで入力モードを切り替える必要になってしまいます。

大抵の場合、入力切替時に発生しているのでキーボード操作によるものだろうと感じてはいるものの、はっきりと「このキーとこのキーを押したから切り替わってしまった」という結果にはならず、逆に全角英数字への切り替えもどうやるのかもわからないw

windows11でIMEが勝手に全角英数モードになる件 https://qiita.com/Oscer/items/132a8153cc5dcf0fad47

Windows10でも同様の現象が起っていた記憶があって、その時は互換モードに切り替えてしのいでいたのですが、Windows11だとそこまで互換モードにしなくても何とかなっていたので切り替えてはいませんでした。が、互換モードが最適解なのかな?と試したところ、状況はさらに斜め上に。悪化したというべきか、なんというか。

互換モードだと入力モードを日本語入力モードから英数字入力に切り替えた後やコピーペーストの後などに最初の入力文字だけが全角で入力されるという。

結構致命的なのが、スクリプトなどで

'test'

と入力したつもりが、

’test'
↑最初の文字が全角w 

と入力されてしまい、 実行時にエラーになってはまると言う…

しかもなんか画面を見ているとダメな人が言い訳しているかのように1文字だけ全角になってbackspaceで戻した後は直接入力モードになっていかにも「なにももんだいないよ」とか装っているというw

どっちがクソかと言えば、、、まだ入力切替時限定のほうがましかな?

アップデートが腐っててデータ災害はないものの、エクスプローラーが動作が不安定だったりするのでみんな本当にこんなOS使っているのかな?