nextpnr-xilinx

OpenSourceなFPGAのPlace And RouteのXilinx版がつぎのところにあるんだけど、UltraScale+も対応してたのね。

てっきり、7-Seriesまでかと思ってた。

https://github.com/gatecat/nextpnr-xilinx.git

ZCU104のサンプルもあるし、今度、じっくりと使ってみよう。

2025/02/05 10:00:00(Permanent Link)

 


音声切り出し

Whisperで文字起こしをして、ffmepgで音声を切り出す。

Whisperを実行するとつぎのように結果を表示してくれる。

[06:16.740 --> 06:18.620] おはようございます
[06:51.680 --> 06:52.680] こんにちは
[06:55.400 --> 06:56.400] おやすみなさい

切り出した時間からffmpegでつぎのように実行すると、文字起こしした部分だけ音声を抜き出すことができる。

$ ffmpeg -i 入力ファイル名 -ss 開始時刻 -to 終了時刻 -c copy 出力ファイル名
2025/02/04 10:00:00(Permanent Link)

 


Whisper(文字起こし)

Whisperで文字起こしをやってみた。

つぎのように環境を整える。

$ mkdir whisper
$ pyenv local 3.11.9
$ uv venv
$ uv pip install git+https://github.com/openai/whisper.git
$ mkdir convent
$ mkdir download

contentディレクトリにsample.mp3をコピーする。

つぎのような、スクリプト(sample.py)を作成する。

import whisper

fileName = "sample.mp3"
lang = "ja"
model = whisper.load_model("large")

# Load audio
audio = whisper.load_audio(f"content/{fileName}")

result = model.transcribe(audio, verbose=True, language=lang)

# Write into a text file
with open(f"download/{fileName}.txt", "w") as f:
  f.write(result["text"])

音声起こしを実行する。

$ source .venv/bin/activate
$ python sample.py

文字起こしが完了するとsample.mp3.txtに出力される。

2025/02/03 10:00:00(Permanent Link)

 


音声合成

今日は節分ですね。

すごく寒いので家にこもって、音声合成で遊んでいます。

もともとはクローズドな議事録起こしツールを作りたいだけだったんだけど、方向は逆だけどテキストから音声を合成できるのであれば、つぎのフローも試したくなってくる。

  • 音声からテキスト起こし
  • 起こしたテキストでLLM
  • LLMの回答を音声合成

これを自分の好みの声や好みの性格を持ったLMMとかを学習させてしまえば、すごく好みなキャラクターができたりして…

議事録も登場するキーワードまでを要約できるようにすることもできそうな感じだなぁ…

2025/02/02 10:00:00(Permanent Link)

 


コードのフォーマッター

ふだん、エディタはVSCodeを使っているんだけど、最近のコードのフォーマッターはPrettierとVerilog-HDL/SystemVerilog/Bluespec SystemVerilogを使っています。

フォーマットの規則はデフォルトのままです。

若い頃はフォーマットを一定のこだわりがあったけど、今はまったくないのでデフォルトでフォーマッティングされてしまっても気にならない。

Prettier - Code formatter

つぎの言語のFormattingを行っている。

  • JavaScript、TypeScript、JSON、CSS、HTML、Markdown

Verilog-HDL/SystemVerilog/Bluespec SystemVerilog

つぎの言語のFormattingを行っている。

  • VerilogHDL、SystemVerilog

この中でフォーマット自体はつぎのルールを使っている。

  • verible-verilog-format
2025/02/01 10:00:00(Permanent Link)