こちらは Livesense Advent Calendar 2025 DAY 6 の記事です。
はじめに
はじめまして、リブセンスでエンジニアをしている@dandelion0216です。
Qiitaに記事を書くのはこれが初めてだったります。
今回はかなり緩いものが書ければと思っています。
他の方達がちゃんとした記事を書かれると思うので、
おふざけに走ろうと思います
dandelion0216の略歴
- 2012年くらいに一念発起してITエンジニアにジョブチェンジ
- 2024年くらいまでSESで生きていた
- 2024年にリブセンス入社
- 2024年12月 YouTuberデビュー
YouTuberとしての活動
- ソロキャンプのVlog的な
- 弾丸海外旅行のVlog的な
チャンネル情報
本題
YouTuberとして自身で動画編集を行っています。
動画を1本作るだけでも一苦労。
そんな中で、知人から次のようなことを言われました。
「ナレーション必要だよね」
当時作っていた動画にはナレーションを入れず、
字幕のみの動画となっていました。
たまに地声が取れていれば入っているような。
そこで実行したのが
字幕にナレーションを付ける
です。
そのためにはまず文字列を音声に変えてくれる何かが必要でした。
次の条件でそのようなサービスorアプリを探しました。
- 無料で利用できる
- 制限はあってもいい
- 地声から音声が生成できる
- mp3形式でダウンロードできる
です。
いくつかヒット!
個人的に良さそうだと思ったものを利用することに。
アプリについては話題が異なるのでまた別の機会に。
文字列用意に一苦労
利用するアプリを決めて、地声を録音してAI音声を作成するところまで実施。
それでは、文字列を音声にするため取り出します。
1
01:00:08,605 --> 01:00:11,608
<b>こんにちは</b>
2
01:00:11,608 --> 01:00:14,610
<b>おにぎりことのぶです</b>
想定外のフォーマットでした。
期待していたのは
こんにちは
おにぎりことのぶです
このような入力したものが1行ずつ出力されたテキストファイル。
取り出せただけでも御の字として、AI音声作成を実施していきます。
一番最初は1行1行コピペしていたのですが、めんどくさい。
果てしなくめんどくさい。。。
私はエンジニアでもある
ということで、めんどくさいことはプログラムに実施してもらいましょう。
ちょうど開発合宿もあったのでサクッとCopilotくんに作ってもらいました。
func ExtractBTagsFromFile(srtPath string) ([]string, error) {
data, err := ioutil.ReadFile(srtPath)
if err != nil {
return nil, err
}
re := regexp.MustCompile(`<b>(.*?)</b>`)
matches := re.FindAllStringSubmatch(string(data), -1)
var results []string
for _, m := range matches {
if len(m) > 1 {
results = append(results, m[1])
}
}
return results, nil
}
GoLangとしていいのかわかりませんがCopilotくんなら大丈夫でしょう
ということで
1
01:00:08,605 --> 01:00:11,608
<b>こんにちは</b>
2
01:00:11,608 --> 01:00:14,610
<b>おにぎりことのぶです</b>
これから
こんにちは
おにぎりことのぶです
これを生成できました。
おわりに
こういうノリでYouTuberをしています。
エンジニアかつリブセンス社員としては真面目に働いています
真面目な部分があるからふざけるときはふざける。
そういうところも含めて一緒に働いている皆様には感謝しております。