{"cells":[{"cell_type":"markdown","metadata":{"id":"P5ZMEbzuftx7"},"source":["# Comprendre la classe Interface"]},{"cell_type":"markdown","metadata":{"id":"ydkg_N6Dftx-"},"source":["Installez les bibliothèques 🤗 Transformers et 🤗 Gradio pour exécuter ce *notebook*."]},{"cell_type":"code","execution_count":null,"metadata":{"id":"4xgOhY2wftx_"},"outputs":[],"source":["!pip install datasets transformers[sentencepiece]\n","!pip install gradio"]},{"cell_type":"code","source":[],"metadata":{"id":"isSjXjjVnGlp"},"execution_count":null,"outputs":[]},{"cell_type":"code","execution_count":null,"metadata":{"id":"WsetNLYyftyA"},"outputs":[],"source":["import numpy as np\n","import gradio as gr\n","\n","\n","def reverse_audio(audio):\n"," sr, data = audio\n"," reversed_audio = (sr, np.flipud(data))\n"," return reversed_audio\n","\n","\n","mic = gr.Audio(source=\"microphone\", type=\"numpy\", label=\"Parler ici...\")\n","gr.Interface(reverse_audio, mic, \"audio\").launch()"]},{"cell_type":"code","source":[],"metadata":{"id":"TcegG4mFmphV"},"execution_count":null,"outputs":[]},{"cell_type":"code","execution_count":null,"metadata":{"id":"geguvsfpftyB"},"outputs":[],"source":["import numpy as np\n","import gradio as gr\n","\n","notes = [\"C\", \"C#\", \"D\", \"D#\", \"E\", \"F\", \"F#\", \"G\", \"G#\", \"A\", \"A#\", \"B\"]\n","\n","\n","def generate_tone(note, octave, duration):\n"," sr = 48000\n"," a4_freq, tones_from_a4 = 440, 12 * (octave - 4) + (note - 9)\n"," frequency = a4_freq * 2 ** (tones_from_a4 / 12)\n"," duration = int(duration)\n"," audio = np.linspace(0, duration, duration * sr)\n"," audio = (20000 * np.sin(audio * (2 * np.pi * frequency))).astype(np.int16)\n"," return (sr, audio)\n","\n","\n","gr.Interface(\n"," generate_tone,\n"," [\n"," gr.Dropdown(notes, type=\"index\"),\n"," gr.Slider(minimum=4, maximum=6, step=1),\n"," gr.Textbox(type=\"number\", value=1, label=\"Durée en secondes\"),\n"," ],\n"," \"audio\",\n",").launch()"]},{"cell_type":"code","source":[],"metadata":{"id":"98IQCJnvmrpS"},"execution_count":null,"outputs":[]},{"cell_type":"code","execution_count":null,"metadata":{"id":"AXV8ofmuftyC"},"outputs":[],"source":["from transformers import pipeline\n","import gradio as gr\n","\n","model = pipeline(\"automatic-speech-recognition\",model=\"facebook/wav2vec2-large-xlsr-53-french\")\n","\n","\n","def transcribe_audio(mic=None, file=None):\n"," if mic is not None:\n"," audio = mic\n"," elif file is not None:\n"," audio = file\n"," else:\n"," return \"Vous devez fournir soit un enregistrement micro ou un fichier\"\n"," transcription = model(audio)[\"text\"]\n"," return transcription\n","\n","\n","gr.Interface(\n"," fn=transcribe_audio,\n"," inputs=[\n"," gr.Audio(source=\"microphone\", type=\"filepath\", optional=True),\n"," gr.Audio(source=\"upload\", type=\"filepath\", optional=True),\n"," ],\n"," outputs=\"text\",\n",").launch()"]}],"metadata":{"colab":{"provenance":[],"collapsed_sections":[]},"kernelspec":{"display_name":"Python 3","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.5"}},"nbformat":4,"nbformat_minor":0}