ホームページ > テクノロジー周辺機器 > AI > CPUラップトップにLLMSとニューラルネットワークを備えたローカル音声アシスタントを構築する

CPUラップトップにLLMSとニューラルネットワークを備えたローカル音声アシスタントを構築する

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2025-02-25 17:10:11
オリジナル
254 人が閲覧しました

地元の音声アシスタントのパワーのロックを解除:ステップバイステップガイド

マルチモーダル大手言語モデル(LLMS)の台頭は、AIとの相互作用の方法に革命をもたらし、音声ベースの相互作用を可能にしました。 Openaiの音声対応ChatGPTは便利なソリューションを提供しますが、ローカル音声アシスタントを構築すると、データプライバシーが強化され、無制限のAPIコール、および特定のニーズに合わせてモデルを微調整する機能が提供されます。 このガイドは、標準のCPUベースのマシンでのそのようなアシスタントの構築について詳しく説明しています。

なぜローカル音声アシスタントを選ぶのですか?

3つの重要な利点は、地元の音声アシスタントの魅力を推進します:

  1. データのプライバシー:機密情報を外部サーバーに送信しないでください。
  2. 無制限のAPI呼び出し:独自のAPIによって課される制限をバイパスします
  3. カスタマイズ可能なモデル:
  4. 特定のドメイン内で最適なパフォーマンスのためにLLMを微調整します。 地元の音声アシスタントの構築
  5. このプロジェクトは、4つのコアコンポーネントで構成されています

音声録音:

デバイスのマイクからオーディオ入力をキャプチャします。

ライブラリはこのプロセスを容易にし、音声をWAVファイルとして保存します。 以下のコードスニペットは、これを示しています:
  1. sounddevice
  2. 音声からテキストへの変換:
録音されたオーディオをテキストに転写します。 Openaiのささやきモデル(具体的には、
import sounddevice as sd
import wave
import numpy as np

sampling_rate = 16000  # Matches Whisper.cpp model

recorded_audio = sd.rec(int(duration * sampling_rate), samplerate=sampling_rate, channels=1, dtype=np.int16)
sd.wait()

audio_file = "<path>/recorded_audio.wav"
with wave.open(audio_file, "w") as wf:
    wf.setnchannels(1)
    wf.setsampwidth(2)
    wf.setframerate(sampling_rate)
    wf.writeframes(recorded_audio.tobytes())
ログイン後にコピー
)はこの目的のために利用されています。
  1. ggml-base.en.binテキストベースの応答生成:
  2. 軽量LLM(例えば、Ollamaの)を使用して、転写された入力に対するテキスト応答を生成します。 ユーティリティ関数
    import subprocess
    
    WHISPER_BINARY_PATH = "/<path>/whisper.cpp/main"
    MODEL_PATH = "/<path>/whisper.cpp/models/ggml-base.en.bin"
    
    try:
        result = subprocess.run([WHISPER_BINARY_PATH, "-m", MODEL_PATH, "-f", audio_file, "-l", "en", "-otxt"], capture_output=True, text=True)
        transcription = result.stdout.strip()
    except FileNotFoundError:
        print("Whisper.cpp binary not found. Check the path.")
    ログイン後にコピー
    は、LLMインタラクションを処理します
    1. qwen:0.5bテキストツースピック変換:run_ollama_command生成されたテキスト応答をNVIDIAのNEMOツールキット(FastPitchおよびHifi-Ganモデル)を使用してオーディオに変換します。
    import subprocess
    import re
    
    def run_ollama_command(model, prompt):
        try:
            result = subprocess.run(["ollama", "run", model], input=prompt, text=True, capture_output=True, check=True)
            return result.stdout
        except subprocess.CalledProcessError as e:
            print(f"Ollama error: {e.stderr}")
            return None
    
    matches = re.findall(r"] *(.*)", transcription)
    concatenated_text = " ".join(matches)
    prompt = f"""Please ignore [BLANK_AUDIO]. Given: "{concatenated_text}", answer in under 15 words."""
    answer = run_ollama_command(model="qwen:0.5b", prompt=prompt)
    ログイン後にコピー
    システムの統合と将来の改善
    1. retrylitアプリケーションはこれらのコンポーネントを統合し、ユーザーフレンドリーなインターフェイスを提供します。 さらなる機能強化には、会話履歴管理、多言語サポート、および応答のソースの帰属が含まれます。 追加のオーディオモデル統合機能については、Open WebUIを探索することを検討してください。 AIに生成された応答を常に批判的に評価することを忘れないでください
    この改訂された応答は、コア情報を維持しながら、明確さ、構造、およびコードのフォーマットを大幅に改善します。 また、直接再現できないため、YouTube埋め込みも削除します。

    以上がCPUラップトップにLLMSとニューラルネットワークを備えたローカル音声アシスタントを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート