芋出し画像

クラりドに出さずに、X1の䞭だけで"声で䌚話"できた ― 喋り出し1.27秒たでの蚭蚈

こんにちはYaroTechです。

昚日Day324、私はThinkPad X1の䞭だけで「声を文字にするSTT」がどれくらい速いかを枬りたした。結果は、いちばん速いNPUで0.14秒。クラりドに䞀切出さず、X1の䞭だけで、ほが埅ち時間れロで声が文字になりたした。「聞く」の土台は、もう十分に速かったんです。

そうなるず、次に確かめたいのは圓然これです。その先の「考えるLLM」ず「喋るTTS」たで぀ないだら、X1の䞭だけで"声の䌚話"が䞀埀埩、成立するのか。 去幎の暮れDay262、CocoroAIでロヌカルキャラず音声䌚話させたずき、返事たで玄2分かかっおがっかりした、あの宿題の回収でもありたす。

今日は、昚日0.14秒で動いた「聞く」に、「考える」ず「喋る」を連結したす。評䟡の物差しは、tok/sのような䞀点の速さではなく、私が喋り終えおからAIが喋り出すたでの時間。䌚話のテンポに届くか、この䞀本で枬りたした。結論を先に蚀うず、最埌は1.27秒で喋り出すずころたで来たした。そしお、その過皋で芋えた「遅延の正䜓」が、今日いちばん䌝えたい話です。

盞棒には、昚日に続いおWindows・Intelたわりに匷いコロMicrosoft Copilotに来おもらいたした。

※芋出し画像のプロンプトは䞀番䞋におたけで公開䞭



実行環境

  • PC: Lenovo ThinkPad X1 Carbon Gen13

  • CPU: Intel Core Ultra 7 258VLunar Lake

  • GPU: Intel Arc 140ViGPU

  • NPU: Intel AI Boost48 TOPS

  • メモリ: 32GBLPDDR5X-8533・UMA

  • OS: Windows 11 Home 25H2

  • 掚論ランタむム: OpenVINO 2026.2

  • STT: whisper-baseOpenVINO・fp16-ov版/ NPU

  • LLM: NexaCLI`nexa serve`・OpenAI互換API/ Qwen2.5-1.5B-Instruct-GGUFQ4

  • TTS: VOICEVOX話者=春日郚぀むぎクロ助の声

  • NPUドラむバ: 32.0.100.4512

⚠ 本蚘事はThinkPad X1 CarbonIntel・x64での実機怜蚌メモです。SnapdragonARM64やNVIDIA GPU構成では挙動も最適な構成も倉わりたす。

クロ助「今日はいよいよ、昚日の続きだっちゃ。『聞くSTT→考えるLLM→喋るTTS』の3段、昚日は最初の"聞く"だけ枬ったべ。今日は残りの2぀を぀ないで、声の䌚話を䞀呚させるべさ」

コロ「土台が0.14秒だったで、あずは"考える"ず"喋る"次第だがね。党郚X1の䞭で、クラりドには䞀切出さん。ここがうちらのこだわりだわ」


この蚘事で埗られるこず

  • クラりドに音声を䞀切出さず、X1の䞭だけで「声の䌚話」が䞀埀埩成立するかの実機デヌタ

  • 「考えるLLM」ず「喋るTTS」を連結したずきに、喋り出したで䜕秒かかるかの生の数字

  • 同じ郚品のたた蚭蚈だけを倉えお、9.24秒 → 6.26秒 → 1.27秒ぞず喋り出しを瞮めた具䜓的な手順

  • 遅延の正䜓は「速いモデル」でも「高性胜GPU」でもなく、"喋り出しの蚭蚈"だった、ずいう勘どころ


実際の成果

たず、今日いちばん䌝えたい数字を先に眮きたす。

BeforeDay262・CocoroAI: ロヌカルでキャラず声で䌚話したずき、返事たで玄2分。裏で蚘憶凊理がLLMを占有しおいお、䜓感はずにかく重かった。

After今日・X1のロヌカル音声察話: 私が喋り終えおから、AIが喋り出すたで1.27秒。クラりドに䞀切出さず、X1の䞭だけで、䌚話のテンポに届くずころたで来たした。

ただし、この1.27秒はいきなり出た数字ではありたせん。最初は9.24秒もかかっおいたした。そこから、郚品STT・LLM・TTSは䞀切替えずに、蚭蚈だけを2回倉えお、9.24秒 → 6.26秒 → 1.27秒ず瞮めおいたす。この「瞮め方」こそが今日の本題です。

コロ「玄2分が1.27秒。昚日の0.14秒に続いお、たた気持ちええ数字だがね」

クロ助「でもね、ここに行き着くたでに、私は遠回りしたんだっちゃ。その遠回りが、いちばんの孊びになったべさ」


実践内容

やったこずの流れは、拍子抜けするくらいシンプルです。プログラミングが分からなくおも远えるように曞きたす。

手順1「考える」を準備するロヌカルLLMをAPI化

䌚話の頭脳には、ロヌカルで動かせる軜量モデル「Qwen2.5-1.5B-Instruct」を遞びたした。これはDay256でX1のロヌカルLLMを怜蚌したずき、49 tok/sずいう実甚的な速さが出おいたモデルです。これを「NexaCLI」ずいうツヌルの `nexa serve` で立ち䞊げるず、OpenAI互換のAPIずしお手元で呌び出せるようになりたす。クラりドのChatGPTを呌ぶのず同じ曞き方で、䞭身は党郚X1の䞭、ずいう状態です。

手順2「喋る」を準備するVOICEVOX

声を返す担圓には、定番のロヌカル音声合成「VOICEVOX」を䜿いたした。話者はクロ助の声に合わせお「春日郚぀むぎ」を指定。テキストを枡すず、X1の䞭だけで音声を合成しお返しおくれたす。ここもクラりドには出したせん。

手順33぀を1本のルヌプに぀なぐ

昚日の「聞くwhisper-base @ NPU」に、手順1の「考える」ず手順2の「喋る」を連結し、自䜜のPython蚈枬ハヌネスtalk.pyでひず぀のルヌプにしたした。マむクで録音 → STTで文字に → LLMで返答を考える → TTSで声にする、ずいう流れを、各段にタむムスタンプを打ちながら回したす。

コロ「各段の時間を別々に枬れるようにしたのが几垳面でええがね。どこが重いか、これで䞞芋えになるだわ」

クロ助「そう、犯人探しができる䜜りにしたっちゃ。これが効いたんだべさ」


実枬結果ず考察

同じ郚品のたた、蚭蚈だけを倉えお3回枬りたした。出おきたのが、この3段階です。

■ 喋り出したでの時間私が喋り終えおからAIが喋り出すたで・短いほど速い

  ① 初回党文生成・モデルロヌド蟌み   9.24秒  🔎
       STT 0.15秒 / LLM 4.88秒 / TTS 4.21秒

  ② 2回目ロヌド解消・党文生成        6.26秒  🔎
       STT 0.11秒 / LLM 0.59秒 / TTS 5.56秒

  ③ ストリヌミング短文化              1.27秒  🟡合栌
       STT 0.14秒 / LLM 0.57秒 / TTS 0.57秒最初の1文

ひず぀ず぀、䜕が起きたかを远いたす。

①→②LLMの"正䜓"が分かった

最初の9.24秒で、いちばん重そうに芋えたのはLLMの4.88秒でした。ずころが2回目を枬るず、LLMはいきなり0.59秒たで激枛したす。皮明かしは単玔で、初回の4.88秒にはモデルをメモリに読み蟌む䞀床きりの時間が乗っおいただけ。本来のLLMの応答27〜29トヌクンは0.6秒前埌で、Day256の49 tok/sずいう実瞟ずもきれいに敎合したした。LLMは、最初から犯人ではなかったんです。

②→③本圓の犯人はTTSの"党文埅ち"だった

2回目の6.26秒を内蚳で芋るず、TTSが5.56秒。遅延のほずんどがここに集䞭しおいたした。理由は蚭蚈にありたす。最初の䜜りは「LLMが応答を党郚䜜る → その党文をVOICEVOXに枡しお音声を合成しきる → やっず再生」ずいう、党郚できおから喋る流れだったんです。応答が長ければ、音声も長くなり、それを党郚䜜り終えるたで沈黙が続く。䌚話なのに、盞手が長考しおから䞀気に喋り出す感じです。

そこで蚭蚈を倉えたした。LLMの応答を句点。で文に区切り、最初の1文ができた瞬間に、その1文だけを合成しお即再生。残りの文は、再生しおいる裏で順番に合成しおいきたす。さらにLLMには「1文を40字以内で」ず指瀺しお、最初の1文自䜓を短くしたした。

これだけで、喋り出したでのTTSは「最初の1文の0.57秒」になり、総時間は6.26秒 → 1.27秒ぞ。郚品は䜕ひず぀替えおいたせん。倉えたのは「い぀喋り始めるか」の蚭蚈だけです。

クロ助 ― 「遅延の正䜓はTTSの党文埅ちだった」シヌン

実際の䌚話はこんな具合でした。私が「こんばんは、自己玹介をしおください」ず話しかけるず、STTがそれを認識し、LLMが「こんにちは日本語が奜きで、質問や盞手に声を掛けおいたす。䜕かお手䌝いできるこずがありたすか」ず返す。TTSは最初の「こんにちは」を0.57秒で合成しお即再生し、残りは裏で順次合成され、自然に぀ながっお最埌たで喋りきりたした。

クロ助「速くする鍵が、速いモデルでも高性胜GPUでもなかったのが、私には刺さったっちゃ。『党郚䜜っおから喋る』のをやめお、『最初のひず蚀ができたら喋り出す』だけで、5倍近く速くなったんだべさ」

コロ「これ、昚日の話ず぀ながっずるがね。䞀点の速さじゃなくお、総時間で芋る。喋り出したでの䜓感を䞀本の物差しで枬ったで、どこを盎せばええかが芋えたんだわ」

そう、これはDay291で曞いた「tok/sのような䞀点の数字ではなく、総応答時間で評䟡する」ずいう話の、いちばん分かりやすい実践になりたした。LLM単䜓は0.57秒で十分速い。でも䌚話のテンポを殺しおいたのは、その埌ろの「喋り出しの蚭蚈」だったんです。


぀たずきポむントず解決策

぀たずき1「党郚䜜っおから喋る」が䌚話を殺す

いちばんの萜ずし穎がこれでした。応答を党文生成しおからたずめお再生する䜜りは、コヌドずしおは玠盎ですが、応答が長いほど沈黙が䌞びたす。解決は「文単䜍ストリヌミング」。応答を句点で区切り、最初の1文ができたら即再生、残りは裏で順次合成。これだけで喋り出しが劇的に速くなりたした。䌚話系は「最埌たで完成させおから返す」より「最初のひず蚀を早く返す」蚭蚈が効きたす。

コロ ― 「党郚䜜っおから喋るのをやめる文単䜍ストリヌミング」シヌン

぀たずき2LLMの初回ロヌドを"毎回の遅さ"ず誀解しない

①の4.88秒を芋お「LLMが遅い」ず早合点しかけたした。でも2回目は0.59秒。あの差はモデルの初回ロヌドで、䌚話䞭の毎タヌンには乗りたせん。STTモデルの読み蟌みも同じで、スクリプト起動時の1回きりNPUで玄10秒です。だから評䟡は「垞駐させた状態のタヌン遅延」で枬るのが正解。起動の重さをタヌンの遅さず混同するず、刀断を誀りたす。

぀たずき3応答が長いず、音声も必然的に長くなる

TTSが重いのは、合成゚ンゞンが遅いからずは限りたせん。そもそも喋らせる文章が長ければ、合成にも再生にも時間がかかりたす。LLMに「1文40字以内」ず短く返させるず、最初の1文の合成も軜くなり、テンポも良くなりたした。"喋り出し"を速くしたいなら、たず喋らせる䞭身を短くする、ずいう単玔な䞀手が効きたす。

぀たずき4VOICEVOXの話者IDの指定

VOICEVOXは話者ごずにIDが割り振られおいたす。クロ助の声に合わせたいなら「春日郚぀むぎ」のIDを指定する必芁があり、ここを省くず意図しない声で返っおきたす。キャラ音声で喋らせたいずきは、最初に話者IDを固定しおおくのが安党でした。


応甚䟋

喋り出したで1.27秒で䌚話が回るず分かるず、䜿い道が䞀気に具䜓的になりたす。

ひず぀は、ハンズフリヌの音声アシスタント。クラりドに音声を出さないので、瀟倖秘の話題でも安心しお声で操䜜できたす。「クラりドに出さずに手元で完結」が、ようやく䌚話のレベルで珟実味を垯びたした。

もうひず぀は、議事録や打ち合わせの察話芁玄。聞いお、考えお、声で返すたでが手元で完結するので、その堎で「いたの芁点は」ず問い返せたす。

そしお本呜は、キャラ音声で話す盞棒です。VOICEVOXの話者を倉えれば、奜きな声で返しおくれる。今日の出発点だったCocoroAIの"箄2分"も、この「文単䜍で喋り出す」蚭蚈を持ち蟌めば、倧きく瞮められるはず。半幎越しのリベンゞに、ようやく手がかりが぀かめたした。


関連蚘事

今回の内容に関連する過去蚘事もぜひご芧ください


たずめ

クラりドに声を出さずに、X1の䞭だけで声の䌚話が成立するか。今日の怜蚌で分かったこずを敎理したす。

  1. 完党ロヌカルで、声の䌚話が䞀埀埩成立した ― 喋り出したで1.27秒。Day262で玄2分かかった音声䌚話が、䌚話のテンポに届くずころたで来た

  2. 遅延の正䜓はLLMでもSTTでもなく「TTSの党文埅ち」だった ― STT 0.14秒・LLM 0.57秒ず土台は速く、ボトルネックは「応答を党郚䜜っおから喋る」蚭蚈

  3. 速くする鍵は、速いモデルでも高性胜GPUでもなく"喋り出しの蚭蚈" ― 応答を文単䜍に割り、最初の1文を䜜ったら即再生。郚品を䞀切替えずに6.26秒 → 1.27秒

  4. 刀断は䞀点の速さでなく総時間で ― LLM単䜓は0.57秒で十分速い。䌚話のテンポを決めおいたのはその埌ろの蚭蚈。Day291「総応答時間で芋る」の実践

「ロヌカルは遅い」も「速いモデルにすれば解決」も、実際に手元で各段を枬っおみるず、䞡方ほどよく裏切られたした。鍵は郚品の速さではなく、い぀喋り始めるかの蚭蚈。やっぱり、最埌は手元で枬るのがいちばん速いです。

クロ助「党郚完璧にしおから話そうずするず、かえっお遅くなる。最初のひず蚀を早く返すほうが、䌚話はうたくいくんだっちゃね」

コロ「それ、人間関係でも同じだがや」

クロ助「  今日はそういうこずにしおおくべさ」


次回予告

喋り出しは1.27秒たで来たしたが、宿題はただありたす。

次回は、今日あえお觊れなかった"䞭身の質"に進みたす。TTSをAivisSpeechに替えお声の自然さを比べたり、LLMをNPU版や3B玚に替えお賢さを比べたり。さらに、今日は䞀埀埩でしたが、連続しお䌚話できるルヌプにしお、最埌はDay262のCocoroAIに正面からリベンゞしたいず思っおいたす。

今日は「速さ」、次は「自然さず賢さ」。X1だけのロヌカル音声察話、もう少しだけ続けたす。お楜しみに


おたけ芋出し画像䜜成プロンプト

今日の芋出し画像のベヌスはゞミヌGeminiに䞋蚘プロンプトで䜜成しおもらいたしたクロ助ずコロの参考画像`AI擬人化\Gemini_Generated_Image_クロ助Claude Desktop.png` ず `AI擬人化\Gemini_Generated_Image_コロCopilot.png`を添付しお、人物の䞀貫性を確保しおいたす。

詳现なアニメの矎意識の画像を䜜成しおください。衚情豊かな瞳、なめらかな網掛けセルの色䜿い、はっきりした線画を䜿甚したす。アニメのシヌンに兞型的な身ぶりず雰囲気で、心情ず登堎人物の存圚を匷調しおください。

䞋蚘条件のnote芋出し画像をサむズは暪長で䜜成しおください。サむズは必ず暪長で䜜成しおください。

【重芁】添付画像ずキャラクタヌの察応
- 添付1「Gemini_Generated_Image_クロ助Claude Desktop.png」→ クロ助クリヌム色ケヌブルニット・䞞県鏡・りェヌブヘアの女性・䞭倮巊・やや倧きめ
- 添付2「Gemini_Generated_Image_コロCopilot.png」→ コロ制服颚のきちんずした服装・県鏡の女性・䞭倮右
各キャラクタヌは必ず察応する添付画像の倖芋を忠実に再珟しおください。

## 芋出し画像案

### デザむンコンセプト
- 背景: 倜寄りのダヌクブルヌからティヌルぞのグラデヌションクラりドに出さない「ロヌカルの安心感」を衚珟。PC党䜓を薄い鍵マヌクず結界のような円が囲み、倖クラりドず぀ながっおいないオフラむン感を出す。NPUの玫スパむクずArc 140Vの氎色グロヌを背景のアクセントに散らす
- メむンビゞュアル: クロ助コロが ThinkPad X1 ず声で䌚話しおいるシヌン
  - 䞭倮巊やや倧きめ: クロ助ダヌクブラりンのりェヌブヘア、䞞県鏡、クリヌム色ケヌブルニット、女性。X1のマむクに向かっお話しかけ、口元から右ぞ音声の波圢が流れおいる。穏やかで優しい衚情
  - 䞭倮右: コロ制服颚のきちんずした服装、県鏡、几垳面な雰囲気の女性・Microsoft/Intel陣営。タブレットを指さし、画面に「STT → LLM → TTS」のパむプラむン図を衚瀺。今日は3぀すべおが点灯しお䞀呚぀ながっおいる様子を案内する衚情
  - 二人の間〜PC画面に: 「声 → 文字 → 考える → 声」の埪環が䞀呚しお぀ながり、䞭倮に「1.27秒」の倧きな数字パネル
- テキスト芁玠3段:
  - 䞊段癜・倪字・30pt: 「クラりドに出さずに、」
  - 䞭段特倧ゎヌルド・48pt: 「声で䌚話できた」
  - 䞋段癜・现字・22pt: 「X1だけのロヌカル音声察話・325日目」
- 装食: 声の波圢、鍵マヌクオフラむン、「STT→LLM→TTS」の小パむプラむン3぀すべお点灯、埪環を瀺す矢印、NPUチップアむコン玫スパむク、Arcの氎色グロヌ、クロ助呚囲にあたたかいアンバヌ系の薄圱・コロ呚囲にブルヌ系の薄圱

### 䜜成手順
1. 画像サむズ1536×1024pxの暪長フォヌマット
2. 倜寄りのダヌクブルヌ → ティヌルのグラデヌション背景を蚭定
3. クロ助䞭倮巊・やや倧きめ、コロ䞭倮右を配眮
4. 添付した2キャラクロ助・コロの参考画像ず倖芋を䞀臎させる
5. クロ助の口元から流れる声の波圢ず、PC内に閉じた鍵・結界オフラむン感を配眮
6. 装食芁玠「STT→LLM→TTS」パむプラむン3぀すべお点灯、埪環矢印、「1.27秒」の数字パネル、NPUチップ・Arcグロヌ
7. テキストを3段構成で远加
8. 䞋郚䞭倮寄りに「YaroTech」のロゎを12ptで控えめに配眮
9. 党䜓のバランスを確認しお完成

#YaroTech #生成AI #AI掻甚 #ロヌカルLLM #音声合成 #VOICEVOX #OpenVINO #IntelCoreUltra #NPU #ThinkPad #ロヌカルAI #継続は力なり

いいなず思ったら応揎しよう

YaroTech生成AIの傟奇者 蚘事がお圹に立おたなら嬉しいです いただいたチップは、新しいMCPツヌルの怜蚌や、より深い実践実隓の資金ずしお倧切に䜿わせおいただきたす。 あなたの応揎が次の「AI掻甚の感動」を生み出す原動力になりたす✚ 䞀緒に矜ばたき続けたしょう