{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "9febd313-2446-49bb-8508-997c0b2bc0ca",
   "metadata": {},
   "source": [
    "# Imports and configs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "1929f9bb-5060-4530-811b-823d69a5b00f",
   "metadata": {},
   "outputs": [],
   "source": [
    "from experiment.luna.luna_record_provider import LunaRecordProvider\n",
    "from sziszapangma.integration.experiment_manager import ExperimentManager\n",
    "from sziszapangma.integration.repository.multi_files_experiment_repository import MultiFilesExperimentRepository\n",
    "from sziszapangma.integration.path_filter import ExtensionPathFilter\n",
    "from pymongo import MongoClient\n",
    "from spacy.tokens.doc import Doc\n",
    "import pandas as pd\n",
    "from experiment.voicelab.voicelab_telco_record_provider import VoicelabTelcoRecordProvider\n",
    "from sziszapangma.integration.repository.experiment_repository import ExperimentRepository\n",
    "from dataclasses import dataclass\n",
    "import itertools\n",
    "from typing import Optional, Any, List\n",
    "import numpy as np\n",
    "from pprint import pprint"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "321a93d9-0c5d-4d42-ba8f-4b704a05d78c",
   "metadata": {},
   "outputs": [],
   "source": [
    "pd.set_option('display.max_rows', None)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1b0a963f-ef3b-4f0f-bebc-68a0ea3e4f6c",
   "metadata": {},
   "source": [
    "# Load datasets and other pipeline objects"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "bbe2a7bf-bb6d-42ee-b5ce-48e6ec7fcd94",
   "metadata": {},
   "outputs": [],
   "source": [
    "VOICELAB_DATASET_DIRECTORY = 'experiment_data/dataset/voicelab_cbiz_testset_20220322'\n",
    "LUNA_DATASET_DIRECTORY = 'experiment_data/dataset/LUNA.PL'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "4dec626b-02e4-4c78-a238-04ef2f090ea5",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "voicelab examples count 800\n",
      "luna examples count 500\n"
     ]
    }
   ],
   "source": [
    "voicelab_experiment_repository = MultiFilesExperimentRepository(\n",
    "    'experiment_data/pipeline',\n",
    "    'asr_benchmark_voicelab_cbiz_testset_20220322'\n",
    ")\n",
    "luna_experiment_repository = MultiFilesExperimentRepository(\n",
    "    'experiment_data/pipeline',\n",
    "    'asr_benchmark_luna'\n",
    ")\n",
    "print(f'voicelab examples count {len(voicelab_experiment_repository.get_all_record_ids())}')\n",
    "print(f'luna examples count {len(luna_experiment_repository.get_all_record_ids())}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "98c6ff1d-4fbd-4b68-9e23-ecea33852b12",
   "metadata": {},
   "outputs": [],
   "source": [
    "voicelab_record_provider = VoicelabTelcoRecordProvider(ExtensionPathFilter(\n",
    "    root_directory=VOICELAB_DATASET_DIRECTORY,\n",
    "    extension='wav',\n",
    "), relation_manager_root_path='experiment_data/dataset_relation_manager_data/voicelab_cbiz_testset_20220322')\n",
    "luna_record_provider = LunaRecordProvider(ExtensionPathFilter(\n",
    "    root_directory=f'{LUNA_DATASET_DIRECTORY}/LUNA.PL',\n",
    "    extension='wav',\n",
    "), relation_manager_root_path='experiment_data/dataset_relation_manager_data/luna')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3002ad7f-6b3e-4c65-9f38-1af9489a858e",
   "metadata": {},
   "source": [
    "# Preview data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "id": "39e4b625-d976-492d-bbc2-0872e4c4c1c9",
   "metadata": {},
   "outputs": [],
   "source": [
    "def show_ducklig_report(repository: ExperimentRepository, record_id: str):\n",
    "    gold_transcript_text = ' '.join([it['word'] for it in repository.get_property_for_key(record_id, 'gold_transcript')])\n",
    "    pprint({\n",
    "        'gold_transcript_text': gold_transcript_text,\n",
    "        'gold_transcript_duckling': repository.get_property_for_key(record_id, 'gold_transcript_duckling'),\n",
    "        'techmo_asr': repository.get_property_for_key(record_id, 'techmo_polish_asr')['full_text'],\n",
    "        'techmo_duckling': repository.get_property_for_key(record_id, 'techmo_duckling'),\n",
    "        'ajn_asr': repository.get_property_for_key(record_id, 'ajn_polish_asr')['full_text'],\n",
    "        'ajn_duckling': repository.get_property_for_key(record_id, 'ajn_duckling')\n",
    "    })"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "id": "c1420158-0a27-4e63-9619-eab3ff58cd59",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'ajn_asr': 'czy dobre <unk> z parą petra <unk> <unk> <unk> <unk> chodziło o '\n",
      "            'kopanie szczepień rtÉ to repeat od uczestników ochota tak jak '\n",
      "            'przedtem - cenię i szanuję - <unk> <unk> <unk> <unk> hojnie trud '\n",
      "            'wśród <unk> okazało się to echem nad nie zatrzymywał się nie '\n",
      "            'zatrzymują się zatrzymywać w remont tunelu średnicowego i hołd '\n",
      "            'koźla śródmieście z otrzymuje &quot; wykonano kociak otrzymują '\n",
      "            'też fachowców furtokiem proszę bardzo  ',\n",
      " 'ajn_duckling': [],\n",
      " 'gold_transcript_duckling': [{'body': 'dzień',\n",
      "                               'dim': 'duration',\n",
      "                               'end': 9,\n",
      "                               'latent': False,\n",
      "                               'start': 4,\n",
      "                               'value': {'day': 1,\n",
      "                                         'normalized': {'unit': 'second',\n",
      "                                                        'value': 86400},\n",
      "                                         'type': 'value',\n",
      "                                         'unit': 'day',\n",
      "                                         'value': 1}},\n",
      "                              {'body': 'dzień',\n",
      "                               'dim': 'duration',\n",
      "                               'end': 21,\n",
      "                               'latent': False,\n",
      "                               'start': 16,\n",
      "                               'value': {'day': 1,\n",
      "                                         'normalized': {'unit': 'second',\n",
      "                                                        'value': 86400},\n",
      "                                         'type': 'value',\n",
      "                                         'unit': 'day',\n",
      "                                         'value': 1}},\n",
      "                              {'body': ' teraz w tej chwili',\n",
      "                               'dim': 'time',\n",
      "                               'end': 265,\n",
      "                               'latent': False,\n",
      "                               'start': 246,\n",
      "                               'value': {'grain': 'second',\n",
      "                                         'type': 'value',\n",
      "                                         'value': '2022-06-10T05:39:27.286-07:00',\n",
      "                                         'values': [{'grain': 'second',\n",
      "                                                     'type': 'value',\n",
      "                                                     'value': '2022-06-10T05:39:27.286-07:00'}]}}],\n",
      " 'gold_transcript_text': 'xxx dzień dobry dzień dobry proszę pana mam takie '\n",
      "                         'pytanie chodzi mi o kursowanie tej linii SKM w '\n",
      "                         'stronę Rembertowa z tutaj tu Warszawa Ochota '\n",
      "                         'ponieważ mam takie sprzeczne informacje że nie się '\n",
      "                         'zatrzymuje na Ochocie drudzy że na Centralnym '\n",
      "                         'właśnie teraz w tej chwili już nie wiem nie na '\n",
      "                         'Centralnym się już nie zatrzymuje on się zatrzymywał '\n",
      "                         'jak był remont Tunelu Średnicowego na Śródmieściu '\n",
      "                         'się zatrzymuje no właśnie to się skończyło czyli na '\n",
      "                         'Śródmieściu a na Ochocie też się zatrzymuje też aha '\n",
      "                         'to wobec tego dziękuję bardzo proszę bardzo do '\n",
      "                         'widzenia do widzenia',\n",
      " 'techmo_asr': 'dzień dobry dzień dobry proszę pana mam takie pytanie chodzi '\n",
      "               'mi o kursowanie tej linii skm w stronę rembertowa z tutaj tu '\n",
      "               'warszawa ochota przedwczesne informacja że nie mogę się '\n",
      "               'zatrzymuje na ochocie drudzy srodze że na centralnym właśnie '\n",
      "               'teraz w tej chwili już nie wiem na czym nie na centralnym się '\n",
      "               'już nie zatrzymuje on się zatrzymywał jak był remont tunelu '\n",
      "               'siatkarze dla śródmieściu się zatrzymuje czyli na śródmieściu '\n",
      "               'a na ochocie też się zatrzymuje też aha to wobec tego dziękuję '\n",
      "               'bardzo proszę bardzo widzenia do widzenia',\n",
      " 'techmo_duckling': [{'body': 'dzień',\n",
      "                      'dim': 'duration',\n",
      "                      'end': 5,\n",
      "                      'latent': False,\n",
      "                      'start': 0,\n",
      "                      'value': {'day': 1,\n",
      "                                'normalized': {'unit': 'second',\n",
      "                                               'value': 86400},\n",
      "                                'type': 'value',\n",
      "                                'unit': 'day',\n",
      "                                'value': 1}},\n",
      "                     {'body': 'dzień',\n",
      "                      'dim': 'duration',\n",
      "                      'end': 17,\n",
      "                      'latent': False,\n",
      "                      'start': 12,\n",
      "                      'value': {'day': 1,\n",
      "                                'normalized': {'unit': 'second',\n",
      "                                               'value': 86400},\n",
      "                                'type': 'value',\n",
      "                                'unit': 'day',\n",
      "                                'value': 1}},\n",
      "                     {'body': ' teraz w tej chwili',\n",
      "                      'dim': 'time',\n",
      "                      'end': 257,\n",
      "                      'latent': False,\n",
      "                      'start': 238,\n",
      "                      'value': {'grain': 'second',\n",
      "                                'type': 'value',\n",
      "                                'value': '2022-06-10T05:39:37.429-07:00',\n",
      "                                'values': [{'grain': 'second',\n",
      "                                            'type': 'value',\n",
      "                                            'value': '2022-06-10T05:39:37.429-07:00'}]}}]}\n"
     ]
    }
   ],
   "source": [
    "# show_ducklig_report(voicelab_experiment_repository, list(voicelab_record_provider.get_all_records())[0])\n",
    "show_ducklig_report(luna_experiment_repository, list(luna_record_provider.get_all_records())[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "673d40d4-a9aa-4465-ad88-4d813a794513",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "955e12f5-070f-4d8d-9b79-8a821e47b1a6",
   "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.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}