TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

2023-01-01から1ヶ月間の記事一覧

pocketfftを使ってみる

FFT

先日、Whisperで音声認識する処理を実装した際に、FFTの処理でフレームサイズが2のべき乗でない場合にどうやって処理するか戸惑った。Whisperではフレームサイズが400となっており、NAudioのFFTでは、フレームサイズが2のべき乗という制約があり使用できなか…

Whisperでリアルタイムに文字起こしするアプリ

前回の記事で、WhisperのモデルをONNXにして文字起こしができるようになったので、Windowsでスタンドアロンで実行できるアプリを作成した。C#でWPFを使用して開発したので、実行できるのはWindowsのみである。GitHubのReleaseからダウンロードできるようにし…

WhisperのモデルをONNXにする その2

前回、WhisperのモデルをONNXにする方法について記述した。Whisperのモデルは、単体では音声認識はできず、音声をメルスペクトログラムにする前処理と、トークンをデコードして文字列にする後処理が必要になる。 今回は、前処理と後処理をC#で実装する方法に…

WhisperのモデルをONNXにする

WhisperのモデルをONNXに変換する方法について記述する。 Whisperのモデル WhisperのモデルはPyTorchを使ってPythonで実装されている。 そのため、実行にはPyTorchをインストールしたPython環境が必要になる。 環境構築なしでスタンドアロンで利用できると用…

続:どの駒が評価値に寄与しているかを可視化する

先日記事にした駒の働きを可視化するツール(feature_importance.py)に、SVGを出力する機能を追加した。前回は数値で出力して、Excelの条件付き書式のカラースケールで、色に変換してから、ShogiGUIに画像として重ね合わせるということを行っていたが、手間が…

floodgateで任意のソフト同士で対局する方法

floodgateは、30分置きに自動で対局が始まるコンピュータ将棋の対局サイトだが、任意のタイミングで2つのソフトを対局させることができる。 CSAサーバプロトコル CSAサーバプロトコルでは、%%GAMEでgamenameを指定することで、対局条件が同じソフト同士の対…

【論文】Adversarial Policies Beat Superhuman Go AIs

[2211.00241] Adversarial Policies Beat Superhuman Go AIs最先端のコンピュータ囲碁ソフトのKataGoの脆弱性を攻撃することで、高い勝率を上げるエージェントを訓練する方法について書かれた論文。囲碁のルールの設定が公平でないとRedditで批判されている…

棋力計測の戦型分類

floodgateの戦型分類の記事にコメントをいただいたので、棋力測定時の戦型について分類してみた。 棋力測定の方法 dlshogiの棋力測定は、平手開始局面から序盤ランダムありで測定を行っている。 また、基準ソフトとして水匠5を互角になる条件に調整して、リ…

水匠の定跡作成プログラム

第3回電竜戦の水匠の定跡作成プログラムと同様のプログラムを作成した。 DeepLearningShogi/make_book_minmax.py at master · TadaoYamaoka/DeepLearningShogi · GitHub 方式 水匠の定跡作成プログラムと同様に、末端局面(一定の対局数以上の局面)の勝率をMi…