地元の音声アシスタントのパワーのロックを解除:ステップバイステップガイド
マルチモーダル大手言語モデル(LLMS)の台頭は、AIとの相互作用の方法に革命をもたらし、音声ベースの相互作用を可能にしました。 Openaiの音声対応ChatGPTは便利なソリューションを提供しますが、ローカル音声アシスタントを構築すると、データプライバシーが強化され、無制限のAPIコール、および特定のニーズに合わせてモデルを微調整する機能が提供されます。 このガイドは、標準のCPUベースのマシンでのそのようなアシスタントの構築について詳しく説明しています。
なぜローカル音声アシスタントを選ぶのですか?3つの重要な利点は、地元の音声アシスタントの魅力を推進します:
デバイスのマイクからオーディオ入力をキャプチャします。
ライブラリはこのプロセスを容易にし、音声をWAVファイルとして保存します。 以下のコードスニペットは、これを示しています:sounddevice
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())
ggml-base.en.bin
テキストベースの応答生成: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.")
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)
以上がCPUラップトップにLLMSとニューラルネットワークを備えたローカル音声アシスタントを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。