{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "provenance": [], "machine_shape": "hm", "gpuType": "V100", "include_colab_link": true }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "03c1da0b20c446f9a9c34c9ca0662642": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_6d76bbac63d64e5e98ea216007619f2f", "IPY_MODEL_c5e7c57a9f1649fd9bb29704636e019d", "IPY_MODEL_8267325b66ea44c98cd8a5e6aba35cd8" ], "layout": "IPY_MODEL_26f9e5969279480b8ad1a72de4c92257" } }, "6d76bbac63d64e5e98ea216007619f2f": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_a3f471898d1047e181edb17472110958", "placeholder": "​", "style": "IPY_MODEL_411507129ad844e3ae40a0765ab6214d", "value": "Downloading (…)rocessor_config.json: 100%" } }, "c5e7c57a9f1649fd9bb29704636e019d": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_c6cd7d8d8a47428fb2c90ac1cb2b3e4a", "max": 262, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_bf808d909e2e4e53b066a8f20a55b909", "value": 262 } }, "8267325b66ea44c98cd8a5e6aba35cd8": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_b54cb241248741fcb26138d5ec3f9ab3", "placeholder": "​", "style": "IPY_MODEL_f6871be60613435cb9d5a0bec2c8fb1f", "value": " 262/262 [00:00<00:00, 20.2kB/s]" } }, "26f9e5969279480b8ad1a72de4c92257": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "a3f471898d1047e181edb17472110958": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "411507129ad844e3ae40a0765ab6214d": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "c6cd7d8d8a47428fb2c90ac1cb2b3e4a": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "bf808d909e2e4e53b066a8f20a55b909": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "b54cb241248741fcb26138d5ec3f9ab3": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "f6871be60613435cb9d5a0bec2c8fb1f": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "66e9c0d23e144b5095ed9ed2dd6c9290": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_4c0605c3e93145b5b6f25e124fc8bb89", "IPY_MODEL_e2700293d1ba4ed2b035225d322ca5b6", "IPY_MODEL_0a90d2810c3e47e2840b89b60159090c" ], "layout": "IPY_MODEL_77f69899b71b496383261c98a99a6232" } }, "4c0605c3e93145b5b6f25e124fc8bb89": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_40ee12edfdc541d588778c35f824bf5e", "placeholder": "​", "style": "IPY_MODEL_730c2826b20d48a4aaa6518654372e7c", "value": "Downloading (…)lve/main/config.json: 100%" } }, "e2700293d1ba4ed2b035225d322ca5b6": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_5461dc739f6c4c2e881bc38a8c06e043", "max": 1531, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_c81f69d943d44958b58f21f9788898d2", "value": 1531 } }, "0a90d2810c3e47e2840b89b60159090c": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_89f410e70f1745c9a386728e833f398c", "placeholder": "​", "style": "IPY_MODEL_1494e5d28af848bb8f326f3f2e3c6dff", "value": " 1.53k/1.53k [00:00<00:00, 126kB/s]" } }, "77f69899b71b496383261c98a99a6232": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "40ee12edfdc541d588778c35f824bf5e": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "730c2826b20d48a4aaa6518654372e7c": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "5461dc739f6c4c2e881bc38a8c06e043": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "c81f69d943d44958b58f21f9788898d2": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "89f410e70f1745c9a386728e833f398c": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "1494e5d28af848bb8f326f3f2e3c6dff": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "c8014c60bebf4b2ca62efdc261133ffc": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_1280a7b79b3b413eb0a1348f6111dc8a", "IPY_MODEL_eb4a699ff0204806a548f8f2e23de187", "IPY_MODEL_d05d0f87686d4464b0e8eaac839a3f59" ], "layout": "IPY_MODEL_0410f3bc5fe64250b7960a0cae9a0eba" } }, "1280a7b79b3b413eb0a1348f6111dc8a": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_a41fdd1ad5194b92aacda4d5fe440bdc", "placeholder": "​", "style": "IPY_MODEL_519adf57201341baabd2fb0b2c6a1e4d", "value": "Downloading (…)olve/main/vocab.json: 100%" } }, "eb4a699ff0204806a548f8f2e23de187": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_814aadafdcd04bc188be07fff4ebb0d4", "max": 300, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_5787b06b414d415492fec5c9ecc28835", "value": 300 } }, "d05d0f87686d4464b0e8eaac839a3f59": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_55a7300ee1e44e82a124eef58eddc20f", "placeholder": "​", "style": "IPY_MODEL_acaf7a0e88ac4c589363df6dbc46e681", "value": " 300/300 [00:00<00:00, 23.5kB/s]" } }, "0410f3bc5fe64250b7960a0cae9a0eba": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "a41fdd1ad5194b92aacda4d5fe440bdc": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "519adf57201341baabd2fb0b2c6a1e4d": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "814aadafdcd04bc188be07fff4ebb0d4": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "5787b06b414d415492fec5c9ecc28835": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "55a7300ee1e44e82a124eef58eddc20f": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "acaf7a0e88ac4c589363df6dbc46e681": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "f15253b3c53048d69d3214ab5ef60c02": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_4ce4979b4f584dde9e246d9094401892", "IPY_MODEL_5f8838c416a14b5c89354615ef1601f2", "IPY_MODEL_883a5ba721214fb5a2dce378f2bd373b" ], "layout": "IPY_MODEL_f62ca08633404deca0553ecda9068353" } }, "4ce4979b4f584dde9e246d9094401892": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_fb9616c0abb043869d95d9616a8066ff", "placeholder": "​", "style": "IPY_MODEL_0708cc0aeffa4abe8cca1b62e4e2be8e", "value": "Downloading (…)cial_tokens_map.json: 100%" } }, "5f8838c416a14b5c89354615ef1601f2": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_b865735a3ee94504b4284a7295e3fa6c", "max": 85, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_8348862d9f8946f3a9bcf4c8079c1a6c", "value": 85 } }, "883a5ba721214fb5a2dce378f2bd373b": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_3889ea736e2b424192ce603f8aab7074", "placeholder": "​", "style": "IPY_MODEL_b8ff088d8b964cb29f6dab93192c5642", "value": " 85.0/85.0 [00:00<00:00, 7.20kB/s]" } }, "f62ca08633404deca0553ecda9068353": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "fb9616c0abb043869d95d9616a8066ff": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "0708cc0aeffa4abe8cca1b62e4e2be8e": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "b865735a3ee94504b4284a7295e3fa6c": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "8348862d9f8946f3a9bcf4c8079c1a6c": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "3889ea736e2b424192ce603f8aab7074": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "b8ff088d8b964cb29f6dab93192c5642": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "df45119bc9bd4d8b810c5790ece14c7b": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_651cba0cc8764316bcede4250ab41394", "IPY_MODEL_d8eaa70a2b8d41c5bcd1141efc2b3212", "IPY_MODEL_531d7419655e43b69f76d6634164b812" ], "layout": "IPY_MODEL_53cded6d647a47a7844e7f1c0e930fb6" } }, "651cba0cc8764316bcede4250ab41394": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_6cc3e3efaba148e680c7d7547e511946", "placeholder": "​", "style": "IPY_MODEL_eda3b220bb704a28bf61d69e2623a246", "value": "Downloading model.safetensors: 100%" } }, "d8eaa70a2b8d41c5bcd1141efc2b3212": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_34da2d465a1540f583f05a6deabf2efe", "max": 1261942732, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_064c4037ee254d979a41d3f167e673da", "value": 1261942732 } }, "531d7419655e43b69f76d6634164b812": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_51dbf2b79116448a9ab5504a67e3490d", "placeholder": "​", "style": "IPY_MODEL_ffcc76aec104431a9808dcc7fd944af6", "value": " 1.26G/1.26G [00:04<00:00, 151MB/s]" } }, "53cded6d647a47a7844e7f1c0e930fb6": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "6cc3e3efaba148e680c7d7547e511946": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "eda3b220bb704a28bf61d69e2623a246": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "34da2d465a1540f583f05a6deabf2efe": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "064c4037ee254d979a41d3f167e673da": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "51dbf2b79116448a9ab5504a67e3490d": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "ffcc76aec104431a9808dcc7fd944af6": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } } } }, "accelerator": "GPU" }, "cells": [ { "cell_type": "markdown", "metadata": { "id": "view-in-github", "colab_type": "text" }, "source": [ "\"Open" ] }, { "cell_type": "markdown", "source": [ "# Project IO Achievement - Speech-to-text Model Comparizon" ], "metadata": { "id": "PIbogPXyM0wr" } }, { "cell_type": "markdown", "source": [ "## Problem Definition\n", "\n", "We'll start by developing this in Colab, and we want a simple speech transcription. It is known that there are some speed issues in terms of transcription, so this Colab should implement and compare pros/cons of:\n", "\n", "- OpenAI Whisper API \n", "- Huggingface API (by downloading model) \n", "- Huggingface API (by using API endpoint, so you never download the model, you just use the inference API + Huggingface Hub).\n", "\n", "Which seems to do the best, and are there differences? What are the caveats of using one approach vs the other?\n" ], "metadata": { "id": "x_Vp8SiKM4p1" } }, { "cell_type": "markdown", "source": [ "## Libraries\n", "\n", "This section will install and import some important libraries such as Langchain, openai, Gradio, and so on" ], "metadata": { "id": "o_60X8H3NEne" } }, { "cell_type": "code", "source": [ "# install libraries here\n", "# -q flag for \"quiet\" install\n", "%%capture\n", "!pip install -q langchain\n", "!pip install -q openai\n", "!pip install -q gradio\n", "!pip install -q transformers\n", "!pip install -q datasets\n", "!pip install -q huggingsound\n", "!pip install -q torchaudio\n", "!pip install -q git+https://github.com/openai/whisper.git" ], "metadata": { "id": "pxcqXgg2aAN7" }, "execution_count": 1, "outputs": [] }, { "cell_type": "code", "execution_count": 44, "metadata": { "id": "pEjM1tLsMZBq" }, "outputs": [], "source": [ "# import libraries here\n", "from langchain.llms import OpenAI\n", "from langchain.prompts import PromptTemplate\n", "from langchain.document_loaders import TextLoader\n", "from langchain.indexes import VectorstoreIndexCreator\n", "from langchain import ConversationChain, LLMChain, PromptTemplate\n", "from langchain.chat_models import ChatOpenAI\n", "from langchain.memory import ConversationBufferWindowMemory\n", "from langchain.prompts import ChatPromptTemplate\n", "from langchain.text_splitter import CharacterTextSplitter\n", "from langchain.embeddings import OpenAIEmbeddings\n", "import openai\n", "import os\n", "from getpass import getpass\n", "from IPython.display import display, Javascript, HTML\n", "from google.colab.output import eval_js\n", "from base64 import b64decode\n", "import ipywidgets as widgets\n", "from IPython.display import clear_output\n", "import time\n", "import requests\n", "from transformers import WhisperProcessor, WhisperForConditionalGeneration\n", "from datasets import load_dataset\n", "# from torchaudio.transforms import Resample\n", "import whisper\n", "from huggingsound import SpeechRecognitionModel\n", "import numpy as np\n", "import torch\n", "import librosa\n", "from datasets import load_dataset\n", "from transformers import Wav2Vec2ForCTC, Wav2Vec2Processor\n", "from jiwer import wer\n", "import pandas as pd\n", "from IPython.display import display, HTML" ] }, { "cell_type": "markdown", "source": [ "## API Keys\n", "\n", "Use these cells to load the API keys required for this notebook. The below code cell uses the `getpass` library." ], "metadata": { "id": "03KLZGI_a5W5" } }, { "cell_type": "code", "source": [ "openai_api_key = getpass()\n", "os.environ[\"OPENAI_API_KEY\"] = openai_api_key\n", "openai.api_key = openai_api_key" ], "metadata": { "id": "5smcWj4DbFgy", "outputId": "ccfdf55a-72ba-40c7-bf25-b5e9e7bb5c41", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": 3, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "··········\n" ] } ] }, { "cell_type": "markdown", "source": [ "## Data Loading" ], "metadata": { "id": "M6IzVTjz5cex" } }, { "cell_type": "code", "source": [ "def download(audio_url, save_path):\n", " r = requests.get(audio_url, stream = True)\n", "\n", " with open(save_path, \"wb\") as file:\n", " for block in r.iter_content(chunk_size = 1024):\n", " if block:\n", " file.write(block)" ], "metadata": { "id": "ObVO5iLX5kPh" }, "execution_count": 4, "outputs": [] }, { "cell_type": "code", "source": [ "audio_url1 = 'https://drive.google.com/uc?export=download&id=1fIPAktKZEScqcNqv4GTXvB7eukh41Arf'\n", "# audio_url2 = 'https://drive.google.com/uc?export=download&id=1uPk3EbQokbY7NpoolE3vSoitHeySctpJ'\n", "audio_url2 = 'https://drive.google.com/uc?export=download&id=1X0IcDLyQvyGBH8JBxRXpIIk1iaUae1ZE'\n", "# audio_url3 = 'https://drive.google.com/uc?export=download&id=1gzluFXFPZ7t8tq32MTTKOozHNyb7s8Ll'\n", "audio_url3 = 'https://drive.google.com/uc?export=download&id=1xn1q1uLr6HhDLmG7kX6ZllbX2AUFyAI4'\n", "\n", "# ds = load_dataset(\"hf-internal-testing/librispeech_asr_dummy\", \"clean\", split=\"validation\")\n", "# sample = ds[0][\"audio\"]" ], "metadata": { "id": "Pq6VAxbx5crg" }, "execution_count": 5, "outputs": [] }, { "cell_type": "code", "source": [ "download(audio_url1, 'audio1.mp3')\n", "download(audio_url2, 'audio2.mp3')\n", "download(audio_url3, 'audio3.mp3')" ], "metadata": { "id": "MExVuGlL6dUn" }, "execution_count": 6, "outputs": [] }, { "cell_type": "markdown", "source": [ "## Models\n", "\n", "OpenAI Whisper API: https://platform.openai.com/docs/guides/speech-to-text\n", "\n", "Hugging Face API: https://huggingface.co/models?pipeline_tag=automatic-speech-recognition&sort=trending\n", "- openai/whisper-large-v2\n", "- pyannote/speaker-diarization ?\n", "- jonatasgrosman/wav2vec2-large-xlsr-53-english\n", "- openai/whisper-large\n", "- openai/whisper-base\n", "- openai/whisper-small\n", "- openai/whisper-medium\n", "- guillaumekln/faster-whisper-large-v2\n", "- facebook/mms-1b-all" ], "metadata": { "id": "2JspJunJbSqa" } }, { "cell_type": "markdown", "source": [ "![whisper.png](data:image/png;base64,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BBBAAAEEEEAAgRAIEHALATqbRAABBBBAAAEEEEAAAQQQQAABBBCIXgECbtF7bjkyBBBAAAEEEEAAAQQQQAABBBBAAIEQCBBwCwE6m0QAAQQQQAABBBBAAAEEEEAAAQQQiF4BAm7Re245MgQQQAABBBBAAAEEEEAAAQQQQACBEAgQcAsBOptEAAEEEEAAAQQQQAABBBBAAAEEEIheAQJu0XtuOTIEEEAAAQQQQAABBBBAAAEEEEAAgRAIpA/BNoOyyXUbtgRlvawUAQQQQAABBBBAAAEEEEAAAQQQQACBpAhQwi0pWuRFAAEEEEAAAQQQQAABBBBAAAEEEEAgEYE0l4yUSB5mI4AAAggggAACCCCAAAIIIIAAAggggICfApRw8xOKbAgggAACCCCAAAIIIIAAAggggAACCPgjQMDNHyXyIIAAAggggAACCCCAAAIIIIAAAggg4KcAATc/ociGAAIIIIAAAggggAACCCCAAAIIIICAPwIE3PxRIg8CCCCAAAIIIIAAAggggAACCCCAAAJ+ChBw8xOKbAgggAACCCCAAAIIIIAAAggggAACCPgjQMDNHyXyIIAAAggggAACCCCAAAIIIIAAAggg4KcAATc/ociGAAIIIIAAAggggAACCCCAAAIIIICAPwIE3PxRIg8CCCCAAAIIIIAAAggggAACCCCAAAJ+ChBw8xOKbAgggAACCCCAAAIIIIAAAggggAACCPgjQMDNHyXyIIAAAggggAACCCCAAAIIIIAAAggg4KcAATc/ociGAAIIIIAAAggggAACCCCAAAIIIICAPwIE3PxRIg8CCCCAAAIIIIAAAggggAACCCCAAAJ+ChBw8xOKbAgggAACCCCAAAIIIIAAAggggAACCPgjQMDNHyXyIIAAAggggAACCCCAAAIIIIAAAggg4KcAATc/ociGAAIIIIAAAggggAACCCCAAAIIIICAPwIE3PxRIg8CCCCAAAIIIIAAAggggAACCCCAAAJ+ChBw8xOKbAgggAACCCCAAAIIIIAAAggggAACCPgjQMDNHyXyIIAAAggggAACCCCAAAIIIIAAAggg4KcAATc/ociGAAIIIIAAAggggAACCCCAAAIIIICAPwIE3PxRIg8CCCCAAAIIIIAAAggggAACCCCAAAJ+ChBw8xOKbAgggAACCCCAAAIIIIAAAggggAACCPgj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CCCAAAIIIIAAAggggAACCMSQAAG3GDrZHCoCCCCAAAIIIIAAAggggAACCCCAQPAFCLgF35gtIIAAAggggAACCCCAAAIIIIAAAgjEkAABtxg62RwqAggggAACCCCAAAIIIIAAAggggEDwBQi4Bd+YLSCAAAIIIIAAAggggAACCCCAAAIIxJAAAbcYOtkcKgIIIIAAAggggAACCCCAAAIIIIBA8AUIuAXfmC0ggAACCCCAAAIIIIAAAggggAACCMSQAAG3GDrZHCoCCCCAAAIIIIAAAggggAACCCCAQPAFCLgF35gtIIAAAggggAACCCCAAAIIIIAAAgjEkAABtxg62RwqAggggAACCCCAAAIIIIAAAggggEDwBQi4Bd+YLSCAAAIIIIAAAggggAACCCCAAAIIxJAAAbcYOtkcKgIIIIAAAggggAACCCCAAAIIIIBA8AUIuAXfmC0ggAACCCCAAAIIIIAAAggggAACCMSQAAG3GDrZHCoCCCCAAAIIIIAAAggggAACCCCAQPAFCLgF35gtIIAAAggggAACCCCAAAIIIIAAAgjEkAABtxg62RwqAggggAACCCCAAAIIIIAAAggggEDwBQi4Bd+YLSCAAAIIIIAAAggggAACCCCAAAIIxJAAAbcYOtkcKgIIIIAAAggggAACCCCAAAIIIIBA8AUIuAXfmC0ggAACCCCAAAIIIIAAAggggAACCMSQAAG3GDrZHCoCCCCAAAIIIIAAAggggAACCCCAQPAFCLgF35gtIIAAAggggAACCCCAAAIIIIAAAgjEkAABtxg62RwqAggggAACCCCAAAIIIIAAAggggEDwBQi4Bd+YLSCAAAIIIIAAAggggAACCCCAAAIIxJAAAbcYOtkcKgIIIIAAAggggAACCCCAAAIIIIBA8AUIuAXfmC0ggAACCCCAAAIIIIAAAggggAACCMSQAAG3GDrZHCoCCCCAAAIIIIAAAggggAACCCCAQPAFCLgF35gtIIAAAggggAACCCCAAAIIIIAAAgjEkAABtxg62RwqAggggAACCCCAAAIIIIAAAggggEDwBQi4Bd+YLSCAAAIIIIAAAggggAACCCCAAAIIxJBA+mg71s1bd8jJk6ckTZo0UrlSuWg7PI4HAQQQQAABBBBAAAEEEEAAAQQQQCDMBaIu4PbmW5Nl1597TPZZ0yeGOT+7hwAC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BAi4hUKdbSKAAAIIIIAAAggggAACCCCAAAIIRK0AAbeoPbUcGAIIIIAAAggggAACCCCAAAIIIIBAKAQIuIVCnW0igAACCCCAAAIIIIAAAggggAACCEStAAG3qD21HBgCCCCAAAIIIIAAAggggAACCCCAQCgECLiFQp1tIoAAAggggAACCCCAAAIIIIAAAghErQABt6g9tRwYAggggAACCCCAAAIIIIAAAggggEAoBAi4hUKdbSKAAAIIIIAAAggggAACCCCAAAIIRK0AAbeoPbUcGAIIIIAAAggggAACCCCAAAIIIIBAKAQIuIVCnW0igAACCCCAAAIIIIAAAggggAACCEStAAG3qD21HBgCCCCAAAIIIIAAAggggAACCCCAQCgECLiFQp1tIoAAAggggAACCCCAAAIIIIAAAghErQABt6g9tRwYAggggAACCCCAAAIIIIAAAggggEAoBAi4hUKdbSKAAAIIIIAAAggggAACCCCAAAIIRK0AAbeoPbUcGAIIIIAAAggggAACCCCAAAIIIIBAKAQIuIVCnW0igAACCCCAAAIIIIAAAggggAACCEStAAG3qD21HBgCCCCAAAIIIIAAAggggAACCCCAQCgECLiFQp1tIoAAAggggAACCCCAAAIIIIAAAghErQABt6g9tRwYAggggAACCCCAAAIIIIAAAggggEAoBAi4hUKdbSKAAAIIIIAAAggggAACCCCAAAIIRK0AAbeoPbUcGAIIIIAAAggggAACCCCAAAIIIIBAKAQIuIVCnW0igAACCCCAAAIIIIAAAggggAACCEStQPqoPbIoOLATJ0/Jlq07zCMpkD+P5Mubx+WoNhvzThp50qRJI5UrlXOZxwgCCCCAAAIIIIAAAggggAACCCCAQGgECLiFxt2vrW7dtlP6vzrSzNv83obSpmUzl+XefGuy7Ppzjzlt1vSJLvMYQQABBBBAAIHYEog7e1a2GfcO15coJhkycIsXW2efo0UAgdQS4FqbWtJsB4HIF+BuLPLPIUeAQEQLnDt3XjZu3irbtu+SvHlyS+FCBeTaAvmSfEwXLlyU4ydOmMulNUp95siR3e91nDz1r5w7d87Mf0WWLJIpU0a/ltVtDhv1tp337ga1pVyZkva4p4Hz58/LiDcnyKVLl8zZDevVlArlSnvKyjQEEEDAbwF9AGzUpJWsXrNOCuTP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CCCAAAIIIIAAAgggEIkCBNwi8a5yTQgggAACCCCAAAIIIIAAAggggAACKSZAwC3F6DkxAggggAACCCCAAAIIIIAAAggggEAkChBwi8S7yjUhgAACCCCAAAIIIIAAAggggAACCKSYAAG3FKPnxAgggAACCCCAAAIIIIAAAggggAACkShAwC0S7yrXhAACCCCAAAIIIIAAAggggAACCCCQYgIE3FKMnhMjgAACCCCAAAIIIIAAAggggAACCESiAAG3SLyrXBMCCCCAAAIIIIAAAggggAACCCCAQIoJEHBLMXpOjAACCCCAAAIIIIAAAggggAACCCAQiQIE3CLxrnJNCCCAAAIIIIAAAggggAACCCCAAAIpJkDALcXoOTECCCCAAAIIIIAAAggggAACCCCAQCQKEHCLxLvKNSGAAAIIIIAAAggggAACCCCAAAIIpJgAAbcUo+fECCCAAAIIIIAAAggggAACCCCAAAKRKEDALRLvKteEAAIIIIAAAggggAACCCCAAAIIIJBiAgTcUoyeEyOAAAIIIIAAAggggAACCCCAAAIIRKIAAbdIvKtcEwIIIIAAAggggAACCCCAAAIIIIBAigkQcEsxek6MAAIIIIAAAggggAACCCCAAAIIIBCJAgTcIvGuck0IIIAAAggggAACCCCAAAIIIIAAAikmQMAtxeg5MQIIIIAAAggggAACCCCAAAIIIIBAJAoQcIvEu8o1IYAAAggggAACCCCAAAIIIIAAAgikmAABtxSj58QIIIAAAggggAACCCCAAAIIIIAAApEokDpSLmrn7v2RcilcBwIIIIAAAggggAACCCCAAAIIIIBAGAvQwi2Mbx5VRwABBBBAAAEEEEAAAQQQQAABBBAIPYFU500KvWpRIwQQQAABBBBAAAEEEEAAAQQQQAABBMJTgBZu4XnfqDUCCCCAAAIIIIAAAggggAACCCCAQIgKEHAL0RtDtRBAAAEEEEAAAQQQQAABBBBAAAEEwlOAgFt43jdqjQACCCCAAAIIIIAAAggggAACCCAQogIE3EL0xlAtBBBAAAEEEEAAAQQQQAABBBBAAIHwFCDgFp73jVojgAACCCCAAAIIIIAAAggggAACCISoAAG3EL0xVAsBBBBAAAEEEEAAAQQQQAABBBBAIDwFCLiF532j1ggggAACCCCAAAIIIIAAAggggAACISpA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IIAAAggggAACCCCAAAIIIIAAAtEtQMAtuu8/V48AAggggAACCCCAAAIIIIAAAgggkMwCBNySGZTDIYAAAggggAACCCCAAAIIIIAAAghEtwABt+i+/1w9AggggAACCCCAAAIIIIAAAggggEAyCxBwS2ZQDocAAggggAACCCCAAAIIIIAAAgggEN0CBNyi+/5z9QgggAACCCCAAAIIIIAAAggggAACySxAwC2ZQTkcAggggAACCCCAAAIIIIAAAggggEB0CxBwi+77z9UjgAACCCCAAAIIIIAAAggggAACCCSzAAG3ZAblcAgggAACCCCAAAIIIIAAAggggAAC0S1AwC267z9XjwACCCCAAAIIIIAAAggggAACCCCQzAIE3JIZlMMhgAACCCCAAAIIIIAAAggggAACCES3AAG36L7/XD0CCCCAAAIIIIAAAggggAACCCCAQDILEHBLZlAOhwACCCCAAAIIIIAAAggggAACCCAQ3QIE3KL7/nP1CCCAAAIIIIAAAggggAACCCCAAALJLEDALZlBORwCCCCAAAIIIIAAAggggAACCCCAQHQLEHCL7vvP1SOAAAIIIIAAAggggAACCCCAAAIIJLMAAbdkBuVwCCCAAAIIIIAAAggggAACCCCAAALRLZA60i5/7fpNcvToMUmVKpVUqlgu0i6P60EAAQQQQAABBBBAAAEEEEAAAQQQCHGBiAu4vf7m+7Jl63aLfebU8SHOT/UQQAABBBBAAAEEEEAAAQTCReDU6dOyYcNmKVmimKRJE3GP0+FyG6gnAmEhwCdEWNwmKolA5AucPnNGjh07brVOzZolc4IXfOTIUYk5ezbBMunSpZUM6dN7lImJiZEjpgVsoJQlcya54gr/Pe7/PXBQlq9YJWfM8SqWLy158+QOdMh42/WHgSnTvnTWd/jfw5IpU0Zn2Vdm85bt8sn0uH3aPf6QBLLydRzWIYAAAggggAACCAQvoMG2Bg1bytJlKyR/vryyeNFsSZsmTfAHYg8EEIgKAQJuUXGbuUgEQldgx87d8v2cX2TmrB/k7NlzcuWVV8iMye8kWOGOL7wkBw8eSrDMVVelk6kTx3qU+XXRYhkx6m2Pdb4W2j32kDSoVyfepv3/HpQefYbInr37PbZpoGxQ365SuGABj/UJLez794As+O1Pp0jZ0iXl3rvrOsu+Ml9+M9tjn1Yt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KUDALTLvK1eFAAIIIIAAAggggAACCCCAAAIIIJBCAgTcUgie0yKAAAIIIIAAAggggAACCCCAAAIIRKYAAbfIvK9cFQIIIIAAAggggAACCCCAAAIIIIBACgkQcEsheE6LAAIIIIAAAggggAACCCCAAAIIIBCZAgTcIvO+clUIIIAAAggggAACCCCAAAIIIIAAAikkQMAtheA5LQIIIIAAAggggAACCCCAAAIIIIBAZAoQcIvM+8pVIYAAAggggAACCCCAAAIIIIAAAgikkAABtxSC57QIIIAAAggggAACCCCAAAIIIIAAApEpQMAtMu8rV4UAAggggAACCCCAAAIIIIAAAgggkEICBNxSCJ7TIoAAAggggAACCCCAAAIIIIAAAghEpgABt8i8r1wVAggggAACCCCAAAIIIIAAAggggEAKCRBwSyF4TosAAggggAACCCCAAAIIIIAAAgggEJkCBNwi875yVQgggAACCCCAAAIIIIAAAggggAACKSRAwC2F4DktAggggAACCCCAAAIIIIAAAggggEBkChBwi8z7ylUhgAACCCCAAAIIIIAAAggggAACCKSQAAG3FILntAgggAACCCCAAAIIIIAAAggggAACkSlAwC0y7ytXhQACCCCAAAIIIIAAAggggAACCCCQQgIE3FIIntMigAACCCCAAAIIIIAAAggggAACCESmAAG3yLyvXBUCCCCAAAIIIIAAAggggAACCCCAQAoJEHBLIXhOiwACCCCAAAIIIIAAAggggAACCCAQmQIE3CLzvnJVCCCAAAIIIIAAAggggAACCCCAAAIpJJA6hc6b7KfduXt/sh+TAyKAAAIIIIAAAggggAACCCCAAAIIIBCsAC3cghWjPAIIIIAAAggggAACCCCAAAIIIIAAAgkIpDpvUgLb2YQAAggggAACCCCAAAIIIIAAAggggAACQQjQwi0ILIoigAACCCCAAAIIIIAAAggggAACCCAQSICAWyAhtiOAAAIIIIAAAggggAACCCCAAAIIIBCEAAG3ILAoigACCCCAAAIIIIAAAggggAACCCCAQCABAm6BhNiOAAIIIIAAAggggAACCCCAAAIIIIBAEAIE3ILAoigCCCCAAAIIIIAAAggggAACCCCAAAKBBAi4BRJiOwIIIIAAAggggAACCCCAAAIIIIAAAkEIEHALAouiCCCAAAIIIIAAAggggAACCCCAAAIIBBIg4BZIiO0IIIAAAggggAACCCCAAAIIIIAAAggEIUDALQgsiiKAAAIIIIAAAggggAACCCCAAAIIIBBIgIBbICG2I4AAAggggAACCCCAAAIIIIAAAgggEIQAAbcgsCiKAAIIIIAAAggggAACCCCAAAIIIIBAIAECboGE2I4AAggggAACCCCAAAIIIIAAAggggEAQAgTcgsCiKAIIIIAAAggggAACCCCAAAIIIIAAAoEECLgFEmI7AggggAACCCCAAAIIIIAAAggggAACQQgQcAsCi6IIIIAAAggggAACCCCAAAIIIIAAAggEEiDgFkiI7QgggAACCCCAAAIIIIAAAggggAACCAQhQMAtCCyKIoAAAggggAACCCCAAAIIIIAAAgggEEiAgFsgIbYjgAACCCCAAAIIIIAAAggggAACCCAQhAABtyCwKIoAAggggAACCCCAAAIIIIAAAggggEAgAQJugYTYjgACCCCAAAIIIIAAAggggAACCCCAQBACBNyCwKIoAggggAACCCCAAAIIIIAAAggggAACgQQIuAUSYjsCCCCAAAIIIIAAAggggAACCCCAAAJBCBBwCwKLoggggAACCCCAAAIIIIAAAggggAACCAQSIOAWSIjtCCCAAAIIIIAAAggggAACCCCAAAIIBCFAwC0ILIoigAACCCCAAAIIIIAAAggggAACCCAQSICAWyAhtiOAAAIIIIAAAggggAACCCCAAAIIIBCEAAG3ILAoigACCCCAAAIIIIAAAggggAACCCCAQCABAm6BhNiOAAIIIIAAAggggAACCCCAAAIIIIBAEAIE3ILAoigCCCCAAAIIIIAAAggggAACCCCAAAKBBFIHKhBu29eu3yRHjx6TVKlSSaWK5cKt+tQXAQQQQAABBBBAAAEEEEAAAQQQQCDMBSIu4Pb6m+/Llq3brdsyc+r4ML89VB8BBBBAAAEEEEAAAQQQQCBUBE6dPi0bNmyWkiWKSZo0Efc4HSrM1AOBiBDgEyIibuPluYi9+/bL8hWrJObsWSlcsIAUKXyNZEif/vKcnLNEvMDpM2fk2LHjVuvUrFkyJ3i9R44ctf4dJlQoXbq08f59xsTEyBHTAjZQypI5k1xxhf8e9/8eOGi9F86Y41UsX1ry5skd6JDxtusPA1Omfems7/C/hyVTpozOsq/M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wm245/m9aXDt7dWCB8/3PHMs4nDjovlpUrVggkSAAAECBAgQIECAAAECBAgQIFCWgIDbUWrPCLj98jc76hVL9+3bl/pOPimdMfH0NPH0CSkWSpAIECBAgAABAgQIECBAgAABAgTKFBBwK7Nd1YoAAQIECBAgQIAAAQIECBAgQCCTgEUTMsErlgABAgQIECBAgAABAgQIECBAoEwBAbcy21WtCBAgQIAAAQIECBAgQIAAAQIEMgkIuGWCVywBAgQIECBAgAABAgQIECBAgECZAgJuZbarWhEgQIAAAQIECBAgQIAAAQIECGQSEHDLBK9YAgQIECBAgAABAgQIECBAgACBMgUE3MpsV7UiQIAAAQIECBAgQIAAAQIECBDIJCDglglesQQIECBAgAABAgQIECBAgAABAmUKCLiV2a5qRYAAAQIECBAgQIAAAQIECBAgkElAwC0TvGIJECBAgAABAgQIECBAgAABAgTKFBBwK7Nd1YoAAQIECBAgQIAAAQIECBAgQCCTgIBbJnjFEiBAgAABAgQIECBAgAABAgQIlCkg4FZmu6oVAQIECBAgQIAAAQIECBAgQIBAJgEBt0zwiiVAgAABAgQIECBAgAABAgQIEChTQMCtzHZVKwIECBAgQIAAAQIECBAgQIAAgUwCAm6Z4BVLgAABAgQIECBAgAABAgQIECBQpoCAW5ntqlYECBAgQIAAAQIECBAgQIAAAQKZBATcMsErlgABAgQIECBAgAABAgQIECBAoEwBAbcy21WtCBAgQIAAAQIECBAgQIAAAQIEMgkIuGWCVywBAgQIECBAgAABAgQIECBAgECZAgJuZbarWhEgQIAAAQIECBAgQIAAAQIECGQSEHDLBK9YAgQIECBAgAABAgQIECBAgACBMgUE3MpsV7UiQIAAAQIECBAgQIAAAQIECBDIJCDglglesQQIECBAgAABAgQIECBAgAABAmUKCLiV2a5qRYAAAQIECBAgQIAAAQIECBAgkElAwC0TvGIJECBAgAABAgQIECBAgAABAgTKFBBwK7Nd1YoAAQIECBAgQIAAAQIECBAgQCCTgIBbJnjFEiBAgAABAgQIECBAgAABAgQIlCkg4FZmu6oVAQIECBAgQIAAAQIECBAgQIBAJgEBt0zwiiVAgAABAgQIECBAgAABAgQIEChTQMCtzHZVKwIECBAgQIAAAQIECBAgQIAAgUwCAm6Z4BVLgAABAgQIECBAgAABAgQIECBQpoCAW5ntqlYECBAgQIAAAQIECBAgQIAAAQKZBATcMsErlgABAgQIECBAgAABAgQIECBAoEwBAbcy21WtCBAgQIAAAQIECBAgQIAAAQIEMgkIuGWCVywBAgQIECBAgAABAgQIECBAgECZAgJuZbarWhEgQIAAAQIECBAgQIAAAQIECGQS+A88BELDRS0l/wAAAABJRU5ErkJggg==)" ], "metadata": { "id": "C02r7hJgR90N" } }, { "cell_type": "markdown", "source": [ "### OpenAI Whisper API\n", "\n", "https://platform.openai.com/docs/guides/speech-to-text" ], "metadata": { "id": "TlWF8u4dYnMJ" } }, { "cell_type": "code", "source": [ "total_time = 0\n", "runs = 10\n", "\n", "for i in range(runs):\n", " file = open('audio1.mp3', \"rb\")\n", "\n", " start = time.time()\n", " transcription1 = openai.Audio.transcribe(\"whisper-1\", file)\n", " end = time.time()\n", "\n", " total_time += (end - start)\n", "\n", "average_time1 = total_time / runs\n", "print(\"Average OpenAI Whisper API transcription time: \", average_time1)\n", "\n", "for i in range(runs):\n", " file = open('audio2.mp3', \"rb\")\n", "\n", " start = time.time()\n", " transcription2 = openai.Audio.transcribe(\"whisper-1\", file)\n", " end = time.time()\n", "\n", " total_time += (end - start)\n", "\n", "average_time2 = total_time / runs\n", "print(\"Average OpenAI Whisper API transcription time: \", average_time2)\n", "\n", "for i in range(runs):\n", " file = open('audio3.mp3', \"rb\")\n", "\n", " start = time.time()\n", " transcription3 = openai.Audio.transcribe(\"whisper-1\", file)\n", " end = time.time()\n", "\n", " total_time += (end - start)\n", "\n", "average_time3 = total_time / runs\n", "print(\"Average OpenAI Whisper API transcription time: \", average_time3)\n" ], "metadata": { "id": "I5H1xfkQZRLV", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "2cc03d5d-d253-4ea1-eb20-594adf3db9e9" }, "execution_count": 12, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Average OpenAI Whisper API transcription time: 2.087932562828064\n", "Average OpenAI Whisper API transcription time: 3.9225234985351562\n", "Average OpenAI Whisper API transcription time: 5.70369656085968\n" ] } ] }, { "cell_type": "code", "source": [ "transcription1['text']" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 87 }, "id": "7mCnVJuzZxZA", "outputId": "3b87e57f-5a69-4da1-b5d9-02979f8adcbb" }, "execution_count": 13, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "\"Sawyer and Susie stared at the big door in front of them. For twins, they didn't look anything alike. Sawyer was blonde and short. Susie was tall with dark hair and freckles. But those were just the smallest differences between them. In fact, they were pretty sure they were born on different planets, on opposite ends of the universe. Even so, they were stuck together as usual, and now they stood on their grandpa's front porch, deciding their next move.\"" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 13 } ] }, { "cell_type": "code", "source": [ "transcription2['text']" ], "metadata": { "id": "sYUAZDPH_d35", "outputId": "9c21b190-b34f-4bba-e5a0-e70529229a27", "colab": { "base_uri": "https://localhost:8080/", "height": 70 } }, "execution_count": 14, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "'Once upon a time, there was a giraffe named Ginger. Ginger lived in Kenya, a country in Africa. Like all giraffes, Ginger had a long neck and long legs. Because she was so tall, she was able to eat food from the very tops of the trees in the savannah. The savannah in Africa is an area with lots of grass and some trees.'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 14 } ] }, { "cell_type": "code", "source": [ "transcription3['text']" ], "metadata": { "id": "5Wt8k3_X_d87", "outputId": "ac72bead-77f1-4c1b-c75c-31c949e00b3e", "colab": { "base_uri": "https://localhost:8080/", "height": 70 } }, "execution_count": 15, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "\"Well, how do you go about making a small rowboat? We just make the small scale model and draft it from that. Make a keel out. You make a scale model first? Most everybody does. Make a scale model or else they draft them out. Draw them out on paper. Either one you want to, it doesn't matter. How big are these scale models?\"" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 15 } ] }, { "cell_type": "markdown", "source": [ "### openai/whisper-large-v2\n", "\n", "https://huggingface.co/openai/whisper-large-v2\n", "\n", "https://github.com/openai/whisper" ], "metadata": { "id": "VtWGpXmEoRwK" } }, { "cell_type": "code", "source": [ "def transcribe_audio(save_path, model_name, num_iterations):\n", "\n", " model = whisper.load_model(model_name)\n", " total_times = []\n", "\n", " for i in range(num_iterations): # number of iterations\n", " start = time.time()\n", "\n", " # load audio and pad/trim it to fit 30 seconds\n", " audio = whisper.load_audio(save_path)\n", " audio = whisper.pad_or_trim(audio)\n", "\n", " # make log-Mel spectrogram and move to the same device as the model\n", " mel = whisper.log_mel_spectrogram(audio).to(model.device)\n", "\n", " # detect the spoken language\n", " _, probs = model.detect_language(mel)\n", "\n", " # decode the audio\n", " options = whisper.DecodingOptions()\n", " result = whisper.decode(model, mel, options)\n", "\n", " end = time.time()\n", " total_times.append(end - start)\n", "\n", " # Calculate the average\n", " average_time = np.mean(total_times)\n", " print(\"Average\", model_name, \"transcription time: \", average_time)\n", "\n", " # print the recognized text\n", " print(result.text)\n", "\n", " return average_time, result.text\n" ], "metadata": { "id": "VEEBEAncRLOd" }, "execution_count": 16, "outputs": [] }, { "cell_type": "code", "source": [ "whisper_large_v2_1 = transcribe_audio('audio1.mp3', \"large-v2\", 10)\n", "whisper_large_v2_2 = transcribe_audio('audio2.mp3', \"large-v2\", 10)\n", "whisper_large_v2_3 = transcribe_audio('audio3.mp3', \"large-v2\", 10)" ], "metadata": { "id": "bWT-XFv4RO3G", "outputId": "462aa825-9b22-4f0d-8944-15c25319e400", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": 21, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Average large-v2 transcription time: 7.058776140213013\n", "Sawyer and Susie stared at the big door in front of them. For twins, they didn't look anything alike. Sawyer was blonde and short, Susie was tall with dark hair and freckles. But those were just the smallest differences between them. In fact, they were pretty sure they were born on different planets, on opposite ends of the universe. Even so, they were stuck together as usual, and now they stood on their grandpa's front porch, deciding their next move.\n", "Average large-v2 transcription time: 5.123278546333313\n", "Once upon a time, there was a giraffe named Ginger. Ginger lived in Kenya, a country in Africa. Like all giraffes, Ginger had a long neck and long legs. Because she was so tall, she was able to eat food from the very tops of the trees in the savannah. The savannah in Africa is an area with lots of grass and some trees.\n", "Average large-v2 transcription time: 5.159456348419189\n", "How do you go about making a small rowboat? We just make the small scale model and draft it from that. Make a keel out. You make a scale model first? Most everybody does. Or else they draft them out, draw them out on paper. Either one you want to, it doesn't matter. How big are these scale models?\n" ] } ] }, { "cell_type": "markdown", "source": [ "### whisper-large" ], "metadata": { "id": "PHArXLRT1lVL" } }, { "cell_type": "code", "source": [ "whisper_large_1 = transcribe_audio('audio1.mp3', \"large\", 10)\n", "whisper_large_2 = transcribe_audio('audio2.mp3', \"large\", 10)\n", "whisper_large_3 = transcribe_audio('audio3.mp3', \"large\", 10)" ], "metadata": { "id": "42tKvN3M8zGY", "outputId": "87fb4841-d0d7-49a0-f935-b17835173c58", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": 22, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Average large transcription time: 7.4871098279953\n", "Sawyer and Susie stared at the big door in front of them. For twins, they didn't look anything alike. Sawyer was blonde and short, Susie was tall with dark hair and freckles. But those were just the smallest differences between them. In fact, they were pretty sure they were born on different planets, on opposite ends of the universe. Even so, they were stuck together as usual, and now they stood on their grandpa's front porch, deciding their next move.\n", "Average large transcription time: 5.103005862236023\n", "Once upon a time, there was a giraffe named Ginger. Ginger lived in Kenya, a country in Africa. Like all giraffes, Ginger had a long neck and long legs. Because she was so tall, she was able to eat food from the very tops of the trees in the savannah. The savannah in Africa is an area with lots of grass and some trees.\n", "Average large transcription time: 5.136638736724853\n", "How do you go about making a small rowboat? We just make the small scale model and draft it from that. Make a keel out. You make a scale model first? Most everybody does. Or else they draft them out, draw them out on paper. Either one you want to, it doesn't matter. How big are these scale models?\n" ] } ] }, { "cell_type": "markdown", "source": [ "### whisper-medium" ], "metadata": { "id": "xEWJ9_il8OT8" } }, { "cell_type": "code", "source": [ "whisper_medium_1 = transcribe_audio('audio1.mp3', \"medium\", 10)\n", "whisper_medium_2 = transcribe_audio('audio2.mp3', \"medium\", 10)\n", "whisper_medium_3 = transcribe_audio('audio3.mp3', \"medium\", 10)" ], "metadata": { "id": "coMe9vGT8348", "outputId": "a6b145cd-a26f-4dbd-db49-ba267df4f3c8", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": 23, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "100%|██████████████████████████████████████| 1.42G/1.42G [00:10<00:00, 141MiB/s]\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Average medium transcription time: 4.867928552627563\n", "Sawyer and Susie stared at the big door in front of them. For twins, they didn't look anything alike. Sawyer was blonde and short, Susie was tall with dark hair and freckles. But those were just the smallest differences between them. In fact, they were pretty sure they were born on different planets, on opposite ends of the universe. Even so, they were stuck together as usual, and now they stood on their grandpa's front porch, deciding their next move.\n", "Average medium transcription time: 3.6824806213378904\n", "Once upon a time, there was a giraffe named Ginger. Ginger lived in Kenya, a country in Africa. Like all giraffes, Ginger had a long neck and long legs. Because she was so tall, she was able to eat food from the very tops of the trees in the savanna. The savanna in Africa is an area with lots of grass and some trees.\n", "Average medium transcription time: 4.072535729408264\n", "How do you go about making a small rowboat? We just make the small scale model and draft it from there. Make a keel out. You make a scale model first? Most everybody does. Make a scale model. Or I say draft them out. Draw the model on paper. Either one you want to, it doesn't matter. How big are these scale models?\n" ] } ] }, { "cell_type": "markdown", "source": [ "### whisper-small" ], "metadata": { "id": "TAIdua7D8Py9" } }, { "cell_type": "code", "source": [ "whisper_small_1 = transcribe_audio('audio1.mp3', \"small\", 10)\n", "whisper_small_2 = transcribe_audio('audio2.mp3', \"small\", 10)\n", "whisper_small_3 = transcribe_audio('audio3.mp3', \"small\", 10)" ], "metadata": { "id": "4YGrdrQH-Dt5", "outputId": "16f087ca-529c-45e0-a86f-5813e755c025", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": 24, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "100%|████████████████████████████████████████| 461M/461M [00:04<00:00, 118MiB/s]\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Average small transcription time: 2.7674500703811646\n", "Sawyer and Susie stared at the big door in front of them. For twins, they didn't look anything alike. Sawyer was blonde and short, Susie was tall with dark hair and freckles, but those were just the smallest differences between them. In fact, they were pretty sure they were born on different planets, on opposite ends of the universe. Even so, they were stuck together as usual, and now they stood on their grandpa's front porch, deciding their next move.\n", "Average small transcription time: 1.9433160781860352\n", "Once upon a time, there was a giraffe named Ginger. Ginger lived in Kenya, a country in Africa. Like all giraffes, Ginger had a long neck and long legs. Because she was so tall, she was able to eat food from the very tops of the trees in the savannah. The savannah in Africa is an area with lots of grass and sun trees.\n", "Average small transcription time: 2.037943434715271\n", "How do you go about making a small robot? We just make the small scale model and draft it from there. Make a key loop. You make a scale model first? Most everybody does. Make a scale model or just draft them out. Draw them out on paper. Either when you want to do it or not. How big are these scale models?\n" ] } ] }, { "cell_type": "markdown", "source": [ "### jonatasgrosman/wav2vec2-large-xlsr-53-english" ], "metadata": { "id": "m76G2guxCL6c" } }, { "cell_type": "code", "source": [ "LANG_ID = \"en\"\n", "MODEL_ID = \"jonatasgrosman/wav2vec2-large-xlsr-53-english\"\n", "SAMPLES = 10" ], "metadata": { "id": "nR7KoHjWCMBy" }, "execution_count": 25, "outputs": [] }, { "cell_type": "code", "source": [ "# Load pre-trained model and tokenizer\n", "processor = Wav2Vec2Processor.from_pretrained(\"jonatasgrosman/wav2vec2-large-xlsr-53-english\")\n", "model = Wav2Vec2ForCTC.from_pretrained(\"jonatasgrosman/wav2vec2-large-xlsr-53-english\")\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 177, "referenced_widgets": [ "03c1da0b20c446f9a9c34c9ca0662642", "6d76bbac63d64e5e98ea216007619f2f", "c5e7c57a9f1649fd9bb29704636e019d", "8267325b66ea44c98cd8a5e6aba35cd8", "26f9e5969279480b8ad1a72de4c92257", "a3f471898d1047e181edb17472110958", "411507129ad844e3ae40a0765ab6214d", "c6cd7d8d8a47428fb2c90ac1cb2b3e4a", "bf808d909e2e4e53b066a8f20a55b909", "b54cb241248741fcb26138d5ec3f9ab3", "f6871be60613435cb9d5a0bec2c8fb1f", "66e9c0d23e144b5095ed9ed2dd6c9290", "4c0605c3e93145b5b6f25e124fc8bb89", "e2700293d1ba4ed2b035225d322ca5b6", "0a90d2810c3e47e2840b89b60159090c", "77f69899b71b496383261c98a99a6232", "40ee12edfdc541d588778c35f824bf5e", "730c2826b20d48a4aaa6518654372e7c", "5461dc739f6c4c2e881bc38a8c06e043", "c81f69d943d44958b58f21f9788898d2", "89f410e70f1745c9a386728e833f398c", "1494e5d28af848bb8f326f3f2e3c6dff", "c8014c60bebf4b2ca62efdc261133ffc", "1280a7b79b3b413eb0a1348f6111dc8a", "eb4a699ff0204806a548f8f2e23de187", "d05d0f87686d4464b0e8eaac839a3f59", "0410f3bc5fe64250b7960a0cae9a0eba", "a41fdd1ad5194b92aacda4d5fe440bdc", "519adf57201341baabd2fb0b2c6a1e4d", "814aadafdcd04bc188be07fff4ebb0d4", "5787b06b414d415492fec5c9ecc28835", "55a7300ee1e44e82a124eef58eddc20f", "acaf7a0e88ac4c589363df6dbc46e681", "f15253b3c53048d69d3214ab5ef60c02", "4ce4979b4f584dde9e246d9094401892", "5f8838c416a14b5c89354615ef1601f2", "883a5ba721214fb5a2dce378f2bd373b", "f62ca08633404deca0553ecda9068353", "fb9616c0abb043869d95d9616a8066ff", "0708cc0aeffa4abe8cca1b62e4e2be8e", "b865735a3ee94504b4284a7295e3fa6c", "8348862d9f8946f3a9bcf4c8079c1a6c", "3889ea736e2b424192ce603f8aab7074", "b8ff088d8b964cb29f6dab93192c5642", "df45119bc9bd4d8b810c5790ece14c7b", "651cba0cc8764316bcede4250ab41394", "d8eaa70a2b8d41c5bcd1141efc2b3212", "531d7419655e43b69f76d6634164b812", "53cded6d647a47a7844e7f1c0e930fb6", "6cc3e3efaba148e680c7d7547e511946", "eda3b220bb704a28bf61d69e2623a246", "34da2d465a1540f583f05a6deabf2efe", "064c4037ee254d979a41d3f167e673da", "51dbf2b79116448a9ab5504a67e3490d", "ffcc76aec104431a9808dcc7fd944af6" ] }, "id": "pr8L7QpdEHNz", "outputId": "757dd098-0c64-4f9b-d50b-f6f8541dc301" }, "execution_count": 26, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "Downloading (…)rocessor_config.json: 0%| | 0.00/262 [00:00" ], "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ModelSize
1OpenAI Whisper APIAPI
2OpenAI Large-V22.67GB
3OpenAI Large2.67GB
4OpenAI Medium1.42GB
5OpenAI Small461MB
6wav2vec2-large-xlsr-53-english1.26GB
" ] }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "### Speed" ], "metadata": { "id": "HM7QM8ciXBbM" } }, { "cell_type": "code", "source": [ "speed = pd.DataFrame(columns=['Model', 'Audio1(storybook 27s)', 'Audio2(recording myself 27s)', 'Audio3(interview 27s)'])\n", "speed.loc[0] = ['OpenAI Whisper API', average_time1,average_time2,average_time3]\n", "speed.loc[1] = ['OpenAI Large-V2', whisper_large_v2_1[0],whisper_large_v2_2[0],whisper_large_v2_3[0]]\n", "speed.loc[2] = ['OpenAI Large', whisper_large_1[0],whisper_large_2[0],whisper_large_3[0]]\n", "speed.loc[3] = ['OpenAI Medium', whisper_medium_1[0],whisper_medium_2[0],whisper_medium_3[0]]\n", "speed.loc[4] = ['OpenAI Small', whisper_small_1[0],whisper_small_2[0],whisper_small_3[0]]\n", "speed.loc[5] = ['wav2vec2-large-xlsr-53-english', average_time4,average_time5,average_time6]" ], "metadata": { "id": "y_QMrjK2XBqk" }, "execution_count": 37, "outputs": [] }, { "cell_type": "code", "source": [ "speed.index = speed.index + 1\n", "display(HTML(speed.to_html(index=True)))" ], "metadata": { "id": "xEgaBPB8VTix", "outputId": "c14f018c-b07c-40d2-a993-0862907b9d48", "colab": { "base_uri": "https://localhost:8080/", "height": 237 } }, "execution_count": 52, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ModelAudio1(storybook 27s)Audio2(recording myself 27s)Audio3(interview 27s)
1OpenAI Whisper API2.0879333.9225235.703697
2OpenAI Large-V27.0587765.1232795.159456
3OpenAI Large7.4871105.1030065.136639
4OpenAI Medium4.8679293.6824814.072536
5OpenAI Small2.7674501.9433162.037943
6wav2vec2-large-xlsr-53-english10.4348809.4641909.232625
" ] }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "### Accuracy (WER: Word Error Rate)\n", "https://pypi.org/project/jiwer/" ], "metadata": { "id": "v4uDLWRbXEu5" } }, { "cell_type": "code", "source": [ "true_audio1 = '''\n", "Sawyer and Susie stared at the big door in front of them. For twins, they didn't look anything alike. Sawyer was blonde and short. Susie was tall with dark hair and freckles. But those were just the smallest differences between them. In fact, they were pretty sure they were born on different planets, on opposite ends of the universe. Even so, they were stuck together as usual, and now they stood on their grandpa's front porch, deciding their next move.\n", "'''\n", "\n", "true_audio2 = '''\n", "Once upon a time, there was a giraffe named Ginger. Ginger lived in Kenya, a country in Africa. Like all giraffes, Ginger had a long neck and long legs. Because she was so tall, she was able to eat food from the very tops of the trees in the savannah. The savannah in Africa is an area with lots of grass and some trees. Sometimes a savannah is called grasslands. The other animals like zebras and antelopes could not reach where Ginger could reach. But Ginger always found food. She loved the leaves and the new buds of the trees\n", "'''\n", "\n", "true_audio3 = '''\n", "How do you go about making a, uh, small rowboat? Well, you just make, the uh, small scale model and draft it from that. Make a keel out. You make a scale model first? Mos’, most everybody does, make a scale model or else they draft ’em out, draw them out on paper. Either one you want do-doesn’t matter. How big are these, uh, scale models? A general rule on small type boat, just a three quarter inch to a foot. The large ones are up to a quarter inch to a foot. Uh-huh. An’ what’s the purpose of the, uh, scale, scale model? Well, to determine the length, and the breadth, and the width and all this. Oh, I see. They just use smaller… That’s right. Everything, and then they just scale them up and down. Uh-huh. And, uh, then how do you go about starting to build the, the boat itself? Well, you make a keel first, from the model, or from the draftings, drawings, whatever it is. Then, you make a stem, and a stern. After the small stuff, the small boats, well, you bend the frame, uh, the, you make a molds-what we call the molds, that is, sectionals, sections of it, of the, if they are so far apart, on the boat, you take the shape of it, make sections. What do they use to do that? Plywood? Just plywood or cedar-either, it doesn’t matter.\n", "'''" ], "metadata": { "id": "0Tn8Jw9qBHEx" }, "execution_count": 59, "outputs": [] }, { "cell_type": "markdown", "source": [ "Well, how do you go about making a small rowboat? We just make the small scale model and draft it from that. Make a keel out. You make a scale model first? Most everybody does. Make a scale model or else they draft them out. Draw them out on paper. Either one you want to, it doesn't matter. How big are these scale models?" ], "metadata": { "id": "zUSgtfXDjNHn" } }, { "cell_type": "code", "source": [ "WER = pd.DataFrame(columns=['Model', 'Audio1(storybook 27s)', 'Audio2(recording myself 27s)', 'Audio3(interview 27s)'])\n", "WER.loc[0] = ['OpenAI Whisper API', wer(true_audio1, transcription1['text']),wer(true_audio2, transcription2['text']),wer(true_audio3, transcription3['text'])]\n", "WER.loc[1] = ['OpenAI Large-V2', wer(true_audio1, whisper_large_v2_1[1]),wer(true_audio2, whisper_large_v2_2[1]),wer(true_audio3,whisper_large_v2_3[1])]\n", "WER.loc[2] = ['OpenAI Large', wer(true_audio1, whisper_large_1[1]), wer(true_audio2,whisper_large_2[1]),wer(true_audio3,whisper_large_3[1])]\n", "WER.loc[3] = ['OpenAI Medium', wer(true_audio1,whisper_medium_1[1]),wer(true_audio2,whisper_medium_2[1]),wer(true_audio3,whisper_medium_3[1])]\n", "WER.loc[4] = ['OpenAI Small', wer(true_audio1,whisper_small_1[1]),wer(true_audio2,whisper_small_2[1]),wer(true_audio3,whisper_small_3[1])]\n", "WER.loc[5] = ['wav2vec2-large-xlsr-53-english', wer(true_audio1, transcription4),wer(true_audio2, transcription5),wer(true_audio3, transcription6)]" ], "metadata": { "id": "MVdLB40ne5uP" }, "execution_count": 60, "outputs": [] }, { "cell_type": "code", "source": [ "WER.index = WER.index + 1\n", "display(HTML(WER.to_html(index=True)))" ], "metadata": { "id": "tREFwGyOZIK2", "outputId": "70090a24-e3cd-449d-b7dd-75c52cdfadcb", "colab": { "base_uri": "https://localhost:8080/", "height": 237 } }, "execution_count": 62, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ModelAudio1(storybook 27s)Audio2(recording myself 27s)Audio3(interview 27s)
1OpenAI Whisper API0.00000.360.808333
2OpenAI Large-V20.01250.360.808333
3OpenAI Large0.01250.360.808333
4OpenAI Medium0.01250.380.829167
5OpenAI Small0.03750.370.829167
6wav2vec2-large-xlsr-53-english0.32500.530.933333
" ] }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "## Conclusion\n", "\n", "Considering size, speed and accuracy, OpenAI Whisper API and OpenAI Small on hugging face seem to be the best models to use. OpenAI Small on hugging face is small, quick, and relatively accurate, and OpenAI Whisper API is hosted on cloud, accurate, and also quick." ], "metadata": { "id": "JpsbF1YJOT6T" } } ] }