見出し画像

全自動でオーディオブック問題集を生成してみた ~AI x VOICEVOX x Pythonでオーディオブックを生成~

こんにちはRcatです。
前回の記事では全自動で問題集を作成しました。
さて、次の段階はこれを読み上げてオーディオブックにしてしまいましょう。

問題集生成何それ?という方は、まずは前回の記事をご確認ください。



はじめに

利用規約

情報や作品の活用時は事前に利用規約をご確認ください。

コメントについて

利用規約のガイドラインを確認の上コメントしてください


概要

前回までのあらすじ

資格取得試験勉強問題集って何回かやるともう覚えてしまいますよね。
そんな時に思ったのが生成AIに試験範囲とキーワードを投げて疑似問題を作れば無限に問題を生成できるのではないかというアイデア。

最初はチャットボットとして作成しましたが、ネットワーク環境が悪いと使えなかったり、生成待ちの時間が数秒あるので少々やりづらいなという点がありました。

というわけで、前回の記事では問題をPDFファイルとして出力し、電子書籍で読めるようにしました。

今回やること

さて、ここからですが、PDFに出力する部分を音声に出力を変更すればオーディオブックが作れてしまうのではないかと思いました。

例えば、以下の記事では動画を全自動で吹き替えるために音声合成ソフトを使っています。
これと同じ要領で問題文を読み上げればいいのです。


完成形

まずはどんなものかお見せします。
お見せするも何も、オーディオなのでYouTubeにアップしました。問題のない環境でしたら視聴してみてください。
※G検定です


使い方

ダウンロード方法

前回の記事で配布しているものを本内容でアップデートします。
最下部配布情報をご確認ください。

操作画面と設定項目

本作トップ画面に専用の設定項目と出力ボタンを設けました。
次の項目を設定して、オーディオブックを作成ボタンを押すことで音声が作成されます。

  • キャラクター
    読み上げに使用するキャラクターを選択します。
    本作は読み上げにVOICEVOXを用いますので、あらかじめダウンロードして起動だけしておいてください。詳しくは全自動吹き替えの方の記事をご確認ください。

  • 話速
    読み上げのスピードです。1度生成してみて感触を確かめて設定してください。

  • 解答移行時間
    問題等、選択肢の読み上げが終わった後に回答解説の読み上げに移るまでの間です。

  • マージ
    読み上げファイルを1問ごとに出力するか、全ての問題を結合した音声ファイルとするかを選択します。使いやすい方法を選択してください。

出力データの見方

マージをするかどうかで出力位置が変わってきます。

マージする場合
マージする場合は、本ツールがあるフォルダのDataというフォルダにまとめたファイルが作成されます。

マージしない場合
マージをしない場合は、本ツールがあるフォルダの中にDataというフォルダが作成され、さらにその中にボイスボックスと日付の名前でフォルダがあります。その中に個別の音声データが入っていますので再生してください。

出力結果の波形

オーディオを聞けない状態だと、どんな感じなのか全くわかんないと思うので、波形だけでも載せます。
この波形は2つの問題をマージしたデータです。

ご覧の通り、問題と回答解説の間に5秒の待ち時間、そして問題と問題の間にも5秒の待ち時間があることがわかります。
このツールの特徴として、4つの選択肢全ての説明をきちんとするようにしているので、解説が長くなっています。


仕組み

では、少し仕組みを説明していきましょう。
なお、本格的な説明は解説の方の記事に統合します。

処理の順番

処理の順番は以下のようになっています。

  • 問題の生成
    大規模言語モデルを使って試験問題を生成します。

  • 文章の読み上げ
    VOICEVOXを使ってテキストを音声化します。

  • データの結合
    読み上げた音声ファイルを1つのデータにマージします。

ポイント全部ひらがなで出力する

本作のポイントとしては、平仮名で文章を出力していることが挙げられます。

ソフトウェアにもよると思いますが、日本語読み上げソフトは英語を読めません
ボイスボックスは全く読めないので、アルファベットをそのまま読めばいいレベルでもなぜかこしょこしした音声になってしまいます。

でどうすればいいかなんですが、ひらがなで入力します。
方法は簡単です。AIにひらがなで出力するように指示すればいいだけです。
とはいえ、それでもたまにアルファベットや漢字が混ざってきてしまうのはこれからに期待ということですね。

一部例を挙げるとこんな感じです。
上の方は"LLM"を"えるえるえむ"と読んでくれていますが、最後のところは括弧書きのところを英語で残してしまっています。いや、そこいらないんだよな…。

このような感じでひらがなで入力することで安定した音声を生成します。
出来上がったデータをPythonで処理して指定した。感覚になるように繋げ直せば完成です。
ちなみに1問の問題を作るのに読み上げは5分割されています。


まとめ

今回は問題集をオーディオブック化してみました。
実際に使ってみると。まあ、許容範囲かなというレベルで使うことはできます。
ただ、あれですね。選択肢が長かったり、解説が長かったりすると途中で忘れちゃうのがちょっと難点です。私だけかな?
問題をスキップしたりできるように、マージはしない方が使いやすいかもしれませんね。
よろしければお試しください。それではまたお会いしましょう。


配布情報

配布URL

前回の記事より配布しています。


いいなと思ったら応援しよう!

Rcat999 情報が役に立ったと思えば、僅かでも投げ銭していただけるとありがたいです。