{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "147aea9e",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "%matplotlib inline\n",
    "\n",
    "import os\n",
    "import json\n",
    "import shutil\n",
    "\n",
    "import portion\n",
    "import tempfile\n",
    "\n",
    "from suno_utils.utils.conversion import (\n",
    "    convert_audio,\n",
    "    get_audio_dur_s,\n",
    "    get_audio_slice,\n",
    "    read_safe_wav,\n",
    "    write_wav,\n",
    ")\n",
    "from suno_utils.datasets.supreme_court.slicer import _get_vad_gaps"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3b5250a0",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "d56235fa",
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "FILE_PATH = \"/home/ubuntu/code/meets/output.wav\"\n",
    "#FILE_PATH = \"/my/path.mp3\"\n",
    "SAMPLE_RATE = 16_000"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "59f43d83",
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "with tempfile.TemporaryDirectory() as temp_dir:\n",
    "    # create wav file of known sample rate\n",
    "    tmp_vad_wav_fp = temp_dir + FILE_PATH.split(\"/\")[-1].split(\".\")[0] + \".wav\"\n",
    "    convert_audio(FILE_PATH, tmp_vad_wav_fp, sample_rate=SAMPLE_RATE)\n",
    "    audio_bytes = read_safe_wav(tmp_vad_wav_fp, sample_rate=SAMPLE_RATE)\n",
    "    audio_dur_s = get_audio_dur_s(tmp_vad_wav_fp)\n",
    "    # TODO: use code from utils.notebook to do this as array instead of temp file\n",
    "    # TODO: create higher sample_rate bytes for slicing if available\n",
    "\n",
    "    \n",
    "# find pauses\n",
    "gap_intervals = _get_vad_gaps(audio_bytes)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "fa768fda",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[5.3,5.78)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "gap_intervals[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "39ca6b92",
   "metadata": {},
   "outputs": [],
   "source": [
    "# get valid slice intervals\n",
    "min_dur_s = 2.0\n",
    "max_dur_s = 15.0\n",
    "slice_intervals = []\n",
    "offs_s = gap_intervals.lower\n",
    "for _ in range(int(audio_dur_s // min_dur_s) + 1):\n",
    "    if audio_dur_s - offs_s <= min_dur_s:\n",
    "        break\n",
    "    gaps_found = gap_intervals & portion.closedopen(offs_s + min_dur_s, offs_s + max_dur_s)\n",
    "    if gaps_found.empty:\n",
    "        remaining_interval = (gap_intervals & portion.closedopen(offs_s + min_dur_s, np.inf))\n",
    "        if not remaining_interval.empty:\n",
    "            offs_s = remaining_interval.lower\n",
    "            continue\n",
    "        break\n",
    "    slice_intervals.append((offs_s, gaps_found.upper))\n",
    "    offs_s = gaps_found.upper\n",
    "    \n",
    "\n",
    "# create byte slice objects\n",
    "slices = []\n",
    "for start_s, end_s in slice_intervals:\n",
    "    slice_audio_bytes = get_audio_slice(\n",
    "        audio_bytes, from_s=start_s, to_s=end_s, sample_rate=SAMPLE_RATE\n",
    "    )\n",
    "    slices.append((slice_audio_bytes, (start_s, end_s)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "ee18c012",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "bytes"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(slices[0][0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "c9efbd19",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(5.3, 18.36)"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "slices[0][1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "8bbe6038",
   "metadata": {},
   "outputs": [],
   "source": [
    "from suno_utils.utils.notebook import play_audio"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "71c2a224",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "                    <audio controls>\n",
       "                        <source src=\"data:audio/mpeg;base64,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\" type=\"audio/mpeg\"/>\n",
       "                        Your browser does not support the audio element.\n",
       "                    </audio>\n",
       "                  "
      ],
      "text/plain": [
       "<pydub.audio_segment.AudioSegment at 0x7f75d9b926a0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "play_audio(slices[55][0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "6af74234",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "audio_lens = [s[1][1] - s[1][0] for s in slices]\n",
    "audio_lens = pd.Series(audio_lens)\n",
    "audio_lens.hist(bins=30)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "425eb731",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9298838920504986"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "audio_lens.sum() / audio_dur_s"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "3bed459b",
   "metadata": {},
   "outputs": [],
   "source": [
    "data_dir = \"/home/ubuntu/code/glockenspiel/audio-labeler/data/slices2\"\n",
    "all_files = []\n",
    "for bts, interval in slices:\n",
    "    st, ed = interval\n",
    "    fname = \"{0:08.2f}__to__{0:08.2f}\".format(st, ed).replace(\".\", \"-\") + \".wav\"\n",
    "    fpath = os.path.join(data_dir, fname)\n",
    "    with open(fpath, \"wb\") as fi:\n",
    "        write_wav(fi, bts)\n",
    "    all_files.append(fpath)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "d827ea04",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "176"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(all_files)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "f77e9d70",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'/home/ubuntu/code/glockenspiel/audio-labeler/data/slices2/01142-64__to__01142-64.wav'"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "all_files[81]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "18f3b201",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[NeMo W 2022-03-22 22:59:31 optimizers:55] Apex was not found. Using the lamb or fused_adam optimizer will error out.\n",
      "################################################################################\n",
      "### WARNING, path does not exist: KALDI_ROOT=/mnt/matylda5/iveselyk/Tools/kaldi-trunk\n",
      "###          (please add 'export KALDI_ROOT=<your_path>' in your $HOME/.profile)\n",
      "###          (or run as: KALDI_ROOT=<your_path> python <your_script>.py)\n",
      "################################################################################\n",
      "\n"
     ]
    }
   ],
   "source": [
    "\n",
    "\n",
    "import nemo\n",
    "import nemo.collections.asr as nemo_asr\n",
    "import tqdm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "8f10bc31",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[NeMo I 2022-03-22 23:27:40 cloud:66] Downloading from: https://api.ngc.nvidia.com/v2/models/nvidia/nemo/stt_en_conformer_ctc_large/versions/1.6.0/files/stt_en_conformer_ctc_large.nemo to /home/ubuntu/.cache/torch/NeMo/NeMo_1.7.2/stt_en_conformer_ctc_large/010120d9959425c7862c9843960b3235/stt_en_conformer_ctc_large.nemo\n",
      "[NeMo I 2022-03-22 23:28:02 common:704] Instantiating model from pre-trained checkpoint\n",
      "[NeMo I 2022-03-22 23:28:05 mixins:146] Tokenizer SentencePieceTokenizer initialized with 128 tokens\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[NeMo W 2022-03-22 23:28:05 modelPT:148] If you intend to do training or fine-tuning, please call the ModelPT.setup_training_data() method and provide a valid configuration file to setup the train data loader.\n",
      "    Train config : \n",
      "    manifest_filepath: /data/NeMo_ASR_SET/English/v2.0/train/tarred_audio_manifest.json\n",
      "    sample_rate: 16000\n",
      "    batch_size: 32\n",
      "    shuffle: true\n",
      "    num_workers: 8\n",
      "    pin_memory: true\n",
      "    use_start_end_token: false\n",
      "    trim_silence: false\n",
      "    max_duration: 20.0\n",
      "    min_duration: 0.1\n",
      "    shuffle_n: 2048\n",
      "    is_tarred: true\n",
      "    tarred_audio_filepaths: /data/NeMo_ASR_SET/English/v2.0/train/audio__OP_0..4095_CL_.tar\n",
      "    \n",
      "[NeMo W 2022-03-22 23:28:05 modelPT:155] If you intend to do validation, please call the ModelPT.setup_validation_data() or ModelPT.setup_multiple_validation_data() method and provide a valid configuration file to setup the validation data loader(s). \n",
      "    Validation config : \n",
      "    manifest_filepath:\n",
      "    - /data/ASR/LibriSpeech/librispeech_withsp2/manifests/librivox-dev-other.json\n",
      "    - /data/ASR/LibriSpeech/librispeech_withsp2/manifests/librivox-dev-clean.json\n",
      "    - /data/ASR/LibriSpeech/librispeech_withsp2/manifests/librivox-test-other.json\n",
      "    - /data/ASR/LibriSpeech/librispeech_withsp2/manifests/librivox-test-clean.json\n",
      "    sample_rate: 16000\n",
      "    batch_size: 16\n",
      "    shuffle: false\n",
      "    num_workers: 8\n",
      "    pin_memory: true\n",
      "    use_start_end_token: false\n",
      "    is_tarred: false\n",
      "    tarred_audio_filepaths: na\n",
      "    \n",
      "[NeMo W 2022-03-22 23:28:05 modelPT:161] Please call the ModelPT.setup_test_data() or ModelPT.setup_multiple_test_data() method and provide a valid configuration file to setup the test data loader(s).\n",
      "    Test config : \n",
      "    manifest_filepath:\n",
      "    - /data/ASR/LibriSpeech/librispeech_withsp2/manifests/librivox-test-other.json\n",
      "    - /data/ASR/LibriSpeech/librispeech_withsp2/manifests/librivox-dev-clean.json\n",
      "    - /data/ASR/LibriSpeech/librispeech_withsp2/manifests/librivox-dev-other.json\n",
      "    - /data/ASR/LibriSpeech/librispeech_withsp2/manifests/librivox-test-clean.json\n",
      "    sample_rate: 16000\n",
      "    batch_size: 16\n",
      "    shuffle: false\n",
      "    num_workers: 8\n",
      "    pin_memory: true\n",
      "    use_start_end_token: false\n",
      "    is_tarred: false\n",
      "    tarred_audio_filepaths: na\n",
      "    \n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[NeMo I 2022-03-22 23:28:05 features:255] PADDING: 0\n",
      "[NeMo I 2022-03-22 23:28:05 features:272] STFT using torch\n",
      "[NeMo I 2022-03-22 23:28:06 save_restore_connector:157] Model EncDecCTCModelBPE was successfully restored from /home/ubuntu/.cache/torch/NeMo/NeMo_1.7.2/stt_en_conformer_ctc_large/010120d9959425c7862c9843960b3235/stt_en_conformer_ctc_large.nemo.\n"
     ]
    }
   ],
   "source": [
    "asr_model = nemo_asr.models.EncDecCTCModelBPE.from_pretrained(model_name=\"stt_en_conformer_ctc_large\").cpu()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "96aefc30",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "e09e9731c3c8408a9df41ac6e833cc25",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Transcribing:   0%|          | 0/44 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "176\n",
      "CPU times: user 4min 24s, sys: 18.1 s, total: 4min 42s\n",
      "Wall time: 1min 11s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "all_transcripts = asr_model.transcribe(paths2audio_files=all_files)\n",
    "all_transcripts = all_transcripts\n",
    "print(len(all_transcripts))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "aa48a3bd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "176"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(all_files)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "73b8ea59",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['and and he would think about the content they could they could use and  and i mean we found a person that would that seemed to be at the at at at least somewhat the right place right like kind of',\n",
       " 'his job but within that that sort of responsibility what we were proposing was still totally new to them which i think is mind blowing',\n",
       " \"because also the people that are that high if anything they're academic so most extreme case they're going to try to get google to do basically what what bi dou was doing right that they say like all right let's collect all the data or somethingthink it's going to be some academic approach not a like\",\n",
       " \"we got to get the n b c c o you know on a call to then convince them that we can license their data but like it's just but that's the beauty right if we can if we can be you know like make the communication there and\",\n",
       " \"actually the product in between like suddenly it's possible yeah much better th yeah he seems much more\",\n",
       " 'friendly with abi like it felt much more genuine to have the conversation you know what can we do to you know to arm you to have that conversation well read like with abi there was definitely a  little bit of like posturing or like you know',\n",
       " \"you know what's the percentage like yeah ian some of that is like a counter party variability but like uh i think not pervians uh but we're provan  so definitely yeah\",\n",
       " \"i i also think at the beginning by the way i think he may have said something to the effect that his job is like a swibart operator is to find right people to for us to talk to which is which i mean that's good maybe he actually finds us to de\",\n",
       " 'the best outcome here is he prompts us to the right person to talk him yet didn you miscatch the um like their coverage stuff what he was saying on like content versus monetization modl',\n",
       " \"that it's done by by distribution uh it's done by um so it's he has access to all like more\",\n",
       " \"his content is a silod to film his content is silod to transaction and based monetization um so you have it's like a ava tbon esva buckets i was talking about this morning\",\n",
       " \"and he's t bod which actually is like i think good because we would monetize a his dollar per hour ostensibly and like that's kind of like transaction base this this bill\",\n",
       " 'uh we were to get i think more like a subscription oup for training data in which case like maybe they would like be thiss like more in like a a streaming derivative and that would fall into like more of a peacock worle but like',\n",
       " 'the way i understood that is like some of the content that he has the ability to license also falls into like the spod or peacock side of the house',\n",
       " \"but it's just like he he monetizes it differently like for example on like prime video where you pay roug ninety nine to rent a video like that's ten um even though the same video might be on car \",\n",
       " \"so very interestingly that's that's super good for us to know because like we actually have a few shops it like the content isn't the the constant it's it's more like you\",\n",
       " 'and we caar about the content on alimnotas and so we god a few shots at it too mm one one thing he mentioned which is not amazing is that ah when they license stuff',\n",
       " \"you know i was afraid it would be because i was a little bit worried that you know with all these licensing deals in place in the end you know it's just too easy for people to get that data once you know that that is sort of a thing right but but if if these licensing contracts are actually\",\n",
       " \"relatively stringent that means it'll in the end boil down to the actual production company right which i think that is good for us because then we just need to make the right like approach the right companies for the right stuff and we have a competitive advantage by having these people signed up\",\n",
       " \"also it's not as though they don't own any compent like they own plenty of content right right right yeah exactly yeah i thought that guilds were the most concerning thing that you said  gi\",\n",
       " \"yeah actors guild screenwriters guild oh yeah that that's right yeah that was a little bit concerning you know um but oh and then yeah region specific was a little suboptimal but um\",\n",
       " \"that that was suboptimal but also interesting in a way right because maybe that's a wave that we could sort of sort of ride on right like maybe we could say that like not only this is a new vertical but it sort of like helps you bridge those gaps because we would\",\n",
       " \"you know manage to to do this stuff globally like without you having to like figure out how to like break contracts with existing local you know vendors or whatever like our thing would be global basically like maybe that's a wave we can actually write on\",\n",
       " \"yeah and i i was also wondering if you was referring to to like the weird uh sky stuff 'cause they own sky which they haven't flod rolled in n b c and like of course that's like very heavy\",\n",
       " \"a i i also think it's itss it's not a huge problem like we're going to be start like let's say we only had u s in canada it's plenty accent diversity that's actually probably plenty of accent there\",\n",
       " \"you know not the u s right i i'll in'll see that as a issue us think we should time box sen in this house so we don't any ourselve sday sday why not so yeah i think that's right yeah\",\n",
       " \"i i like it's it i don't know it's harder to push when we don't move fast enough yeah let's not let's get it out today because it shouldn't actually be that much work we have all the compience yeah i think we need to change the uh\",\n",
       " 'yeah cool uh okay what else for a and e i guess we give it another at least like day or two or so',\n",
       " \"okay and he said friday which means monday and's all plenty of tuesday yeah all right thats good um and then on other data um i want to so i said\",\n",
       " \"i i'm going to actually just speak out me haanocks for grabbing one of our videos and labeling it\",\n",
       " 'we can produce an hour of content or whatever to se that learn we noble  weu transcrible y like i will transcribe it uh if you want to health cool ptterm but but dont know obviously no pressure um and then i think',\n",
       " 'because that will once we see what that process is like i also w like we can compare that to turkey to',\n",
       " \"uh the professional transcription service whatever it is and then we can be thinking about like okay now what is the data that's actually going to be let's say most impactied for someone working in a call center or something like that that makes sense\",\n",
       " \"yup yeah yeah i mean so far we haven't found i think anything that's like obviously you know good and legal to use and just unlabeled um\",\n",
       " \"gar what i claim that b if call centers is a big vertical i that that's not a that's a i think an easy claim i claim that the phone call nature of it is\",\n",
       " 'not the most important thing and the most important thing that they will find useful is the dialogue and content inu like the the the cadence of the dialogue go back and forth and the things that are talked about would you agree with that',\n",
       " \"i don't know if it's that well worked out to be honest because whenever i've read papers about call center stuff it's a combination of a lot of things and it like it is low quality cause you usually have eight killohurtz pone lines um you um\",\n",
       " \"you tend to have like very like like often people like take these call at least from the ones that i've listened to most people call from their cell phones\",\n",
       " \"um which means there's shit ton of interruptions um like there's a lot of like om i i'm sorry what can you spell that you know it's just it's a very particular type of um conversation\",\n",
       " \"my my impression is like ain'ight killerherts we should be able to at least take it in augmentations or something like that but like the most important thing to get right is like the words that are being said and and the cadence of the dialogue sure yeah\",\n",
       " \"it's like it's not the same as the ts call those are longer form it's not even really the same as this call i havean\",\n",
       " \"i thought about this a lot and like like other than actual call center calls i've never heard anything that sounds even remotely like it it's really hard like listening to actual call center calls i barely understand anything like they're really hard\",\n",
       " 'like the skes examples remember when i listened to them i was like youse sound like fucking at zereal examples like scribe got like zero wr or like a hundred percent wr like it was it was really really tough',\n",
       " \"like i don't even know how to transcribe many of them because they're they were so like talking over each other\",\n",
       " \"which is why like even the s and p data like even the s and p callsent the data was so juicy it's just it's just a different style it's like shit conversations with strong accents over bad phone lines in a very high\",\n",
       " \"environment with people being somewhat emotional like it's it's very it's very very tough some of those examples are\",\n",
       " \"impossible for any human i i i claim that they they were like right like like that that they're not real that's\",\n",
       " \"like it's it's it's like somebody crumpling a paper and thinking about the number two and they're going to label that as the number it's ridiculous\",\n",
       " \"like the the the digit recognition right where like you look at some of them and you're like that's not i mean i understand that the algorithm ren't this but i i would dispute that\",\n",
       " \"it's like calling it's like callingu juice it's just not is um so in terms of getting our hands on de we can\",\n",
       " \"or i mean le's uh afect it some the derived paradon should we consider just collecting as well as a means of of getting data\",\n",
       " \"i would say yes won't we figure out what to collect why won't we figure out and that maybe that's that's the work y nes to be done as we should be thinking about exactly what is the icular data st the different will lie and only whn can we figure out\",\n",
       " 'right i mean in in in realistically speaking right like collection',\n",
       " \"to me seems the right risk level if it's if it's a consulting project basically right which is why i was kind of excited about this honest opportunity right because even if it's at cost or even if it's\",\n",
       " \"niche or even if it's small it somehow it it feels right to only do this for a for a consulting project first if you can do the\",\n",
       " \"do stuff from between and then transcribe the utterances to like also have like not only a spatial audio corpus but like a i know we don't have expertise in that space but\",\n",
       " \"te what i mean  and there's all the weird stuff with like distances and so i don't know if that's the right answer but like  whether it's between sanas alto\",\n",
       " \"so it then maybe the the best use of my time is to convince somebody to let us uh collect something at cost i think so i think the right move here is to basically be like look we want to move in that space we're willing to do this at like you know like\",\n",
       " \"ro asked the snus guys but i doubt they're going to say yes they also seem very busy right now and they just sent singing housing their data collection my best guess now is that's mosaic because they're six people but\",\n",
       " \"i don't know because we would need enough data to make it worth it for them to bring their a sr in house i can bing back resta as well now that they have money um that's really funny that this guy turns as we lo\",\n",
       " 'really that is funny yeah i actually i i i saw yesterday i must have somehow gotten this at a time when when like like i had like som something else going on or so but like i saw this little',\n",
       " 'letter that i think he gave me probably when he left i think he wrote some letters right to people when when when he left or so like cards um but anyway i found this',\n",
       " \"oh i see i told you that oh okay but i just forgot did you read it no it's handwriting s well anyway it was very very sweet it was it was very cute\",\n",
       " \"o you it's not a letter for me it's a letter forro you i'm not going to read your your at all\",\n",
       " 'well anyway i mean he was just like very very thankful and like saying that like basically all of his success at caensu was based on the stuff that i did like for like link and all of that stuff but anyway so he he would definitely be an awesome hire at some point so i spoke to m that',\n",
       " \"he's probably my guess is he'll stay another year at ubus and start something\",\n",
       " \"but maybe not maybe we you know if when i think we could get him he's so like i i'm not sure and i get the feeling he'll start something with this guy from press that i spoke to but maybe oh interesting to join us\",\n",
       " \"maybe we could get both interesting yeah i mean let's let's keep talking to them they cose\",\n",
       " \"okay so so the okay my views then are convince somebody to let us collect something at cost and i do want i still think it'll be really helpful for us to see the whole pipe wine labeling um\",\n",
       " \"yop goway i assume you want to take this step but let me know what what if any help you d want there um 'cause that obviously that's more important or certainly more burning and um\",\n",
       " \"yeah what uh what else in terms of other corporate so i think the sourcing idea is a good one which we should ideally start as a consulting project right so let's just see how far we can get there um what about other\",\n",
       " \"other data should we just keep looking around for data should we do the new zealand parliament should we not do that yet because we haven't heard back yet from the australian accent thing\",\n",
       " \"or should we try to do some of the smaller stuff like the i don't know like the high school videos or something like that um i can keep pressing like i just hos people on the drive side or like existing porro side\",\n",
       " \"well it's not it's well the the the audio is existing right we would still have to label it dred 'cause it's not transcribed\",\n",
       " \"yeah well but it's different it it's like in my head it's like you we cold do if we take something fully baked right the best guess so far that we have is basically uh new zealand parliament\",\n",
       " \"uh maybe a little bit more of an interesting corpus just because it's it's more exccent there's a sorry there's a ranch i have to throw in there a lot of their videos are hosted on youtube so maybe we think that's okay i'm i'm fine with that if you decide\",\n",
       " \"i think it is to be honest i also also let me ask you if i scrape something from like parl dot n z um but what i'm really scraping is an iframe within youtube video wor is that\",\n",
       " \"well you'd still end up scraping it from you too but but but i i like don't know that when i'm collecting it like when i go to their website i'm not agreeing to you i'm agreeing to their trips\",\n",
       " \"like if pudo ipramee from some website with ridiculous terms nose well i mean first of all if it's i iframe you know like you'll end up downloading it from you'll to a bread um like you're sorry\",\n",
       " \"i mean even even even writing the code you'll you'll well whatever there there's this this thing in german i don't know what it's called uh in english but like n non knowing doesn't protect you from from from guilt\",\n",
       " \"um it's like saying i din't know it was illegal to shoot anyone but uh\",\n",
       " \"fuck you large tech company we've got authorization from the copyright owner who just clicked the button you should be thankful if they e'ven upload their stuff onto your website we got authorization from them to use their content\",\n",
       " \"worrying you that much i think uh yeah think that icebom is the younly one i think like there's there's benefits to a buiring a audio at this point\",\n",
       " \"oh i i that's the kind of obvious to say but even without transcripts and just like getting audio through the pyplines where we like know we can at least use the audio yeah this is valuable because rese tu\",\n",
       " 'those are assets like have we um have we decided like we will not use nonport stenography like sor of example like the mopos like',\n",
       " 'i think i think for now like unless we have like some you know unless we have legal power to start like i think this will require at the very least like a lot of legal effort',\n",
       " \"even even before them we're going to like chew on whether even if the were illlegal like w right well yeah i mean as in like i think\",\n",
       " \"like for example workers cap stuff it's probably not okay to use right like i i could see us finding a niche that would be okay to use maybe bankruptcy is okay to use uh\",\n",
       " \"i don't know you know maybe some like business versus business thing or so maybe a union thing like i could see us finding something but then we still run into the the legal issue right\",\n",
       " \"i don't know on the legal srod but the the savery side uh yeah well what do you think about the savery side i'm fine of the ras and i more renegade on on like\",\n",
       " \"i wouldn't i would't ld like advertising a but for some like one off sales to like gauge traction if i was certain that it was legal i would be i'm willing to push like the envelope on like\",\n",
       " \"sa cer sure uh yeah i mean if yeah if we're really certain that it's legal then i'ld be down to\",\n",
       " \"thinking about you know what parts of it we can still you know filter it or whatever and we would not be publicly distributing it we would only be doing it as a as a data setre company like yeah i mean that that's\",\n",
       " \"u and martin we're not going fure that's right that's right i think the i think the whole court stuffs paused until we have some you know some lawyer with a lot of expertise\",\n",
       " \"will we pay a bunch of money to spend some time on actually figuring this stuff out right consulation i don't think so but we could have a consultation to to see\",\n",
       " \"doing this with the working stessue of goodwod which is interesting yeah i mean i i'm totally down to do it um like i'm totally down to at least have the the consultation and the'm you know see\",\n",
       " \"soe you where to go from there i would also be totally down to pay you know to pay uh some lawyer fees to figure that stuff out like i think it's interesting and i think it's worth it but i think uh you know like yeah the next step is an obvious lawyer\",\n",
       " \"lawyers that and lawyer could that be also um alred told us it's like didn' he say like privacy and hate of privacy i can look back on the events that he was a privacy might be\",\n",
       " \"yeah i mean i think it' will have to be a big law firm because they they may need to ask like two or three other people exactly yeah yeah which is fair like that's classic right like i mean usually\",\n",
       " \"usually especially for start ups that talk to law firms like they have no fucking clue red they come and they say like so we just got this letter which sounds evil help um yeah yeah that's not the most promising\",\n",
       " \"i think we're find like some labeling or some sourcing like that seems like not the most promising\",\n",
       " \"well i'm clear 'cause from an audio perspective from a quality from a naturalness and a you know a legality for at least a raw audioile\",\n",
       " \"pretty high up there you know it's two thousand hours it's a strong accent it's very spontaneous audio and it's very difficult audio so if it's fully legal that's definitely an interesting corpus um and we already have it like as in you know even if we literally just use kenan's mom's corpus right\",\n",
       " \"for like i mean know like clients who want southern audio uhsk go the question how caun we i mean could we slice this up enough where nobody would know where it's from \",\n",
       " \"o just if we want to hang our hat on like the no i ain't forordor this i bet we could\",\n",
       " 'no i mean we can definitely like take take names out right we can we can do the obvious things um and you know we can also by the way when we sell this right like we can put in our terms',\n",
       " \"that we that that people agree to not try to the identify it right like that's pretty common in terms right identify it\",\n",
       " \"which lawyer like should there's also a legory thing where like lawyers will' make talk\",\n",
       " \"think i think that's good yeah ian they're still the're not\",\n",
       " \"they're not optimizing that grandly either right like they they in the end they have a job it's kind of like i don't know like the doctor is still going to treat you right like even if you're a dick coming in with with\",\n",
       " \"predisposition to lean one way or the other right its it's uh i guess if this it's okay it's really okay it would be like it would be like going to um\",\n",
       " \"it would be like going to a ah surgeon to get treatment that's not surgery but for a disease that you could have surgery on or something like that you know it's like the the doctor analogy's not exactly right\",\n",
       " \"i hope the lawyers ask for permission to do something that they don't want to give me permission to do\",\n",
       " 'yeah like what what if you go to a doctor and say you know please fix up my fist that i hurt by punching three other people no by punching three other doctors',\n",
       " \"that's true um ethics man um ooh pseudo value number eight aesthetics matter ethics don't\",\n",
       " \"i'm kidding um well w are you joining the ranners in corporate america heor yeah seriously\",\n",
       " 'i saw some lady walking down the street s and i like i like got there i was like uh excuse me me mom whatm doing i none of those',\n",
       " \"but what it's worth they made this really they made this pretty premium how much is it i don't remember no it's the it's their own it's the elebox thing\",\n",
       " \"o um i don't remember but it wasn't crazy i mean it was like i don't know like a hundred bucks plus minus um yeah we'll have to try it out later\",\n",
       " \"oh by the way i'll see a next weeken or maybe early next wee next do you want to ask him a little bit about about about business about about yeah you probably should i think he likes me\",\n",
       " 'i think so too i think it will be just pan good okay uh what else uhre was uh who are we going to talk to about this  any',\n",
       " 'i think i think we should um i think i rely',\n",
       " \"i think it yeah i i agree i think it's worth it just because it does extrapolate a lot right like if we know what to do here like there there is a you know there is a court in like every dingy little town in all of the u s so like\",\n",
       " \"let's do this with everyone let's do this with goodwin let's do this with i think i have the name of the daya privacy lawyer potentionally prev my sister what she thinks like \",\n",
       " \"let's get a lot of opinions here and you know this will also help us for the next time we have an issue like this because we muster yeah okay good um\",\n",
       " 'ts i think i have a let me let me double check uh what was it pleasere now harrys the uh melissa is your name',\n",
       " 'privacy lawyer expensive but excellent this person nice thing about their case is this the ron goldstein sounds like a jew',\n",
       " \"sounds very israeli but  it's a great fire gaor and know you can't see it but a strong knot\",\n",
       " \"strong god voice so it's a he has a power impole as they call it powerm o yeah um no that's skinny not bullshit that's a full winter\",\n",
       " \"oh wow yeah oh yeah god knows what's upky what should what should i be doing should i should i\",\n",
       " \"likey should i do something with the new zealand purpose or not because we're not sure about the youtube thing yet\",\n",
       " \"make a what what if you make a small one or you start to scrap like we can then decide that yeah that's kind of what i was thinking you know how about i how about i start with just like a small subset or so 'cause it would also help me\",\n",
       " \"it would give me a reason maybe to clean up the code a little bit um  of as in as in like generalize it a little bit because then it'll be for a second corpuss\",\n",
       " \"smoother which part of what i'm doing is also going to help with that is thats going to identify the paintpoint so i have a meeting i'll slide down i have my um i have my innterface for locally ld transcribing data where you can\",\n",
       " \"play the audio i don't have like fancy keyboard controls over the audio but you can play the audio clip you could autopopulate a sample transcript and you could fix it up and save it like that's good enough for now i think\",\n",
       " 'perfect yeah and maybe uh do you want to get a meeting also tran that same meeting maybe also transcribed by rev or something like that',\n",
       " \"wh does like a whole cause they do like whole audio fpiles right so it wouldn't be that much work you just send them the audio file and then we see what we get out for the whole thing\",\n",
       " \"with what with a human you mean yeah yeah i a actually then let me make sure i pick one where we have the dugal transcert as well you areon you okay so i'm on that it's going to take me\",\n",
       " \"a day or so also not a sliced data no but this is also good like i somebody else other than you i was saying to kena deer i i'm actually serious andenough t belong on smoke if you're ask like\",\n",
       " 'we say we want to make this really easy for people wh are not our target audience',\n",
       " 'no this is good how i can uh nice we can we can also ak i guess the a uh reversion but we can talk to the lawyers about you too as well',\n",
       " 'that would be great yeah di should we have a session with with maybe shou like besides the privacy lawyer should we also set up a session with goodwin and do those two things court and youtube',\n",
       " 'think that would be good drive and like',\n",
       " \"i seriously ask her got reaction like not my vwus curious s 's totally couple on the sidelines in case you want to t this n b c stuff goes anywhere if you need something yeah i would say that too because the thingk is right like what what uh\",\n",
       " 'what we always heard right is you can have one intracll per per law firm right yeah cool where you basically getthree legal advice so try to convince somebody sour',\n",
       " \"continue to shape the drive trees meaning like get n b c a deck chase off tomorrow i'll follow up with like high school like i'll up try to get use in data sets g i knowere\",\n",
       " \"and i'm blocking here and i'll learn yeah i  the legal stuffs like that's can we use some of these sources so awesome yeah okay cool then i'll i'll i'll continue with code\",\n",
       " \"new zealand stuff and uh and i also have a few reach outs on my to do list uh that i that i um wanted to reach out like some of the german t v stations um other people should i reach out to in video yet is the next question when's the last\",\n",
       " 'before i left cantual no the i mean the only reason would be would be in terms of that we want to stay away from them something something cantual you can say',\n",
       " \"es and who do you then who do you guys want to talk to so i can send um i can obviously send uh what's his name jonathan an email um 'cause we wanted to talk with him\",\n",
       " 'and then alexi is connected to yukara at zoom',\n",
       " \"yeah so the other two potentials would be alexi and boris so alexi i frankly don't really know what he's doing anymore originally he was sort of a little bit taking the lead on some of these things but then he was always only sort of\",\n",
       " 'basically handing me off to other people and boris is actually the p i on all of these things yeah and boris b yeah boris was also the one who was like you know if you need a job let me know so like boris would be the most obvious one to just pick up the relationship where we left it',\n",
       " \"so i think we want borris screen video and we want alexi just to try to see what he's doing and ideally like fining on the show to you ai and assume who's the one that reached outu yeah\",\n",
       " 'i mean i could write all three of them and basically mee like suggest a meeting with them individually instead of like yeah i mean i would prefer individually anyways',\n",
       " \"you know compared to like meeting again the whole like team 'cause right now there's no clear yet to do who uh for the data set stuff\",\n",
       " 'you know do we think boris is the right person here or or actually like anthony i',\n",
       " \"like on well we'll get a three well we'll get a three consumer opinion here right that'sir\",\n",
       " \"they are they are i wouldn't put too much on them and they may just say like now you know like we we've spent our dedicated you know five hundred k we're done um but on the other hand you know it might be still worth the conversation i don't know might be\",\n",
       " \"ah right okay maybe let's talk to these ones first 'cause they're more on the techy side and then we'll we'll we'll see where this goes right we'll get a bit of an inkling on\",\n",
       " \"what direction they are going with the more commercial version of this because they're doing this whole riva thing right so they're they're they're definitely going like you know more in depth in that space um warch\",\n",
       " 'at some point about what uh like what do we think about like pushing out of lines and like more public venues withut our names on the new side um so w supreme corpus you mean',\n",
       " \"yeah yeah so i've been using like uh i don't know like the it moll common stuff whether or not's like google group is probably not kosher like discords like acronaos like\",\n",
       " 'should we do much ter keep you in the drip i would love one more bit of feedback from somebody y i would do it one more in drem',\n",
       " \"but on we also like we we we also write that even in the most in the best possible success scenario here that a bunch of people reach out we don't actually have much to talk to them about right like it would basically\",\n",
       " 'it it it would go into like market re it would yeah it would be good right but still i i think there is not that much downside think yeah',\n",
       " \"yeah let's see i mean there's no i think there is no downside to trickle it a little bit morec cause there is a few things that we want to do you know like martin is only on tuesday going to be back and we can you know optimize a bunch of things you know fix actually the you know a bunch of the samples\",\n",
       " 'i was actually thinking what do you guys think about offering two versions of the download one at the high quality forty four point one kilohertz sixty bit weight files and one at you know sixteen kilohertz compressed uh uh um uh bob files',\n",
       " \"i mean if it's for speech recognition honestly like right like with the two arguments like sixen kilerts is enough\",\n",
       " \"and the compressed version is is is made with a codec that effectively doesn't degrade it for speech recognition\",\n",
       " \"so this is fine i don't think that's the most burning thing we have one person put in email so far yeah true truerue semi gets it today yeah see remi gets it\",\n",
       " \"the lebok guy has been a little bit quiet but he's maybe also stressed and busy i can i can always pay him later um and sorry the leboq guy\",\n",
       " \"and um and then we're also still waiting hear hear from fred wright the dial pad guy i\",\n",
       " \"th again i do wonder if he ended up buying the stud speech oh you think you think that happened in the last month go we talked to him and what but god i mean i don't  i\",\n",
       " \"first of all i i i don't think so and second of all that wouldn't be a reason for him not to answer so i don't think him not answering is a pro for that like a like an indication of that unless the man told him i'm only going to sell you only you don't talk to keina\",\n",
       " 'now that is ter i got a see and i got to make a phone call alright bye']"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "all_transcripts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "01a92ed6",
   "metadata": {},
   "outputs": [],
   "source": [
    "assert len(all_transcripts) == len(all_files), \"poop\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0ec69c01",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "95b326d9",
   "metadata": {},
   "outputs": [],
   "source": [
    "slice_meta = []\n",
    "for fn, t in zip(all_files, all_transcripts):\n",
    "    partial_fn = fn.replace(\"/home/ubuntu/code/glockenspiel/audio-labeler/\", \"./\")\n",
    "    slice_meta.append({\"audio_url\": partial_fn, \"transcript_guess\": t})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "9e23e3e4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'audio_url': './data/slices2/00005-30__to__00005-30.wav',\n",
       " 'transcript_guess': 'and uh and we i mean we found a person that that seemed to be at the least somewhat the right place right like kind of'}"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "slice_meta[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "780a0133",
   "metadata": {},
   "outputs": [],
   "source": [
    "pd.DataFrame(slice_meta).to_csv(\n",
    "    \"/home/ubuntu/code/glockenspiel/audio-labeler/labeling-tasks2.csv\", index=False\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c1758621",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.8.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
