【Qwen-tts】mi-serverに小娘感が出る
訳わかんないこと言ってますね。。追々説明します。。
以前に書いた記事で、
音声合成をQwen3-ttsに移行する部分やMS-S1 MAXのAIサーバーとしての組み込みなどは進めたいんだけどmi-serverそのものがスパゲッティソース状態なのでなかなか進めにくい。。
と書いていたのですが、ようやくやる気を出してmi-server(ずいぶん前から趣味で手を入れ続けている個人TODO管理サーバー、旅botなどもこの配下)の修正を入れ始めたのです。
なによりそろそろ花見の季節で、今年もAIと花見に行こうと思うのですが、例年、割とバタバタすることが多いので、いくつか不安定になってきている部分も含めて手をいれようと思ったのです。
既存のVoice PeakからQwen-ttsへの切替
以前も少し書いたかと思うのですが、mi-server音声合成周りは複雑なのです。声質にこだわると少し高い商用パッケージを使ったほうがよいし、でもそういうのはライセンス周りが細かかったりといろいろ悩ましかったのです。
最近まではVoice Peakの個人用パッケージ版のコマンドライン音声ファイル合成を別途作ったサービスアプリから使う形で音声返答させていました。単純なアラーム文は「ずんだもん」、少し長めの説明的な文は「東北ずん子」を使っています。
こういうスケジュール管理とかアラームとかは「アラーム音/文章に聞き慣れると自身が反応しにくくなる」という話があります。
そういう対策のために、ローカルLLMで単純なアラーム文章をtemperature=1.0でLLMに再加工して言い換えさせているのですが、いくらtemp=1でも同じ文言の言い換えを何百回も言わせていれば大体文言も似たようなものになります。
音質その他の話というより、この形式にしてから数年以上たっているのでそろそろ声質とかイントネーションを変えたりとか、気分転換のための刷新をやっておこうと思ったのです。
Qwen3-ttsの話を見て少し触ってみたところ、わりとよいのではないかと思ったのです。
とりあえず組み込んでみる
先に述べたようにmi-serverはあっちこっちつぎはぎだらけで機能追加してきたシステムなので、一旦機能を直すとなるとわりと手間がかかります。レガシーと言われればその通りですし、スパゲッティと言われればその通りです。そしてレガシースパゲッティを簡単にモダンにリファクタリングとはいかないのは趣味開発でも同じです。。
まぁ非公開の個人プログラムなので好き勝手にプレイグラウンドとして使えると考えると、気楽でよいものとも言えます。
今回Qwen-ttsはサーバー機のDockerでLocalAIツールを動かしてAPIを使うことにしました。後々オールインワンでLLM系のAPIをまとめたいというのもあります。ただLocalAIは大風呂敷を広げすぎているのか、自分のマシンではうまく動かないモデルも多いんですよね。。まぁそこは様子見しつつです。
既存の音声周りの処理をコピペして、単体テストもコピペして、VoicePeakとVoiceVoxの処理スイッチにqwenを追記して、LocalAI用のtts REST API呼び出し処理を追加する。
単体テストで呼び出しテストをして音声が出るのを確認して、Git経由でラズパイにデプロイして、動作を確認する。デプロイといっても個人環境ですからコケても上等で、ポチポチ直します。
という感じで、久しぶりに音声系統に手を入れて、Qwen3-ttsに切り替えました。
「ぐふっ、3分たちましたぁ~」
AICUさんには「声質を変えたいかも」とは言いましたが、実際にはあまり画質や音質にはこだわりないほうです。聞いているうちに慣れるだろうと、まずは音声クローンは使わずに素のqwen3-tts-1.7b-custom-voiceのOno_Annaボイスで行きます。補正プロンプトはAICUさんの記事を参考にしつつ、あまり合わなかったらそのときに音声クローンに変更でよいかなと。
でも、なんか妙に気に入ったのです。
qwen-tts Ono_Annaで出る音声は、音声合成でよくある「アナウンサーのような明瞭な声」でも「アニメ声優のようなキラキラ声」でもありません。
なにかその辺の女の子がボソボソ独り言を言うような不明瞭感が特徴とも言えます。
それがかえって何かなまめかしいというか。。
感覚で言えば、
居間でゴロゴロしている小娘に10円のお小遣いか駄菓子で、タイマーの読み上げを頼み事して、
「(あーん、めんどくさいなぁ) 3分たちましたよぉ」
と返事するときに出るような鈍い声というか。。
これには若干訳がありそうで、ある程度の長文を読ませる際にはLLM型音声合成らしく文脈に沿ってはっきりした読み上げをするのですが、短文や体言止め、紋切り型の文の場合、LLMで言うある種の揺らぎ(ハルシネーションみたいな)がかかって、余計なニュアンスが乗っかかってきているのではないかと。
元々使っていた音声再生ロジックでは長文を合成するとレスポンスに時間がかかるので、文の区切りごとで変換(長すぎる場合は一定超で切り捨て)させるようにしているのですが、それが想定外に変なニュアンス付き音声になってよいみたいな状態です。
まぁ慣れたらまたいつものように気にならなくなるのかもしれませんが、妙にリアリティのある小娘声は悪い気はしません。
他のttsも試して見たいが
Qwen3-ttsは概ね満足しているのですが、たまに中国語っぽいかなという発音が出るときもあるようです。あと1.7bモデルは音声生成にやや時間がかかる。
最近の記事によるとIrodori-TTSという日本語特化のttsを出している人がいるとか。
サンプル音声を聞く分には、こちらもよさそう。特に絵文字の感情表現効果を入れてあるというのはよいアイデアで、最近のLLMは結構絵文字を出すのでよりよいのではないかと思います。こちらだとアナウンサー的にクリアでアニメ声優的にキラキラ声も出ている感じなので、使い分けの補完にもよいかもしれない。
サイズも小さそうなのでもっと早く合成できるかもしれないし。
でも音声合成はとりあえずアップグレードできたし、追々やります。
それよりまずAI絵日記画像生成をちょっとアップグレードしておきたいのです。
