File size: 171,503 Bytes
70eeaf7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0718992
70eeaf7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0718992
70eeaf7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/barrel/aai/.venv/lib/python3.10/site-packages/pyannote/audio/core/io.py:43: UserWarning: torchaudio._backend.set_audio_backend has been deprecated. With dispatcher enabled, this function is no-op. You can remove the function call.\n",
      "  torchaudio.set_audio_backend(\"soundfile\")\n"
     ]
    }
   ],
   "source": [
    "import gradio as gr\n",
    "import numpy as np\n",
    "import torch\n",
    "import torchaudio\n",
    "from silero_vad import get_speech_timestamps, load_silero_vad\n",
    "import whisperx\n",
    "import openai\n",
    "import asyncio\n",
    "import edge_tts\n",
    "import gc\n",
    "import logging\n",
    "import time"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2024-09-23 13:50:24,408 - INFO - Using device: cuda\n",
      "2024-09-23 13:50:24,660 - INFO - Loaded Silero VAD model\n",
      "Lightning automatically upgraded your loaded checkpoint from v1.5.4 to v2.4.0. To apply the upgrade to your files permanently, run `python -m pytorch_lightning.utilities.upgrade_checkpoint ../.cache/torch/whisperx-vad-segmentation.bin`\n",
      "2024-09-23 13:50:24,994 - INFO - Loaded WhisperX model\n",
      "2024-09-23 13:50:24,994 - INFO - Set OpenAI API key\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "No language specified, language will be first be detected for each audio file (increases inference time).\n",
      "Model was trained with pyannote.audio 0.0.1, yours is 3.1.1. Bad things might happen unless you revert pyannote.audio to 0.x.\n",
      "Model was trained with torch 1.10.0+cu102, yours is 2.3.1+cu121. Bad things might happen unless you revert torch to 1.x.\n"
     ]
    }
   ],
   "source": [
    "# Configure logging\n",
    "logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')\n",
    "\n",
    "# Load Silero VAD model\n",
    "device = 'cuda' if torch.cuda.is_available() else 'cpu'\n",
    "logging.info(f'Using device: {device}')\n",
    "vad_model = load_silero_vad().to(device)  # Ensure the model is on the correct device\n",
    "logging.info('Loaded Silero VAD model')\n",
    "\n",
    "# Load WhisperX model\n",
    "whisper_model = whisperx.load_model(\"tiny\", device, compute_type=\"float16\")\n",
    "logging.info('Loaded WhisperX model')\n",
    "\n",
    "openai.api_key = \"\"\n",
    "logging.info('Set OpenAI API key')\n",
    "\n",
    "# TTS Voice\n",
    "TTS_VOICE = \"en-GB-SoniaNeural\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "import torchaudio\n",
    "import logging\n",
    "\n",
    "def check_vad(audio_data, sample_rate):\n",
    "    logging.info('Checking voice activity')\n",
    "    # Resample to 16000 Hz if necessary\n",
    "    target_sample_rate = 16000\n",
    "    if sample_rate != target_sample_rate:\n",
    "        resampler = torchaudio.transforms.Resample(orig_freq=sample_rate, new_freq=target_sample_rate)\n",
    "        audio_tensor = resampler(torch.from_numpy(audio_data))\n",
    "    else:\n",
    "        audio_tensor = torch.from_numpy(audio_data)\n",
    "    audio_tensor = audio_tensor.to(device)\n",
    "\n",
    "    # Log audio data details\n",
    "    logging.info(f'Audio tensor shape: {audio_tensor.shape}, dtype: {audio_tensor.dtype}, device: {audio_tensor.device}')\n",
    "\n",
    "    # Get speech timestamps with optimized parameters\n",
    "    speech_timestamps = get_speech_timestamps(\n",
    "        audio=audio_tensor,\n",
    "        model=vad_model,\n",
    "        sampling_rate=target_sample_rate,\n",
    "        min_speech_duration_ms=250,\n",
    "        min_silence_duration_ms=80,\n",
    "        speech_pad_ms=30\n",
    "    )\n",
    "    logging.info(f'Found {len(speech_timestamps)} speech timestamps')\n",
    "    return len(speech_timestamps) > 0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def transcript(audio_data, sample_rate):\n",
    "    logging.info('Transcribing audio')\n",
    "    # Resample to 16000 Hz if necessary\n",
    "    target_sample_rate = 16000\n",
    "    if sample_rate != target_sample_rate:\n",
    "        resampler = torchaudio.transforms.Resample(orig_freq=sample_rate, new_freq=target_sample_rate)\n",
    "        audio_data = resampler(torch.from_numpy(audio_data)).numpy()\n",
    "    else:\n",
    "        audio_data = audio_data\n",
    "\n",
    "    # Transcribe\n",
    "    batch_size = 16  # Adjust as needed\n",
    "    result = whisper_model.transcribe(audio_data, batch_size=batch_size)\n",
    "    text = result['segments'][0]['text']\n",
    "    logging.info(f'Transcription result: {text}')\n",
    "    # Clear GPU memory\n",
    "    del result\n",
    "    gc.collect()\n",
    "    if device == 'cuda':\n",
    "        torch.cuda.empty_cache()\n",
    "    return text"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "from openai import OpenAI\n",
    "\n",
    "openai_client = OpenAI(api_key='')\n",
    "\n",
    "def llm(text):\n",
    "    logging.info('Getting response from OpenAI API')\n",
    "    response = openai_client.chat.completions.create(\n",
    "        model=\"gpt-4o\",  # Updated to a more recent model\n",
    "        messages=[\n",
    "            {\"role\": \"system\", \"content\": \"You respond to the following transcript from the conversation that you are having with the user.\"},\n",
    "            {\"role\": \"user\", \"content\": text}  \n",
    "        ],\n",
    "        stream=True,\n",
    "        temperature=0.7,  # Optional: Adjust as needed\n",
    "        top_p=0.9,        # Optional: Adjust as needed\n",
    "    )\n",
    "    for chunk in response:\n",
    "        yield chunk.choices[0].delta.content"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "def tts_streaming(text_stream):\n",
    "    logging.info('Performing TTS')\n",
    "    buffer = \"\"\n",
    "    punctuation = {'.', '!', '?'}\n",
    "    for text_chunk in text_stream:\n",
    "        if text_chunk is not None:\n",
    "            buffer += text_chunk\n",
    "        # Check for sentence completion\n",
    "        sentences = []\n",
    "        start = 0\n",
    "        for i, char in enumerate(buffer):\n",
    "            if (char in punctuation):\n",
    "                sentences.append(buffer[start:i+1].strip())\n",
    "                start = i+1\n",
    "        buffer = buffer[start:]\n",
    "\n",
    "        for sentence in sentences:\n",
    "            if sentence:\n",
    "                communicate = edge_tts.Communicate(sentence, TTS_VOICE)\n",
    "                for chunk in communicate.stream_sync():\n",
    "                    if chunk[\"type\"] == \"audio\":\n",
    "                        yield chunk[\"data\"]\n",
    "    # Process any remaining text\n",
    "    if buffer.strip():\n",
    "        communicate = edge_tts.Communicate(buffer.strip(), TTS_VOICE)\n",
    "        for chunk in communicate.stream_sync():\n",
    "            if chunk[\"type\"] == \"audio\":\n",
    "                yield chunk[\"data\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# load audio to numpy array\n",
    "def load_audio(audio_path):\n",
    "    audio_data, sample_rate = torchaudio.load(audio_path)\n",
    "    audio_data = audio_data[0].numpy()\n",
    "    if audio_data.ndim > 1:\n",
    "        audio_data = np.mean(audio_data, axis=1)\n",
    "    return audio_data, sample_rate"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Testing the pipeline\n",
    "\n",
    "# 1. Load audio\n",
    "audio_path = 'audio.mp3'\n",
    "audio_data, sample_rate = load_audio(audio_path)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2024-09-23 13:50:49,248 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,253 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,494 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,495 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,498 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,506 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,507 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,511 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,518 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,519 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,523 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,531 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,532 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,535 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,543 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,543 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,546 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,557 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,558 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,561 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,569 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,570 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,573 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,581 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,582 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,585 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,593 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,593 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,595 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,604 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,605 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,607 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,616 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,617 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,619 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,628 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,629 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,632 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,640 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,641 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,644 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,651 - INFO - Found 0 speech timestamps\n",
      "2024-09-23 13:50:49,652 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,654 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,665 - INFO - Found 0 speech timestamps\n",
      "2024-09-23 13:50:49,665 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,669 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,678 - INFO - Found 0 speech timestamps\n",
      "2024-09-23 13:50:49,678 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,681 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,690 - INFO - Found 0 speech timestamps\n",
      "2024-09-23 13:50:49,691 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,693 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,703 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,704 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,707 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,718 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,719 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,722 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,731 - INFO - Found 0 speech timestamps\n",
      "2024-09-23 13:50:49,732 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,734 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,743 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,744 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,746 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,759 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,760 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,762 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,773 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,773 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,776 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,784 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,785 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,789 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,798 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,799 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,801 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,810 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,810 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,813 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,821 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,822 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,824 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,833 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,834 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,836 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,844 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,845 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,847 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,856 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,857 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,860 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,871 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,872 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,875 - INFO - Audio tensor shape: torch.Size([8000]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,883 - INFO - Found 1 speech timestamps\n",
      "2024-09-23 13:50:49,884 - INFO - Checking voice activity\n",
      "2024-09-23 13:50:49,887 - INFO - Audio tensor shape: torch.Size([644]), dtype: torch.float32, device: cuda:0\n",
      "2024-09-23 13:50:49,889 - INFO - Found 0 speech timestamps\n"
     ]
    }
   ],
   "source": [
    "chunk_size = 500  # ms\n",
    "chunk_size_samples = int(sample_rate * chunk_size / 1000)\n",
    "chunks = [audio_data[i:i + chunk_size_samples] for i in range(0, len(audio_data), chunk_size_samples)]\n",
    "\n",
    "# 2. Check voice activity\n",
    "voice_activity = [check_vad(chunk, sample_rate) for chunk in chunks]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2024-09-23 13:50:50,691 - INFO - Transcribing audio\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Warning: audio is shorter than 30s, language detection may be inaccurate.\n",
      "Detected language: en (0.99) in first 30s of audio...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2024-09-23 13:50:51,041 - INFO - Transcription result:  What's this the reporter tried to make a hit piece about Wu Kong is not happy. I wonder why? What a shock. Well wait a second. Should we get to the bottom of this?\n"
     ]
    }
   ],
   "source": [
    "text = transcript(audio_data, sample_rate)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "text = llm(text)\n",
    "tts_audio = tts_streaming(text)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2024-09-23 13:50:53,979 - INFO - Performing TTS\n",
      "2024-09-23 13:50:53,980 - INFO - Getting response from OpenAI API\n",
      "2024-09-23 13:50:54,236 - INFO - HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "\n",
       "                <audio  controls=\"controls\" >\n",
       "                    <source src=\"data:audio/wav;base64,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//NkxP8gk2ogzEmGKUhUJR+58O1MQQAlvGokRBhJi5IlKJFqI2u1UYy2UjJowZz1yFE6EdWkZdlGOiTJVKzarSpUtShqqqtAWaGXNTJmOOVrWawKU2s6XtsrVfqrFjHtYdIyql+zWoZcaoSyof0+6wVRl/UmY2VDCxy2cjXsblL/+oYCTLIzVfoDQpGXSaHV//NkxP0gK/og0kmGGQo2KFFEaSoBBOXLK5ccYkCiijyizE1EjXY04sy8d4SInGlFgQETDDiJxooSBkB6kiJxooCJoLllYHUMv//zJgoYEDR0cSBBQsBgg6Dr5MFBOTcNWCxy6TKGssjkyyy1DVrLI5MrVgYNHJlZQwJ0MmUMDBo5GrBQwJ0MjVgYNHIyZZLM//NkxP0gLAoVbDBGYYyZbKhkayWGRq1qORkyhoGDlitVXrVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxP8ka9GwABmGnVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxAAAAANIAAAAAExBTUVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVUIJuV7iTI5AUcwLGxvGPIBJQG1BQ2ACxqoxzZjG8C1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qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//NkxN4YgwEoDAgGgaqqqqqqqqpMQU1FMy4xMDCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//NkxHwAAANIAAAAAKqqqqqqqqpMQU1FMy4xMDCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//NkxHwAAANIAAAAAKqqqqqqqqpMQU1FMy4xMDCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//NkxHwAAANIAAAAAKqqqqqqqqpMQU1FMy4xMDCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//NkxHwAAANIAAAAAKqqqqqqqqpMQU1FMy4xMDCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//NkxHwAAANIAAAAAKqqqqqqqqpMQU1FMy4xMDCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq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ZS9zikZTYqKhFI2Ehl0lnCjV9ZVVgRoQl3YfrVydjiqMy10Y//NkxO8fI84UIGJGCUgKo14Wd81hXj/Dvm1dqfMHETlgsAgEAlmgpLXNI45pFj2ylAT2q/Ay7YUTGAl6FAQET9IMBMfsTMzGq/VL411XjMwYvaqWtWqqqsCgImH6lVWN3iqsZmNT2ONr9VfjMq+zUKAgQo/yY7t1S24xqArAIBJjoUTAwCJVV9mLjN7Hn/8Z//NkxPUgvDoQokhGQHXqqArqpMaqJSm+Ci/ChsVKK+EqCJSsssstiyyy2KCBggYQGDDBQwMEDCB7Fayo5//c2WWWWSyxUVE//+ioqKioYKGBggYQOCBBQwMEDCByIqKiov//ZZbLLLLZZZZbLLLL/2Wf//8ss/jKCsqWBgoYGCBo4IMFDAwQMIHBBgoYGCBh//NkxPUhS834IkmGEQOEBAwwMEDCBwkqqqDKaaaRFUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxPIgG9EEDBiHjVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV\" type=\"audio/wav\" />\n",
       "                    Your browser does not support the audio element.\n",
       "                </audio>\n",
       "              "
      ],
      "text/plain": [
       "<IPython.lib.display.Audio object>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from IPython.display import Audio\n",
    "from pydub import AudioSegment\n",
    "from io import BytesIO\n",
    "import base64\n",
    "\n",
    "# Combine audio chunk bytes\n",
    "audio_bytes = b''.join(tts_audio)\n",
    "\n",
    "# Play audio\n",
    "audio_segment = AudioSegment.from_file(BytesIO(audio_bytes), format=\"raw\", frame_rate=16000, channels=1, sample_width=2)\n",
    "\n",
    "Audio(audio_bytes, rate=16000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "np_audio = np.frombuffer(audio_bytes, dtype=np.int16)\n",
    "\n",
    "# export audio with numpy\n",
    "np_audio.tofile(\"output.wav\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# function to process audio input\n",
    "def process_audio_old(audio, state):\n",
    "    \"\"\"\n",
    "    Flow:\n",
    "    1. Sleep for 0.5 seconds to allow the audio buffer to accumulate\n",
    "    2. Check for voice activity\n",
    "    3. If voice activity is detected and mode is \"idle\":\n",
    "        - Set mode to \"listening\"\n",
    "    4. If voice activity is detected and mode is \"speaking\":\n",
    "        - Stop the llm and tts tasks\n",
    "        - Set mode to \"listening\"\n",
    "    5. If voice activity is detected and mode is \"listening\":\n",
    "        - If there's previous_no_vad_audio, add it to chunk_queue\n",
    "        - Start accumulating audio chunks in chunk_queue\n",
    "        - If the length of chunk_queue is greater than 3 seconds\n",
    "            - Get the first 2 seconds of audio from chunk_queue\n",
    "            - Run transcription on the first 2 seconds\n",
    "            - Store the transcription in the state\n",
    "            - Remove the first 2 seconds of audio from chunk_queue\n",
    "    6. If voice activity is not detected:\n",
    "        - If mode is \"listening\" and there's audio in chunk_queue\n",
    "            - Add the chunk to chunk_queue\n",
    "            - Set mode to \"processing\"\n",
    "            - Run transcription on the leftover audio in chunk_queue\n",
    "            - Store the transcription in the state\n",
    "            - Set the mode to \"processing\"\n",
    "        - If mode is \"processing\"\n",
    "            - Check if there's any leftover audio in chunk_queue\n",
    "                - If there is, run transcription on the leftover audio\n",
    "                - Store the transcription in the state\n",
    "            - Start LLM and TTS in the background\n",
    "            - Set mode to \"responding\"\n",
    "        - If mode is \"responding\"\n",
    "            - Get the audio byte chunks from TTS\n",
    "            - Output the full audio\n",
    "            - Set mode to \"idle\"\n",
    "        - If mode is \"idle\"\n",
    "            - do nothing\n",
    "    \n",
    "    Ex: Gradio Streaming Audio Example:\n",
    "    import gradio as gr\n",
    "    import numpy as np\n",
    "    import time\n",
    "\n",
    "    def add_to_stream(audio, instream):\n",
    "        time.sleep(1)\n",
    "        if audio is None:\n",
    "            return gr.update(), instream\n",
    "        if instream is None:\n",
    "            ret = audio\n",
    "        else:\n",
    "            ret = (audio[0], np.concatenate((instream[1], audio[1])))\n",
    "        return ret, ret\n",
    "\n",
    "\n",
    "    with gr.Blocks() as demo:\n",
    "        inp = gr.Audio(source=\"microphone\")\n",
    "        out = gr.Audio()\n",
    "        stream = gr.State()\n",
    "        clear = gr.Button(\"Clear\")\n",
    "\n",
    "        inp.stream(add_to_stream, [inp, stream], [out, stream])\n",
    "        clear.click(lambda: [None, None, None], None, [inp, out, stream])\n",
    "\n",
    "\n",
    "    if __name__ == \"__main__\":\n",
    "        demo.launch()\n",
    "    \"\"\"\n",
    "    \"\"\"old code:\n",
    "    time.sleep(0.5)\n",
    "    if audio is None:\n",
    "        return None, state\n",
    "\n",
    "    sample_rate, audio_data = audio\n",
    "    audio_data = np.array(audio_data, dtype=np.float32)\n",
    "\n",
    "    # Convert to mono if stereo\n",
    "    if audio_data.ndim > 1:\n",
    "        audio_data = np.mean(audio_data, axis=1)\n",
    "\n",
    "    # Check for voice activity\n",
    "    vad_result = check_vad(audio_data, sample_rate)\n",
    "    if vad_result:\n",
    "        logging.info('Voice activity detected')\n",
    "        # Voice activity detected\n",
    "        if state.get(\"previous_audio_chunk\") is not None:\n",
    "            state[\"audio_buffer\"].append(state[\"previous_audio_chunk\"])\n",
    "        state[\"audio_buffer\"].append(audio_data)\n",
    "        state[\"is_speaking\"] = True\n",
    "        state[\"previous_audio_chunk\"] = audio_data\n",
    "\n",
    "        # Update total speaking time\n",
    "        chunk_duration = len(audio_data) / sample_rate\n",
    "        state[\"total_speaking_time\"] += chunk_duration\n",
    "\n",
    "        # Start transcription after 3 seconds\n",
    "        if state[\"total_speaking_time\"] >= 3.0 and not state[\"transcription_started\"]:\n",
    "            logging.info('Starting transcription')\n",
    "            # Start transcribing the first 2 seconds\n",
    "            accumulated_audio = np.concatenate(state[\"audio_buffer\"])\n",
    "            first_two_seconds_samples = int(2.0 * sample_rate)\n",
    "            first_two_seconds_audio = accumulated_audio[:first_two_seconds_samples]\n",
    "\n",
    "            # Transcribe asynchronously\n",
    "            transcribed_text = transcript(first_two_seconds_audio, sample_rate)\n",
    "            state[\"transcription\"] += transcribed_text\n",
    "            state[\"transcription_started\"] = True\n",
    "\n",
    "            # Start LLM and TTS in the background\n",
    "            state[\"llm_task\"] = llm_and_tts(state[\"transcription\"], state)\n",
    "    else:\n",
    "        if state[\"is_speaking\"]:\n",
    "            logging.info('Voice activity ended')\n",
    "            # Voice activity just ended\n",
    "            # Process the accumulated audio\n",
    "            full_audio = np.concatenate(state[\"audio_buffer\"])\n",
    "            # Reset the state\n",
    "            state[\"audio_buffer\"] = []\n",
    "            state[\"is_speaking\"] = False\n",
    "            state[\"total_speaking_time\"] = 0.0\n",
    "            state[\"transcription_started\"] = False\n",
    "\n",
    "            # Transcribe the remaining audio\n",
    "            transcribed_text = transcript(full_audio, sample_rate)\n",
    "            state[\"transcription\"] += transcribed_text\n",
    "\n",
    "            # Start LLM and TTS if not already started\n",
    "            if not state.get(\"llm_task\"):\n",
    "                state[\"llm_task\"] = llm_and_tts(state[\"transcription\"], state)\n",
    "\n",
    "    # Check if there's audio to output\n",
    "    if state.get(\"tts_audio_chunks\"):\n",
    "        logging.info('Outputting audio')\n",
    "        # Collect audio chunks\n",
    "        audio_chunks = state[\"tts_audio_chunks\"]\n",
    "        state[\"tts_audio_chunks\"] = []\n",
    "        response_audio = b\"\".join(audio_chunks)\n",
    "        np_response_audio = np.frombuffer(response_audio, dtype=np.int16)\n",
    "        return (sample_rate, np_response_audio), state\n",
    "\n",
    "    # Collect the last chunk if it exists\n",
    "    if state.get(\"previous_audio_chunk\") is not None:\n",
    "        state[\"audio_buffer\"].append(state[\"previous_audio_chunk\"])\n",
    "\n",
    "    return None, state\n",
    "    \"\"\"\n",
    "    ...\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Function to process audio input\n",
    "def process_audio_chunk(audio, state):\n",
    "    if audio is None:\n",
    "        return None, state\n",
    "    if state is None:\n",
    "        state = {\n",
    "            'mode': 'idle',\n",
    "            'chunk_queue': [],\n",
    "            'transcription': '',\n",
    "            'previous_no_vad_audio': None,\n",
    "            'tts_audio_chunks': [],\n",
    "            'llm_task': None,\n",
    "            'instream': None,\n",
    "        }\n",
    "\n",
    "    sample_rate, audio_data = audio\n",
    "    audio_data = np.array(audio_data, dtype=np.float32)\n",
    "\n",
    "    # Convert to mono if stereo\n",
    "    if audio_data.ndim > 1:\n",
    "        audio_data = np.mean(audio_data, axis=1)\n",
    "\n",
    "    mode = state['mode']\n",
    "    chunk_queue = state['chunk_queue']\n",
    "    transcription = state['transcription']\n",
    "    previous_no_vad_audio = state['previous_no_vad_audio']\n",
    "    tts_audio_chunks = state['tts_audio_chunks']\n",
    "    llm_task = state['llm_task']\n",
    "    instream = state['instream']\n",
    "\n",
    "    # Check for voice activity\n",
    "    vad_result = check_vad(audio_data, sample_rate)\n",
    "\n",
    "    if vad_result:\n",
    "        logging.info(f'Voice activity detected in mode: {mode}')\n",
    "        if mode == 'idle':\n",
    "            mode = 'listening'\n",
    "        elif mode == 'speaking':\n",
    "            # Stop llm and tts tasks\n",
    "            if llm_task and llm_task.is_alive():\n",
    "                # Implement task cancellation logic if possible\n",
    "                logging.info('Stopping LLM and TTS tasks')\n",
    "                # Since we cannot kill threads directly, we need to handle this in the tasks\n",
    "                state['stop_signal'] = True\n",
    "                llm_task.join()\n",
    "            mode = 'listening'\n",
    "    \n",
    "    if vad_result:\n",
    "        if mode == 'listening':\n",
    "            if previous_no_vad_audio is not None:\n",
    "                chunk_queue.append(previous_no_vad_audio)\n",
    "                previous_no_vad_audio = None\n",
    "            # Accumulate audio chunks\n",
    "            chunk_queue.append(audio_data)\n",
    "            # Calculate the length of chunk_queue in seconds\n",
    "            total_samples = sum(len(chunk) for chunk in chunk_queue)\n",
    "            total_duration = total_samples / sample_rate\n",
    "            if total_duration > 3.0:\n",
    "                # Get the first 2 seconds of audio\n",
    "                first_two_seconds_samples = int(2.0 * sample_rate)\n",
    "                accumulated_audio = np.concatenate(chunk_queue)\n",
    "                first_two_seconds_audio = accumulated_audio[:first_two_seconds_samples]\n",
    "                # Run transcription on the first 2 seconds\n",
    "                transcribed_text = transcript(first_two_seconds_audio, sample_rate)\n",
    "                transcription += transcribed_text\n",
    "                # Remove the first 2 seconds from chunk_queue\n",
    "                remaining_audio = accumulated_audio[first_two_seconds_samples:]\n",
    "                chunk_queue = [remaining_audio] if len(remaining_audio) > 0 else []\n",
    "        elif mode == 'speaking':\n",
    "            # Continue accumulating audio chunks\n",
    "            chunk_queue.append(audio_data)\n",
    "    else:\n",
    "        logging.info(f'No voice activity detected in mode: {mode}')\n",
    "        if mode == 'listening' and chunk_queue:\n",
    "            # Add the chunk to chunk_queue\n",
    "            chunk_queue.append(audio_data)\n",
    "            # Run transcription on leftover audio in chunk_queue\n",
    "            accumulated_audio = np.concatenate(chunk_queue)\n",
    "            transcribed_text = transcript(accumulated_audio, sample_rate)\n",
    "            transcription += transcribed_text\n",
    "            # Clear chunk_queue\n",
    "            chunk_queue = []\n",
    "            mode = 'processing'\n",
    "            # Start LLM and TTS in the background\n",
    "            if not llm_task or not llm_task.is_alive():\n",
    "                state['stop_signal'] = False\n",
    "                llm_task = threading.Thread(target=llm_and_tts, args=(transcription, state))\n",
    "                llm_task.start()\n",
    "        elif mode == 'processing':\n",
    "            # Wait for LLM and TTS to finish\n",
    "            if llm_task and not llm_task.is_alive():\n",
    "                mode = 'responding'\n",
    "        elif mode == 'responding':\n",
    "            # Get the audio byte chunks from TTS\n",
    "            if tts_audio_chunks:\n",
    "                logging.info('Outputting audio response')\n",
    "                # Collect audio chunks\n",
    "                response_audio = b\"\".join(tts_audio_chunks)\n",
    "                np_response_audio = np.frombuffer(response_audio, dtype=np.int16)\n",
    "                \n",
    "                if instream is None:\n",
    "                    instream = np_response_audio\n",
    "                else:\n",
    "                    instream = np.concatenate((instream, np_response_audio))\n",
    "                \n",
    "                # Clear tts_audio_chunks\n",
    "                tts_audio_chunks.clear()\n",
    "                # Reset transcription for next interaction\n",
    "                transcription = ''\n",
    "                # Set mode to \"idle\"\n",
    "                mode = 'idle'\n",
    "                \n",
    "                # Update state\n",
    "                state.update({\n",
    "                    'mode': mode,\n",
    "                    'chunk_queue': chunk_queue,\n",
    "                    'transcription': transcription,\n",
    "                    'previous_no_vad_audio': previous_no_vad_audio,\n",
    "                    'tts_audio_chunks': tts_audio_chunks,\n",
    "                    'llm_task': None,\n",
    "                    'instream': instream\n",
    "                })\n",
    "                return (sample_rate, instream), state\n",
    "        elif mode == 'idle':\n",
    "            # Do nothing\n",
    "            pass\n",
    "        else:\n",
    "            # Store the audio when no VAD is detected\n",
    "            previous_no_vad_audio = audio_data\n",
    "\n",
    "    # Update state\n",
    "    state.update({\n",
    "        'mode': mode,\n",
    "        'chunk_queue': chunk_queue,\n",
    "        'transcription': transcription,\n",
    "        'previous_no_vad_audio': previous_no_vad_audio,\n",
    "        'tts_audio_chunks': tts_audio_chunks,\n",
    "        'llm_task': llm_task,\n",
    "        'instream': instream\n",
    "    })\n",
    "\n",
    "    return None, state\n",
    "\n",
    "# Initialize the state\n",
    "initial_state = {\n",
    "    'mode': 'idle',\n",
    "    'chunk_queue': [],\n",
    "    'transcription': '',\n",
    "    'previous_no_vad_audio': None,\n",
    "    'tts_audio_chunks': [],\n",
    "    'llm_task': None,\n",
    "    'instream': None,\n",
    "}\n",
    "\n",
    "# Create Gradio interface\n",
    "with gr.Blocks() as demo:\n",
    "    gr.Markdown(\"## Voice-Activated Transcription and Response System\")\n",
    "    audio_input = gr.Audio(sources=\"microphone\", type=\"numpy\", streaming=True)\n",
    "    state = gr.State(initial_state)\n",
    "    audio_output = gr.Audio(label=\"Response Audio\", autoplay=True)\n",
    "    audio_input.stream(process_audio, [audio_input, state], [audio_output, state])\n",
    "\n",
    "if __name__ == \"__main__\":\n",
    "    logging.info('Launching Gradio interface')\n",
    "    demo.launch()\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": ".venv",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}