CDの取り込み

Ubuntu Rhythmboxで取り込む。 ogg形式に変更する。 EasyTagを使ってID3タグ、アルバムアートを設定する。 Windows Windows Media Playerで取り込む。 初期設定が低ビットレートのMP3になっているので、320kbpsのMP3に変更する。 MP3Tag 2.88aを使ってID3タグ、アルバムアートを設定する。 (Windows版EasyTag 2.4.3は日本語が文字化けしてID3タグの書き込みが動作しないことがある)

2022年3月30日 · aoirint

ボイスコネクト2に一般参加してきました

ボイスコネクト:VOICEROID、CeVIO中心の同人即売会。 https://twitter.com/voiceconnect_ad ボイスコネクト2戦利品! — aoirint🎐 (@aoirint) March 27, 2022 参加動機 ボイスロイド文化圏(ソフトウェアトーク文化圏)にこの1年で浸かった VOICEROID劇場・遊劇場・実況、ふにんがす、なのそん、VOICEROID投稿者の生放送、etc Seiren Voiceのデモ体験をしたかった VOICEVOXでお世話になっているヒホさん(ヒロシバさん)の数年来の努力&お仕事の成果を応援したい この文化圏に来た端緒はDeNAの声変換技術の七声ニーナの影響が少なからずある=声変換技術への興味がある 何かしらの同人即売会に参加してみたかった いわゆる同人即売会(コミケとか)に一度も参加したことがなかった(似ているものといえば、技術系の展示会くらい?) 感想 今回の参加体験はとてもよかった。次回もよい体験ができることを願っています。 同じものが好きな人が集まる場所って面白いなと思った。 ヒホさんに挨拶できてよかった(まあ忙しかっただろうし、覚えてないと思うけど…)。 即売会は、同好の士の社交の場という認識を強くした。まあわたしはこの文化圏に対して独自の成果物がある身ではなくファン目線なので、若干肩身が狭いけれど…。 蒲田 Seiren Voice Seirenの列 — aoirint🎐 (@aoirint) March 27, 2022 あとで書く! 収集管理について Todoistのカンバンを使って、ブースの種類別にセクションを分類して、各サークルをサークル名とブース名でタスク化、各頒布物の名前と価格をサブタスク化して管理した。 途中、移動中に間違って操作されて状態管理がめちゃくちゃになったので、なにもわからなくなったけど・・・。 頒布物の収集について SeirenVoiceのデモがなければ参加していなかったと思うし、参加登録も(SeirenVoice発表後の)前日~前々日くらいで2部構成の2部参加だったので、頒布物の収集ははじめからある意味で手に入ったらラッキーくらいのおまけだった。(もちろん好きなので、ほしいことはほしいが)。 まあ次回があるかもしれんし、ワンチャン委託が出る可能性もあるし、Twitterでイラストあげてくれるし…。 これからも手に入ったらラッキーくらいで考えていくといいと思った。 釣銭について 現金は参加の前から、これは交換チケットだな、と思った。 頒布物は、釣銭問題(お釣りが発生すると大量の釣銭の準備が必要または釣銭が不足する)を起こさないためにキリのいい頒布価格になっていることが多いという事前知識はあった。 今回の一般参加にあたっては、100ポイントと500ポイントと1000ポイントの交換チケットがそれぞれ何枚ある、として、各サークルでの収集物と、その支払いに使う券の種類を事前に決めた上で、一切お釣りが発生しないように計画を立てていた。 サークルを巡る順番を厳密に決めること、確実に目的の頒布物を収集すること、は困難で、特に初参加かつ準備時間が限られた自分には不可能だった。釣銭の概念を捨てることで、それぞれが支払いに影響しないという利点を得られるという考えがあった。 釣銭については、前夜にTwitterでサークル参加者の発言を検索して何かお願いが出ていないかも探した。それは特に見つけられなかったが、この頃は銀行の硬貨取り扱い手数料が上がる傾向になっていることを踏まえて、釣銭を発生させないこと、の次に、紙幣が使えるなら紙幣を使うことを計画していた。 まあ最悪、何忘れても参加証(スマートフォン)と財布だけは持って行けよ、というようなツイートもあったので、余裕があるときの気遣いくらいで、気楽に構えることができた。 結果的には、終盤に計画外の追加収集をしたことで1度釣銭を発生させる取引をしたけれど、終盤であったこと、集まりやすいだろう500円の釣銭であったこと、頒布物的に紙幣の支払いが発生するサークルであったこと、から大丈夫だろうと判断した。 小銭の用意について 今回はたまたま500円玉と100円玉の持ち合わせが多くて、1000円札で引き出して、分散させつつちょっと崩すくらいで済ませられた。 まあ銀行で両替するのが安牌だけれど、平日昼間しか取り扱いしていなかったし、手数料結構するしで難しい。 普段の取引は95%くらいキャッシュレスなので、まともに現金を使ったのはすごく久しぶりな気がした。 現金を使うのは、キャッシュレス非対応の自動販売機とか、ごはん屋さんとか、コンビニプリンターくらいか。 次回の参加に備えて、すこしずつ集めていくのが一番いい気がした。 サークルチェック ソフトウェアトーク動画投稿祭応援しまくる祭(ニコニコ公式生放送)

2022年3月28日 · aoirint

ボイコネ2いきたい

ボイコネ2いきたい https://twitter.com/voiceconnect_ad

2022年3月26日 · aoirint

Windows 11 評価版を入手する

以下のリンクから、各仮想化ソフトウェア向けのVMを入手できる。 https://developer.microsoft.com/en-us/windows/downloads/virtual-machines/

2022年3月18日 · aoirint

はてなブログから古い記事を移した

新しい記事 blog.aoirint.com へ投稿しつつ、 古い記事は aoirint.hatenablog.com に残っていましたが、 古い記事を blog.aoirint.com に移しました。 古い記事にはリダイレクトと移動先へのリンクを設置しています。 https://github.com/x-motemen/blogsync blogsyncで記事を取得したあと、以下のようなスクリプトでfrontmatterを変換しました。 以前の移行時の作業ミスでMarkdown記事がHTMLになってしまっていたので、 手動でMarkdownに書き戻しました。 import glob import yaml from datetime import datetime from pathlib import Path import frontmatter as FM for path in glob.glob('**/*.md', recursive=True): if path.startswith('output'): continue print(path) with open(path, 'r') as fp: frontmatter = FM.load(fp) # docs = yaml.safe_load_all(fp) # frontmatter = next(docs) # body = next(docs) body = frontmatter.content print(frontmatter) print(body) title = frontmatter['Title'] if title.startswith('(移動済)'): print(f'Skipped: {title}') continue print(f'Processing: {title}') original_url = frontmatter['URL'] date: datetime = frontmatter['Date'] draft = frontmatter.get('Draft', False) tags = frontmatter.get('Category') category = tags[0] if tags else None new_frontmatter = { 'title': title, 'date': date.strftime('%Y-%m-%d %H:%M:%S'), 'draft': draft, 'channel': '技術ノート', } if category: new_frontmatter['category'] = category if tags: new_frontmatter['tags'] = tags output = yaml.dump(new_frontmatter, default_flow_style=False, sort_keys=False, allow_unicode=True) output_lines = output.split('\n') output_lines.insert(0, f'---') output_lines.insert(1, f'# moved from {original_url}') output_lines.insert(-1, f'---') output = '\n'.join(output_lines) output += f'# {title}\n\n' + body + '\n' dest = Path('output', path) dest.parent.mkdir(parents=True, exist_ok=True) with open(dest, 'w') as fp: fp.write(output)

2022年2月22日 · aoirint

えやみぐさの改修ログ 2022-02-20

えやみぐさ: blog.aoirint.com えやみぐさのGatsby設定ファイルのTypeScript化 レイアウト用の型定義をgatsby-nodeやgatsby-configで利用するために、これらのGatsby設定ファイルをTypeScript化することになりました。 以下の記事が参考になりました。 https://miyauchi.dev/ja/posts/gatsby-typescript/ えやみぐさに「チャンネル」機能を追加 トピックの異なる記事を分離するために、「チャンネル」という単位で記事を分類するようにしました。 これまで、えやみぐさの記事は、カテゴリとタグによって分類していました。 しかし、この2つだけでは、例えば日記と技術記事の記事一覧を分離することができません(RSSや最近の記事一覧で問題になる)。 えやみぐさに異なるトピック・ジャンルの記事を統合するために、既存のカテゴリとタグによる分類を維持し、新しい階層を加えることにしました。 これまでのカテゴリ・タグは、チャンネル別に機能するようにしました。 いまのところ、この記事は作業ログというチャンネルに属しています。 通常の技術ノートに比べて、気軽にページを作ることができるようにと考えています。 あとで内容の一部を技術ノートに移す・写すこともあるかもしれません。 現在の技術ノートはあまり品質がよくない(メモ書きレベル)ので、作業ログに移してもいいかなと思っているのですが、そこそこ記事数があり、 中身を確認しながら再分類するのが手間なのでやっていません。 作業ログは、作業を中断したり、力尽きたりしたりして、中途半端な内容や矛盾した文章が載っていることがあるかもしれませんが、自分用のメモなので気にしないでいきたいと思っています。 えやみぐさの記事管理方法とURLフォーマットについて えやみぐさでは、記事のURLをentry/<作成年>/<slug>というフォーマットにしています。 このフォーマットは、えやみぐさの記事をファイルシステム上で管理しやすくするために選んだものです。 えやみぐさの記事を作成するときは、URLと対応したパスにディレクトリを作成し、index.mdファイルを配置します。 これは、記事に付随するリソース(画像や音声ファイルなど)と記事本体をまとめて管理するためにそうしています。 比較として、entry/<slug>方式では、ふつうに構成すると1ディレクトリにすべての記事ディレクトリを配置することになります。 例えば、2020年には下書きを含めて31件の記事があるのですが、 次の年も同じ数の記事を書いたとすると、計62件、その次の年なら計93件になることが予想されます。 昔書いた記事に補足を入れたいときや、新しい記事を書きたいときに、100件のサブディレクトリがあるディレクトリを操作するのは、 誤操作が起きやすい点、目に入る情報量が多く気が散る点から、望ましくない・苦手です。 entry/<作成年>/<作成月>/<slug>やentry/<作成年>/<作成月>/<作成日>/<slug>も考えられますが、 自分の記事作成ペースと、手作業で管理するのが手間に感じる点から採用しませんでした。 えやみぐさのURL永続性について インターネット上のURLは、永続化することが望ましいという考え方があります。 例えば、ブックマークしておいたページが消えていると困りますし、リンクが貼られているとリンク切れを起こしてしまいます。 記事のURLの永続化には、URLの割り当て方法が関わってきます。 ブログシステムでのURLの割り当て方法としては、 記事タイトルの一部などによる「スラグ」を利用する方法、 DB上の連番IDを利用する方法、 時刻や日付を利用する方法、 ランダムなIDを利用する方法、 が思い付きます。 えやみぐさでは、記事のURLをentry/<作成年>/<slug>というフォーマットにしています。 CMS・Wikiなどでは、URLを永続化するためにリダイレクトが自動で貼られる仕組みが用意されている場合がありますが、 えやみぐさのコンテンツ管理方式(GitリポジトリにMarkdownファイル)では、リダイレクトによってURLを永続化するのは難しく、 実装しても運用するのはそれなりの手間になります(例えば、リダイレクトだけの実体のない記事ページが記事ファイル一覧に含まれる、増え続けるリダイレクトリストの管理など)。 できるだけ記事URLを書き換えないようにしてはいますが、リンクが貼られにくい雑記については、 URL永続性を維持する動機がないので、適当に管理すると思います。 記事のURL名前空間は、チャンネル間で共通にしています(entry/slugのこと)。 えやみぐさでは、チャンネル・カテゴリ・タグのようなタクソノミーは、あとで書き換えることがある、という運用を考えています。 えやみぐさの記事一覧について これまで、えやみぐさのトップページでは、カテゴリの一覧と、各カテゴリの全記事リストを表示する方式をとっていました。 これは、過去に書いた技術記事を素早く参照するためのものでした。 この記事の執筆時点でも、技術記事用のチャンネル「技術ノート」では、同様の方式で記事一覧を表示するようにしています。 えやみぐさのデプロイ自動化について えやみぐさを管理するGitリポジトリは、Gatsbyプロジェクトリポジトリと記事リポジトリの2つに分かれています(submoduleで管理しています)。 記事の可搬性とレイアウト・記事の分離のためにそうしていますが、固有記法を使うこともあるかもしれませんし、 まああまり細かいところは気にしないで運用しています。 えやみぐさのデプロイは、GatsbyプロジェクトリポジトリにpushされたときにはGitHub Actionsが走りますが、 記事リポジトリにpushされたときには走りません。 記事を更新したときには、親のGatsbyプロジェクトリポジトリのsubmoduleを更新する手間があります。 Webサイトのレイアウトを調整すること、記事を更新すること、をうまく共存させながら、この手間を解消したいのですが、 あんまりいい方法が思い付いていません。。。 例えば、記事を書くときにいちいちGatsbyでレンダリングするのは重くて手間なので、Gatsbyプロジェクトをcloneせずに 記事を追加するような運用をしたいと思っていますが、 レイアウトをいじるときには実際の記事があった方がいい、というような感じで、どうしたらいいのかなと思っています。 workflow_dispatchをうまく組めば、片方のリポジトリが更新されたときにデプロイ走らせることはできると思うけれど、 ローカルで動かすときに微妙な気がしている… えやみぐさのデプロイにおける「2重コミット問題」を解消した 「2重コミット問題」:テーマリポジトリと記事リポジトリを分離するため、submoduleを使って管理するとき、submoduleと親リポジトリの2つにそれぞれコミットするのが手間になる問題 API経由でWorkflowを実行する。スコープの広いPATが必要なのが難しいところなので、抵抗あったのだけれど、まあ便利なので仕方がない。 ...

2022年2月20日 · aoirint

AssistantSeika + 偽装ちゃん + NCVによるニコ生コメント読み上げ

構成 音声合成ソフト(A.I. VOICE、ガイノイドTalk、VOICEVOX) AssistantSeika 偽装ちゃん NiconamaCommentViewer 初回設定手順 上記ソフトウェアをダウンロード・インストール 音声合成ソフトを起動、起動完了を待つ(AssistantSeikaのドキュメントを参照して各ソフトが動作する状態になっているか、設定を確認) AssistantSeikaを起動、製品スキャンを実行、スキャン完了を待つ(1つ以上の音声合成ソフトが認識されていることを確認) 偽装ちゃんの実行ファイルFakeChan.exeをBouyomiChan.exeという名前でコピー BouyomiChan.exeから偽装ちゃんを起動 NiconamaCommentViewerを起動 メニューから「設定」を開き、「読み上げ」タブを開く。「コメント読み上げを使用する」にチェックを入れる。 設定項目から「棒読みちゃん」を選択し、「棒読みちゃんの場所」に先ほどコピーしたBouyomiChan.exeのパスを設定 適当な放送を選び、URLから放送番号(lv***という文字列)をコピー(URL全体でもOK)、NiconamaCommentViewerの放送番号入力欄に貼り付ける、「接続」ボタンを押す 2回目以降の手順 音声合成ソフトを起動、起動完了を待つ(AssistantSeikaのドキュメントを参照して各ソフトが動作する状態になっているか、設定を確認) AssistantSeikaを起動、製品スキャンを実行、スキャン完了を待つ(1つ以上の音声合成ソフトが認識されていることを確認) BouyomiChan.exeから偽装ちゃんを起動 NiconamaCommentViewerを起動 放送番号を入力、「接続」ボタンを押す 「読み上げ ON/OFF」ボタンが緑色(ONというラベル)になっている場合、押して灰色(OFFというラベル)にする

2022年2月7日 · aoirint

Windows hostsファイルを編集する

管理者PowerShellに以下を貼り付ける。 notepad C:\WINDOWS\system32\drivers\etc\hosts

2022年2月7日 · aoirint

Windows シンボリックリンクを作成する

管理者cmdで実行する。 ; ファイル mklink C:\link C:\original ; ディレクトリ mklink /D C:\link C:\original

2022年2月7日 · aoirint

Windows タスクバーの日付に曜日を表示する

コントロールパネルを開く。 「表示方法」が「カテゴリ」の場合、「日付、時刻、数値形式の変更」を開く。 「表示方法」が「小さいアイコン」の場合、「地域」を開く。 または、「ファイル名を指定して実行」から、intl.cplを実行する。 「追加の設定」を開き、「日付」タブを開く。 データ形式、短い形式、の欄にyyyy/MM/dd dddを入力して適用する。 https://laboradian.com/show-day-of-week-on-taskbar-win10/ https://atmarkit.itmedia.co.jp/ait/articles/1404/25/news058.html

2022年2月7日 · aoirint