SYMBOL INDEX (171 symbols across 15 files) FILE: config.py class ConfigManager (line 9) | class ConfigManager: method __init__ (line 14) | def __init__(self, config_path: str = "config/app_config.json"): method save_config (line 29) | def save_config(self, config_data: Dict[str, Any]) -> bool: method load_config (line 68) | def load_config(self) -> Optional[Dict[str, Any]]: function model_to_dict (line 102) | def model_to_dict(model: BaseModel) -> Dict[str, Any]: FILE: generator.py class Segment (line 24) | class Segment: function load_llama3_tokenizer (line 31) | def load_llama3_tokenizer(): class Generator (line 48) | class Generator: method __init__ (line 49) | def __init__(self, model: Model): method _tokenize_text_segment (line 74) | def _tokenize_text_segment(self, text: str, speaker: int) -> Tuple[tor... method _tokenize_audio (line 102) | def _tokenize_audio(self, audio: torch.Tensor) -> Tuple[torch.Tensor, ... method _tokenize_segment (line 128) | def _tokenize_segment(self, segment: Segment) -> Tuple[torch.Tensor, t... method _decode_frames (line 150) | def _decode_frames(self, frames): method generate_stream (line 160) | def generate_stream( method generate (line 346) | def generate( class AudioStreamWriter (line 457) | class AudioStreamWriter: method __init__ (line 461) | def __init__(self, filename, sample_rate): method _writer_worker (line 473) | def _writer_worker(self): method add_chunk (line 505) | def add_chunk(self, chunk): method write_file (line 514) | def write_file(self): function load_csm_1b_local (line 536) | def load_csm_1b_local(model_path: str, device: str = "cuda", audio_num_c... function warmup_generator (line 597) | def warmup_generator(gen: Generator, warmup_text: str = "Hello, this is ... function load_csm_1b (line 733) | def load_csm_1b(device: str = "cuda") -> Generator: function stream_audio_to_wav (line 781) | def stream_audio_to_wav(filename, sample_rate): function generate_streaming_audio (line 820) | def generate_streaming_audio( FILE: llm_interface.py class LLMInterface (line 6) | class LLMInterface: method __init__ (line 7) | def __init__(self, model_path: str, max_tokens: int = 8192, n_threads:... method trim_to_last_sentence (line 33) | def trim_to_last_sentence(self, text: str) -> str: method generate_response (line 53) | def generate_response(self, system_prompt: str, user_message: str, con... method tokenize (line 91) | def tokenize(self, text: str) -> List[int]: method get_token_count (line 105) | def get_token_count(self, text: str) -> int: method batch_generate (line 116) | def batch_generate(self, prompts: List[Dict[str, str]], FILE: loadandmergecheckpoint.py function find_latest_checkpoint (line 19) | def find_latest_checkpoint(dir_path): function load_checkpoint_and_merge (line 31) | def load_checkpoint_and_merge(): FILE: lora.py class TrainingVisualizer (line 54) | class TrainingVisualizer: method __init__ (line 55) | def __init__(self, output_dir): method update (line 84) | def update(self, epoch, step, loss, lr, val_loss=None): method finalize (line 171) | def finalize(self): class LoRALinear (line 291) | class LoRALinear(nn.Module): method __init__ (line 292) | def __init__(self, in_features, out_features, r=32, alpha=64, dropout=... method forward (line 314) | def forward(self, x: torch.Tensor) -> torch.Tensor: function replace_linear_with_lora (line 323) | def replace_linear_with_lora(model: nn.Module, r=R, alpha=APLHA, dropout... function load_llama3_tokenizer (line 364) | def load_llama3_tokenizer(): class AudioTextPair (line 377) | class AudioTextPair: method load_audio (line 383) | def load_audio(self, sample_rate=24000) -> torch.Tensor: class CSMDataset (line 398) | class CSMDataset(Dataset): method __init__ (line 399) | def __init__(self, data_items, text_tokenizer, audio_tokenizer, device): method __len__ (line 406) | def __len__(self): method tokenize_text_segment (line 409) | def tokenize_text_segment(self, text: str, speaker: int): method tokenize_audio (line 417) | def tokenize_audio(self, audio: torch.Tensor): method __getitem__ (line 438) | def __getitem__(self, idx: int): function collate_fn (line 468) | def collate_fn(batch): function transcribe_audio_files (line 505) | def transcribe_audio_files(): function prepare_csm_model_for_training (line 578) | def prepare_csm_model_for_training(): function setup_model_caches (line 647) | def setup_model_caches(model, batch_size): class BridgingModule (line 657) | class BridgingModule(nn.Module): method __init__ (line 659) | def __init__(self, in_dim=2048, out_dim=1024): method forward (line 663) | def forward(self, x): function compute_loss_for_codebooks_single_pass (line 666) | def compute_loss_for_codebooks_single_pass( function single_pass_forward (line 715) | def single_pass_forward(model, bridging_module, target_tokens, target_ma... function calculate_validation_loss (line 766) | def calculate_validation_loss(model, bridging_module, dataset, device, m... function strip_bias_keys (line 804) | def strip_bias_keys(state_dict: dict) -> dict: function remove_lora_modules (line 816) | def remove_lora_modules(module: nn.Module) -> nn.Module: function merge_lora_layer (line 843) | def merge_lora_layer(lora_module: LoRALinear): function merge_lora_weights (line 856) | def merge_lora_weights(model: nn.Module): function finetune (line 862) | def finetune(model, dataset): function forward_and_loss (line 1015) | def forward_and_loss(model, bridging_module, batch, device): function main (line 1077) | def main(): FILE: main.py class Conversation (line 63) | class Conversation(Base): class CompanionConfig (line 75) | class CompanionConfig(BaseModel): function process_message_queue (line 130) | async def process_message_queue(): function load_reference_segments (line 143) | def load_reference_segments(config_data: CompanionConfig): function transcribe_audio (line 185) | def transcribe_audio(audio_data, sample_rate): function initialize_models (line 201) | def initialize_models(config_data: CompanionConfig): function on_speech_start (line 251) | def on_speech_start(): function on_speech_end (line 263) | def on_speech_end(audio_data, sample_rate): function process_pending_inputs (line 293) | def process_pending_inputs(): function process_user_input (line 316) | def process_user_input(user_text, session_id="default"): function model_worker (line 438) | def model_worker(cfg: CompanionConfig): function start_model_thread (line 481) | def start_model_thread(): function run_audio_generation (line 495) | async def run_audio_generation(text, output_file): function send_to_all_clients (line 499) | def send_to_all_clients(message: dict): function save_audio_and_trim (line 522) | def save_audio_and_trim(path, session_id, speaker_id, tensor, sample_rate): function add_segment (line 555) | def add_segment(text, speaker_id, audio_tensor): function preprocess_text_for_tts (line 644) | def preprocess_text_for_tts(text): function audio_generation_thread (line 664) | def audio_generation_thread(text, output_file): function handle_interrupt (line 887) | def handle_interrupt(websocket): function websocket_endpoint (line 982) | async def websocket_endpoint(websocket: WebSocket): function index (line 1120) | async def index(request: Request): function setup_page (line 1124) | async def setup_page(request: Request): function chat_page (line 1128) | async def chat_page(request: Request): function startup_event (line 1132) | async def startup_event(): function shutdown_event (line 1146) | async def shutdown_event(): function get_conversations (line 1152) | async def get_conversations(request: Request): function update_conversation (line 1161) | def update_conversation(conv_id): function delete_all_conversations (line 1172) | async def delete_all_conversations(): function delete_conversation (line 1184) | async def delete_conversation(conv_id: int): function crud_ui (line 1199) | async def crud_ui(request: Request): FILE: models.py function llama3_2_1B (line 12) | def llama3_2_1B() -> torchtune.modules.transformer.TransformerDecoder: function llama3_2_100M (line 27) | def llama3_2_100M() -> torchtune.modules.transformer.TransformerDecoder: function _prepare_transformer (line 47) | def _prepare_transformer(model): function _create_causal_mask (line 53) | def _create_causal_mask(seq_len: int, device: torch.device): function _index_causal_mask (line 56) | def _index_causal_mask(mask: torch.Tensor, input_pos: torch.Tensor): function _multinomial_sample_one_no_sync (line 68) | def _multinomial_sample_one_no_sync(probs): # Does multinomial sampling... function sample_topk (line 72) | def sample_topk(logits: torch.Tensor, topk: int, temperature: float): class ModelArgs (line 85) | class ModelArgs: class Model (line 93) | class Model( method __init__ (line 100) | def __init__(self, config: ModelArgs): method setup_caches (line 114) | def setup_caches(self, max_batch_size: int) -> torch.Tensor: method generate_frame (line 126) | def generate_frame( method reset_caches (line 180) | def reset_caches(self): method _embed_audio (line 184) | def _embed_audio(self, codebook: int, tokens: torch.Tensor) -> torch.T... method _embed_tokens (line 187) | def _embed_tokens(self, tokens: torch.Tensor) -> torch.Tensor: FILE: rag_system.py class RAGSystem (line 11) | class RAGSystem: method __init__ (line 12) | def __init__(self, db_path: str, model_name: str = "all-MiniLM-L6-v2",... method _initialize_db (line 40) | def _initialize_db(self): method _load_embedding_cache (line 70) | def _load_embedding_cache(self) -> Dict[str, np.ndarray]: method _save_embedding_to_cache (line 86) | def _save_embedding_to_cache(self, chunk_id: str, embedding: np.ndarray): method _load_conversations (line 107) | def _load_conversations(self): method _process_conversation (line 145) | def _process_conversation(self, conv_id: int, user_message: str, ai_me... method add_conversation (line 179) | def add_conversation(self, user_message: str, ai_message: str) -> int: method query (line 210) | def query(self, query_text: str, top_k: int = 3) -> List[Tuple[str, fl... method get_context (line 237) | def get_context(self, query_text: str, top_k: int = 3, threshold: floa... method _find_similar (line 264) | def _find_similar(self, query_embedding: np.ndarray, top_k: int) -> Li... method refresh (line 323) | def refresh(self): FILE: run_csm.py function load_prompt_audio (line 44) | def load_prompt_audio(audio_path: str, target_sample_rate: int) -> torch... function prepare_prompt (line 53) | def prepare_prompt(text: str, speaker: int, audio_path: str, sample_rate... function main (line 57) | def main(): FILE: setup.py function check_requirements (line 16) | def check_requirements(): function download_vad_model (line 41) | def download_vad_model(): function download_embedding_models (line 66) | def download_embedding_models(): function setup_directories (line 90) | def setup_directories(): function setup_database (line 116) | def setup_database(): function check_cuda (line 144) | def check_cuda(): function main (line 154) | def main(): FILE: static/app.js function showLoading (line 128) | function showLoading(show, message) { function getSelectedMic (line 154) | function getSelectedMic() { function getSelectedOutput (line 158) | function getSelectedOutput() { function populateAudioDevices (line 162) | async function populateAudioDevices() { function visualizeMic (line 193) | function visualizeMic(analyser, canvasId) { FILE: static/chat.js constant SESSION_ID (line 17) | const SESSION_ID = "default"; function createPermanentVoiceCircle (line 29) | function createPermanentVoiceCircle() { function showVoiceCircle (line 56) | function showVoiceCircle() { function hideVoiceCircle (line 61) | function hideVoiceCircle() { function showNotification (line 66) | function showNotification(msg, type='info'){ function addMessageToConversation (line 77) | function addMessageToConversation(sender,text){ function connectWebSocket (line 102) | function connectWebSocket() { function sendTextMessage (line 185) | function sendTextMessage(txt) { function resetAudioState (line 251) | function resetAudioState() { function clearAudioPlayback (line 271) | function clearAudioPlayback() { function requestInterrupt (line 344) | function requestInterrupt() { function handleWebSocketMessage (line 403) | function handleWebSocketMessage(d) { function queueAudioForPlayback (line 557) | function queueAudioForPlayback(arr, sr, genId = 0) { function queueAudioForPlayback (line 578) | function queueAudioForPlayback(arr, sr, genId = 0) { function processAudioPlaybackQueue (line 615) | function processAudioPlaybackQueue() { function playAudioChunk (line 684) | async function playAudioChunk(audioArr, sampleRate) { function startRecording (line 763) | async function startRecording() { function stopRecording (line 803) | function stopRecording() { function setupChatUI (line 826) | async function setupChatUI() { function initAudioLevelsChart (line 988) | function initAudioLevelsChart() { FILE: static/crud.js function loadConversations (line 22) | async function loadConversations() { function renderConversations (line 28) | function renderConversations(list) { FILE: test.py function load_audio (line 31) | def load_audio(audio_path): FILE: vad.py class VoiceActivityDetector (line 5) | class VoiceActivityDetector: method __init__ (line 6) | def __init__( method reset (line 28) | def reset(self) -> None: method process_audio_chunk (line 41) | def process_audio_chunk(self, audio_chunk: np.ndarray) -> bool: class AudioStreamProcessor (line 99) | class AudioStreamProcessor: method __init__ (line 100) | def __init__( method process_audio (line 133) | def process_audio(self, audio_chunk: np.ndarray): method reset (line 186) | def reset(self):