{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\"FMP\"\n", "\"AudioLabs\"\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\"B\"
\n", "

Python Audio

\n", "
\n", "\n", "
\n", "\n", "

\n", "There are several ways to read and write audio files in Python, using different packages. This notebooks lists some options and discusses advantages as well as disadvantages. For detailed explanations on how to integrate audio files into the notebooks, we refer to the FMP notebook on Multimedia.

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## LibROSA" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One option to read audio is to use LibROSA's function [`librosa.load`](https://librosa.org/doc/latest/generated/librosa.load.html). \n", "\n", "* Per default, `librosa.load` resamples the audio to $22050~\\mathrm{Hz}$. Setting `sr=None` keeps the native sampling rate.\n", "* The loaded audio is converted to a float with amplitude values lying in the range of $[-1, 1]$.\n", "* `librosa.load` is essentially a wrapper that uses either [`PySoundFile`](https://pysoundfile.readthedocs.io) or [`audioread`](https://github.com/beetbox/audioread).\n", "* When reading audio, `librosa.load` first tries to use [`PySoundFile`](https://pysoundfile.readthedocs.io). This works for many formats, such as WAV, FLAC, and OGG. However, MP3 is not supported. When `PySoundFile` fails to read the audio file (e.g., for MP3), a warning is issued, and `librosa.load` falls back to another library called [`audioread`](https://github.com/beetbox/audioread). When [`ffmpeg`](https://ffmpeg.org/) is available, this library can read MP3 files." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2024-02-15T09:01:06.483819Z", "iopub.status.busy": "2024-02-15T09:01:06.483526Z", "iopub.status.idle": "2024-02-15T09:01:09.115296Z", "shell.execute_reply": "2024-02-15T09:01:09.114753Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "WAV file: Fs = 11025, x.shape = (45504,), x.dtype = float32\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAACICAYAAADqIJGqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAazklEQVR4nO3de3RV5bnv8e+TlQu5EAJJgHBHQBAFqQ0o4tkKag9i1WN3tbY9itaxrQq19tjR4x72iNjhrrbeuouX43EXdaDisdtri7fj1nrZeMELgkIs3rhDVIgJwVyf88eaiSshCQuSlbnWyu8zxhprzne+a84nvIyVJ+985/uauyMiIiKSTjLCDkBERESkpynBERERkbSjBEdERETSjhIcERERSTtKcERERCTtZIYdQCKUlJT4mDFjwg5DREREEuytt9763N1L25enZYIzZswYVq1aFXYYIiIikmBm9llH5bpFJSIiImlHCY4kpdraWjQJpYiIHCwlOJJ0vvjiC37/+9/zxhtvhB2KiIikKCU4knS+/PJLADZs2NDh8T179qh3R0REuqQER1JGbW0tH3zwATfeeCMvvvhi2OGIiEgSU4IjSc/d+frrr7nvvvt4+OGHAfjwww9DjkpERJJZqAmOmc01swoz22BmV3Zw/AQzqzKzd4PX1WHEKeFauXIlN9xwAzt27NjnmLtTW1sbQlQiIpLMQpsHx8wiwG3AycBm4E0ze8LdP2hX9WV3/26vByhJY/369R2WV1dXc/PNN7fuX3HFFRQUFPRWWCIiksTC7MGZAWxw94/dvR5YDpwRYjyShLZs2cKmTZv2Kd++fXub5Aa+GZwsIiISZoIzHIj9zbU5KGtvppmtNrOnzOzwzk5mZheZ2SozW1VZWdnTsUovqa+v54EHHmjdv/vuu+P+7NKlS2lsbGxTVlNTQ1VVFR999FGPxSgiIskvzATHOihr/+zv28Bodz8S+CPwWGcnc/e73L3c3ctLS/dZkkJSxK5du7r1+QcffLDN/k033cStt97KsmXLOhzDIyIi6SnMBGczMDJmfwSwNbaCu3/l7jXB9gogy8xKei9E6W3Lli1r3e5sHpyufPzxxyxevLjDeXJeeeWVbsUmIiKpI8wE501ggpmNNbNs4BzgidgKZjbUzCzYnkE03i96PVLpNTU1NT1ynoceeogVK1a0KVu7dm2PnFtERJJfaE9RuXujmS0EngEiwJ/c/X0zuzg4fifwfeASM2sE9gLnuKawTVsNDQ09dq6KiooOyxcvXkwkEqGpqQmAvLw8FixYQFZWFllZWT12fRERCZelY75QXl7uq1atCjsMOUBLly5l48aNoVx74MCBXHbZZaFcW0REDp6ZveXu5e3LNZOxJI2wkhvo/uBmERFJLkpwRAJ79+4NOwQREekhSnBEAps3bw47BBER6SFKcEQCDzzwAPX19WGHISIiPUAJjkiM3/72t9xxxx1hhyEiIt0U2mPiIslq586dbNu2jbKystayZ599lpUrVwIwc+ZMTj75ZIIpmkREJAmpB0ekA3fddReLFy8G4LnnnmtNbgBWrlzJtddeS3V1Nbt37w4pQhER6cp+e3DMLA+4Ahjl7v9kZhOAie7+l4RHJxKyliSnIy2rmf/4xz9m/PjxbY5VV1ezadMmJkyYoAkERURCEM8tqqXAW8DMYH8z8DCgBEcEuP/++wFYtGgRGzduZOnSpW2On3/++YwePTqM0ERE+qx4Epxx7v4DM/shgLvvNQ0+kB72+uuvhx1Ct1133XU0NjbuU37PPfdw+OGHs2vXLnJzcznllFMoLi4OIUIRkb4jngSn3sxyAQcws3FAXUKjkj7nzTffDDuEbusouWnx/vvvt24vWbIEgF/84hcUFha2qTNo0CDKyspoamrinnvuaTM3z6hRozj33HPJzNSzASIi+xPPN+Ui4GlgpJndD8wCzk9kUCJ9wS233EJhYSFnn302r7322n5XO9+4cSPXXXcdJ554IuPGjWvzlJeIiLQV12KbZlYMHAMY8Jq7f57owLpDi22mniVLlvDFF1+EHUZKmTdvHtOnTw87DBGRUHW22GanPThmdlS7om3B+ygzG+Xub/dkgCJyYFasWMGKFSswM4499liOP/54srKyaGxs5J133gGgvLxc8/WISJ/U1S2qm4L3fkA5sJpoD85U4HXguMSGJn2Jem8Onrvz6quv8uqrr+5zbMWKFQCcc845FBYWMmTIEDIyNP2ViKS/ThMcd58NYGbLgYvcfU2wfwTwy94JT0R6wvLly9vsH3HEEZx22mlkZ2eHFJGISGLFM8h4UktyA+Dua81sWuJCEpFEW7t2beug5lGjRjF//nz17IhIWonnG22dmd1tZieY2fFm9n+AdYkOTER6x8aNG/nNb37DmjVrqKqqoq5Os0CISOqLpwfnAuAS4OfB/kuAllsWSTOPPPJIl8fPPPNMxo0bR35+fi9FJCJy8Pab4Lj718AtwUtE+qhHH320dXvo0KEceeSR5OXlMWHCBHJzc6mrq2PXrl1kZGRQWlqqp7dEJFTxLLb5CcEsxrHc/ZCERCQiSW/79u1s37497vqlpaXk5uZy1FFH0b9/fwCGDRtGv379EhWiiPRx8dyiip08px9wFjAoMeGISDqqrKwEouN99mfkyJFkZ2fz0UcfMW3aNAYMGEBZWRlFRUWUlpZqMLSIxCWeW1TtJyi51cxeAa5OTEgi0pdt2rSpdfvdd9/tsm52djaHHXYYc+fOpV+/fuzdu5fc3NwERygiqSCeW1SxMxpnEO3R6Z+wiERE4lRfX8/q1atZvXp1p3Xy8/MpLS2lvr6e4uJiPv/8c2bMmMHEiROVDImksXhuUd0Us90IfAKc3RMXN7O5wB+ACHC3u1/f7rgFx+cBtcD5WiJCRA7Enj172LNnDwBbt24F4PHHHz+gc0ycOJHRo0cTiUQoLi7m66+/pra2ls8//5ycnBwmTZpEfn4+u3btoqysjL1795Kfn099fT39+vUjEonQ2NhIQ0MDdXV1FBUVdXid5uZmAN2GE+kB8SQ4F7r7x7EFZja2uxc2swhwG3AysBl408yecPcPYqqdAkwIXkcTfTz96O5eW5JLPAu+ioSpoqKCioqKTo+//PLLvRhN50pLSxk6dCj9+/cnMzOTwsJCxowZQ1NTE/X19eTk5DBo0CCam5tpaGigqqqKTZs20dTURCQSISsri/r6evLy8sjMzKSxsZGtW7fS1NTEwIEDGTZsGHl5eZSUlLRec+/evTQ2NtLc3Mzu3bspLCyksrKSnJwcMjIyyM3NJScnh5qaGjIzM2lubqa5uZm8vDwKCgqIRCI0NzcTiUTa/Cwt3wtmhrvT3NxMRkaGns6TuMWT4PwZaL/w5p+Bb3fz2jOADS3JU7AkxBlAbIJzBnCfR/+nv2ZmRWZW5u7b9j3dN5qamqiqqupmeJIoGRkZFBQUAN98eYlI91VWVrYO6Jb0cskll+ipwwPU1Wrik4DDgQFm9r2YQ4VEn6bqruHAppj9zezbO9NRneF8s7J5h3bs2MGtt97aAyGKiIiE7447NL/ugeqqB2ci8F2gCDgtprwa+KceuHZH/Yzt/5SPp060otlFwEUAI0aM4LTTTuuomiSBLVu2sHPnTjZv3hx2KCIiKeGYY46hpKREt+g6cM0113RY3tVq4o8Dj5vZTHdfmYCYNgMjY/ZHAFsPog4A7n4XcBdAeXm5H3VU+7tqkizat01lZSW33357SNGIiCS/OXPmkJWVFXYYKaWrW1S/cvffAT8ysx+2P+7ul3Xz2m8CE4IBy1uAc4AftavzBLAwGJ9zNFC1v/E3IiKS/syM/Px8ampqKCwsJDMzs/Vptbq6OgYNGsTAgQMpLCxk48aNNDY20q9fv9a11JqamqitrSU/P5+ioiJycnLo378/1dXVZGRk8Omnn/LZZ5/R3NxMTk4OAwYMICMjg4aGBoqKiloHXpeVlZGRkUFTUxNDhgyhsLCQ7du3U1BQQHZ2NllZWdTW1vLVV1+RlZVFbm4uBQUFuDuRSKS1TmzPTGNjI+5OXV1d63hFOXBd3aJqWTF8VSIu7O6NZrYQeIboY+J/cvf3zezi4PidwAqij4hvIPqY+AWJiEVERCASidDU1ER2djbZ2dnU1NQQiUQwM3Jzcxk+fDhDhgyhubmZAQMGkJ2dzY4dO9iyZQu7d+8mOzubqqqq1oShsLCQkSNHUlZWRkNDAzU1NRQXF1NSUkJmZmZrYtDyBFUy3X457rjjDvqzAwYMaLNfVFTEsGHD4v58Zmb0V7N6bLqnq1tUTwbv9ybq4u6+gmgSE1t2Z8y2AwsSdX0RkXTQspzFgAEDGD58OGPGjKGgoKA1YWhoaAAS8wtzypQp3fp8yy9zkZ7W1S2qJ+lkQC+Au5+ekIhERNJYdnY29fX1AOTk5FBXV8dRRx3FrFmzGDQoMcv8qSdA+qKuUucbey0KEZEkUVhYyJAhQ+jXrx95eXmUlpaSn5/Pli1bGDlyJBUVFXz44YeUlJQwe/ZsRo0aFXbIItKBrm5R/a1l28yygUlEe3Qq3L2+F2ITEemW0aNHU1RUxOjRo8nNzSUzM5PS0tJ9xki4O3v37iUvL6/Tc02aNAmAQw89NKExi0jPiGexzVOBO4GPiM5LM9bMfuruTyU6OOkb2v+yEdmf8ePHk5GRQWVlJXl5eZx66qkMHjx4n+n+42VmXSY3IpJ64l1sc7a7bwAws3HAXwElONIjsrOzww5BksghhxzCvHnzaG5upqSkpPUpm2R6wkZEkl88Cc7OluQm8DGwM0HxiEiaKSsro7q6mpqaGoqKiqitrWXu3LlMmTKFjIyM/a6cradsRORgxPPN8b6ZrQD+L9ExOGcRXfn7ewDu/kgC4xORXnbWWWcxfPhwnnnmGdatW9fmWMsK0/n5+QwePJiCggKOOOIIioqKGDx4cEgRi4jsK54Epx+wAzg+2K8EBhFdn8oBJTgiKaBlllaILpcxefJkysrKOh17cvbZZ/dmeCIiPWq/CY67a/ZgkRSUmZnJT37yE4YOHarxKyLS58TzFNVY4GfAmNj6muhPetLw4cPZsmVL2GGkjZ/+9KcMHTo07DBEREITzy2qx4B/A54EmhMajfRZs2fPZtmyZWGHkRLmz5+PmXHPPfe0ls2YMYMpU6ZQUFBAUVFRaLGJiCSLeBKcr939XxMeifRpelKmc5dcckmHA3gXLVoUQjQiIqkhnt8qfzCzRcCzQF1Lobu/nbCoRASACy+8UE8niYgchHgSnCnAucAcvrlF5cG+iPSwoqIiFixYoF4tEZFuiOcb9EzgEK0/JYm0v8neUtmsWbM46aSTqKioYPny5R3WmTp1KoMGDeLwww+nuLhYTz2JiHRTPAnOaqAIzV4sCTRixIiwQ+hSywR3AKeccgpPPbX/lUr69+/P5Zdf3pq8TZw4kYULF7JkyRIAiouLufjii9VTIyKSAPF8sw4B1pvZm3wzBsfd/YzEhSV9TTL3WLQM5m1qaiIjIwMzY/r06Vx77bVt6o0dO5bKykpqamo477zzGDt27D7nKi4u1uBgEZFeEE+CE/ttbMBxwA8TE45Icrnqqqtat2NXqjYzFixYwG233dZadu655yZ1oiYi0pfEM5Px38xsGvAj4GzgE+DOBMclErr99bSUlJRw6aWX8tlnn1FeXt5LUYmISDw6HdlpZoea2dVmtg5YAmwCzN1nu/sfey1CkQT52c9+BkTH/1x99dVcccUVB3yO0tJSJTciIknI3L3jA2bNwMvAhe6+ISj72N0P6cX4Dkp5ebmvWrUq7DDkAC1evLhXrnPssccyc+ZMCgoKOjy+bds2SktLNfhXRCQFmNlb7r7PX5pdfYP/I3AO8IKZPQ0sJzoGRyRlXXDBBYwaNarLOmVlZb0UjYiIJEqnt6jc/VF3/wEwCXgR+AUwxMzuMLPv9FJ80oecfnri1m8tKipi0aJF+01uREQkPcQzyHgPcD9wv5kNAs4CriS6dINIrzrrrLNYs2YN69ev32/duXPnEolEiEQijB8/vheiExGRZHFAgwzc/UvgfwcvkR6Vn5+/3zqTJ09m8uTJrF+/nry8PIYMGcL111+/T70TTzyR6dOnp/UMySIi0rlQRlEGPUEPAWOAT4Gz3X1XB/U+BaqBJqCxo0FEkj4mTJgQd91JkyYB0Nkg+eOOO65HYhIRkdQU1p+3VwLPu/sE4PlgvzOz3X2akpv019Ukeccffzzjxo3r8DNTp05tU/brX/+6x2MTEZHUEtZzsGcAJwTb9xIdxPw/Q4pFktzcuXM5+uijOz0+e/Zs3nvvPYDWMTciItK3hdWDM8TdtwEE74M7qefAs2b2lpld1NUJzewiM1tlZqsqKyt7OFwJ02GHHdbl8ZycnNbtiy7q8r+JiIj0EQnrwTGz/wcM7eDQVR2UdWaWu281s8HAc2a23t1f6qiiu98F3AXRif4OOGBJOnPmzCEzM5PCwsIu6+Xm5nLppZcycOBATc4nIiJAAhMcdz+ps2NmtsPMytx9m5mVATs7OcfW4H2nmT0KzAA6THAk/QwYMGCf8TWdKS0tTXA0IiKSSsK6RfUEMD/Yng883r6CmeWbWf+WbeA7wNpei1BCp7lrRETkYIWV4FwPnGxmfwdODvYxs2FmtiKoMwR4xcxWA28Af3X3p0OJVkKRl5cXdggiIpKiQhmw4O5fACd2UL4VmBdsfwwc2cuhiYiISBrQNK+SVKZNmxZ2CCIikgaU4EhS+c53tI6riIh0nxIcSSq5ublhhyAiImlACY6IiIikHc2KJkln4cKFWgVcRES6RQmOJJ3i4uKwQxARkRSnP5NFREQk7SjBERERkbRj7um3LqWZVQMVYcchB6UE+DzsIOSgqf1Sm9ovtfXV9hvt7vssSJiuY3Aq3L087CDkwJnZKrVd6lL7pTa1X2pT+7WlW1QiIiKSdpTgiIiISNpJ1wTnrrADkIOmtkttar/UpvZLbWq/GGk5yFhERET6tnTtwREREZE+TAmOiIiIpJ20SnDMbK6ZVZjZBjO7Mux4+jIz+5OZ7TSztTFlg8zsOTP7e/A+MObYPwftVmFm/zWm/NtmtiY49q9mZkF5jpk9FJS/bmZjevUHTGNmNtLMXjCzdWb2vpn9PChX+6UAM+tnZm+Y2eqg/RYH5Wq/FGJmETN7x8z+Euyr/Q5Q2iQ4ZhYBbgNOASYDPzSzyeFG1afdA8xtV3Yl8Ly7TwCeD/YJ2ukc4PDgM7cH7QlwB3ARMCF4tZzzQmCXu48HbgFuSNhP0vc0Ale4+2HAMcCCoI3UfqmhDpjj7kcC04C5ZnYMar9U83NgXcy+2u8ApU2CA8wANrj7x+5eDywHzgg5pj7L3V8CvmxXfAZwb7B9L/DfYsqXu3udu38CbABmmFkZUOjuKz06Gv6+dp9pOdefgRNb/jqR7nH3be7+drBdTfRLdjhqv5TgUTXBblbwctR+KcPMRgCnAnfHFKv9DlA6JTjDgU0x+5uDMkkeQ9x9G0R/iQKDg/LO2m54sN2+vM1n3L0RqAK0DHkPC7quvwW8jtovZQS3N94FdgLPubvaL7XcCvwKaI4pU/sdoHRKcDrKPvUMfGrorO26alO1d4KZWQHw78Dl7v5VV1U7KFP7hcjdm9x9GjCC6F/zR3RRXe2XRMzsu8BOd38r3o90UKb2I70SnM3AyJj9EcDWkGKRju0Iuk0J3ncG5Z213eZgu315m8+YWSYwgH1viclBMrMsosnN/e7+SFCs9ksx7r4beJHo2Au1X2qYBZxuZp8SHWoxx8yWofY7YOmU4LwJTDCzsWaWTXTQ1RMhxyRtPQHMD7bnA4/HlJ8TjOwfS3Qw3BtBN2y1mR0T3B8+r91nWs71feA/XLNW9ojg3/rfgHXufnPMIbVfCjCzUjMrCrZzgZOA9aj9UoK7/7O7j3D3MUR/j/2Hu/931H4Hzt3T5gXMAz4EPgKuCjuevvwCHgS2AQ1E/1q4kOg93ueBvwfvg2LqXxW0WwVwSkx5ObA2OLaEb2bf7gc8THRA3RvAIWH/zOnyAo4j2l39HvBu8Jqn9kuNFzAVeCdov7XA1UG52i/FXsAJwF/Ufgf30lINIiIiknbS6RaViIiICKAER0RERNKQEhwRERFJO0pwREREJO0owREREZG0owRHRA6ImRWb2bvBa7uZbQm2a8zs9gRd83IzOy8R597Pdc83syUH8blSM3s6ETGJSHwyww5ARFKLu39BdJVqzOwaoMbdb0zU9YKZVn8CHJWoa/Q0d680s21mNsvdXw07HpG+SD04ItIjzOwEM/tLsH2Nmd1rZs+a2adm9j0z+52ZrTGzp4OlIDCzb5vZ38zsLTN7pmUq+nbmAG97dFFAzOwyM/vAzN4zs+VB2Qwz+08zeyd4nxiUn29mj5nZk2b2iZktNLP/EdR7zcwGBfVeNLNbg8+uNbMZHfx8pWb272b2ZvCaFZQfH9Oj9Y6Z9Q8+8hjw4x79RxaRuCnBEZFEGQecCpwBLANecPcpwF7g1CDJ+SPwfXf/NvAn4LoOzjMLiF148ErgW+4+Fbg4KFsP/IO7fwu4GviXmPpHAD8CZgTnrw3qrSQ6fX2LfHc/Frg0iKW9PwC3uPt04B+Bu4PyXwILPLq45X8Jfj6AVcG+iIRAt6hEJFGecvcGM1sDRICWMSlrgDHARKLJx3PRpXKIEF3eo70yYF3M/nvA/Wb2GNFeEoguFnivmU0gusxEVkz9F9y9mui6PFXAkzFxTI2p9yCAu79kZoUt6znFOAmYHMQKUBj01rwK3Gxm9wOPuPvm4PhOYFgHP4+I9AIlOCKSKHUA7t5sZg3+zbowzUS/ewx4391n7uc8e4mundPiVOAfgNOB/2VmhwO/IZrInGlmY4iuoN0mjphr18Vsx34Htl+3pv1+BjDT3fe2K7/ezP5KdL2u18zsJHdfH8Tcvq6I9BLdohKRsFQApWY2E8DMsoJkpb11wPigTgYw0t1fAH4FFAEFRHtwtgT1zz/IeH4QXOM4oMrdq9odfxZY2LJjZtOC93HuvsbdbyB6W2pSUOVQogsdikgIlOCISCjcvR74PnCDma0mumr5sR1UfYpojw1Eb2MtC257vUN0TMxu4HfAb83s1aDOwdhlZv8J3Alc2MHxy4DyYHDzB3wz/ufyYGDyaqI9Nk8F5bOBvx5kLCLSTVpNXESSnpk9CvzK3f+eoPO/CPzS3Vf14DlfAs5w9109dU4RiZ96cEQkFVxJdLBxSjCzUuBmJTci4VEPjoiIiKQd9eCIiIhI2lGCIyIiImlHCY6IiIikHSU4IiIiknaU4IiIiEja+f8Zjlw7t/mZ3gAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "MP3 file: Fs = 11025, x.shape = (47232,), x.dtype = float32\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import os\n", "import numpy as np\n", "from matplotlib import pyplot as plt\n", "import IPython.display as ipd\n", "import librosa\n", "import pandas as pd\n", "%matplotlib inline\n", "\n", "def print_plot_play(x, Fs, text=''):\n", " \"\"\"1. Prints information about an audio singal, 2. plots the waveform, and 3. Creates player\n", " \n", " Notebook: C1/B_PythonAudio.ipynb\n", " \n", " Args: \n", " x: Input signal\n", " Fs: Sampling rate of x \n", " text: Text to print\n", " \"\"\"\n", " print('%s Fs = %d, x.shape = %s, x.dtype = %s' % (text, Fs, x.shape, x.dtype))\n", " plt.figure(figsize=(8, 2))\n", " plt.plot(x, color='gray')\n", " plt.xlim([0, x.shape[0]])\n", " plt.xlabel('Time (samples)')\n", " plt.ylabel('Amplitude')\n", " plt.tight_layout()\n", " plt.show()\n", " ipd.display(ipd.Audio(data=x, rate=Fs))\n", "\n", "# Read wav\n", "fn_wav = os.path.join('..', 'data', 'B', 'FMP_B_Note-C4_Piano.wav')\n", "x, Fs = librosa.load(fn_wav, sr=None)\n", "print_plot_play(x=x, Fs=Fs, text='WAV file: ')\n", "\n", "# Read mp3\n", "fn_mp3 = os.path.join('..', 'data', 'B', 'FMP_B_Note-C4_Piano.mp3')\n", "x, Fs = librosa.load(fn_mp3, sr=None)\n", "print_plot_play(x=x, Fs=Fs, text='MP3 file: ')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## PySoundFile" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The audio library [`PySoundFile`](https://pysoundfile.readthedocs.io/en/0.9.0/) yields functions for reading and writing sound files. In particular, it contains the functions [`soundfile.read`](https://pysoundfile.readthedocs.io/en/latest/#soundfile.read) and [`soundfile.write`](https://pysoundfile.readthedocs.io/en/latest/#soundfile.write). \n", "\n", "* Per default, the loaded audio is converted to a float with amplitude values lying in the range of $[-1, 1]$. This default can be changed using the `dtype` keyword.\n", "* When writing, it uses signed $16$-bit PCM (`subtype='PCM_16'`) as default.\n", "* There are no resampling options.\n", "* There is no option to read `MP3`-files." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2024-02-15T09:01:09.118000Z", "iopub.status.busy": "2024-02-15T09:01:09.117758Z", "iopub.status.idle": "2024-02-15T09:01:09.428563Z", "shell.execute_reply": "2024-02-15T09:01:09.427960Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "WAV file (default): Fs = 11025, x.shape = (45504,), x.dtype = float64\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "WAV file (dtype=int16): Fs = 11025, x.shape = (45504,), x.dtype = int16\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Signal (int16) after writing and reading (default): Fs = 11025, x.shape = (45504,), x.dtype = float64\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import soundfile as sf\n", "\n", "# Read wav with default\n", "fn_wav = os.path.join('..', 'data', 'B', 'FMP_B_Note-C4_Piano.wav')\n", "x, Fs = sf.read(fn_wav)\n", "print_plot_play(x=x,Fs=Fs,text='WAV file (default): ')\n", "\n", "# Read wav with dtype= 'int16'\n", "fn_wav = os.path.join('..', 'data', 'B', 'FMP_B_Note-C4_Piano.wav')\n", "x, Fs = sf.read(fn_wav, dtype= 'int16')\n", "print_plot_play(x=x,Fs=Fs,text='WAV file (dtype=int16): ')\n", "\n", "# Write 'int16'-signal and read with default\n", "fn_out = os.path.join('..', 'output', 'B', 'FMP_B_Note-C4_Piano_int16.wav')\n", "sf.write(fn_out, x, Fs)\n", "x, Fs = sf.read(fn_out)\n", "print_plot_play(x=x,Fs=Fs,text='Signal (int16) after writing and reading (default): ')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2024-02-15T09:01:09.431290Z", "iopub.status.busy": "2024-02-15T09:01:09.431084Z", "iopub.status.idle": "2024-02-15T09:01:09.647829Z", "shell.execute_reply": "2024-02-15T09:01:09.645880Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Generated signal: Fs = 8000, x.shape = (8000,), x.dtype = float64\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Default for writing files: PCM_16\n", "Signal after writing and reading: Fs = 8000, x.shape = (8000,), x.dtype = float64\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Generate signal\n", "Fs = 8000\n", "x = 0.5 * np.cos(2 * np.pi * 440 * np.arange(0, Fs) / Fs)\n", "x[2000:2200] = 2\n", "print_plot_play(x=x,Fs=Fs,text='Generated signal: ')\n", "\n", "# Write signal\n", "# Default: 'PCM_16'\n", "# Equivalent to pre-processing (dithering + quantization) \n", "# x = np.int16(np.round(x*(2**15)))\n", "# \n", "print('Default for writing files:', sf.default_subtype('WAV'))\n", "fn_out = os.path.join('..', 'output', 'B', 'FMP_B_PythonAudio_sine.wav')\n", "sf.write(fn_out, x, Fs, subtype='PCM_16')\n", "\n", "# Read generated signal\n", "x, Fs = sf.read(fn_out)\n", "print_plot_play(x=x,Fs=Fs,text='Signal after writing and reading: ')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## SciPy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Scipy offers the [`scipy.io.wavfile`](https://docs.scipy.org/doc/scipy/reference/io.html#module-scipy.io.wavfile) module, which also has functionalities for reading and writing wav files. However, not all variants of the wav format are support. For example, $24$-bit integer `WAV`-files are not allowed. Furthermore, certain metadata fields in a wav file may also lead to errors. Therefore, we do not recommend this option." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2024-02-15T09:01:09.653224Z", "iopub.status.busy": "2024-02-15T09:01:09.652863Z", "iopub.status.idle": "2024-02-15T09:01:09.998720Z", "shell.execute_reply": "2024-02-15T09:01:09.998099Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Signal after writing and reading: Fs = 11025, x.shape = (45504,), x.dtype = int16\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from scipy.io import wavfile\n", "\n", "Fs, x = wavfile.read(fn_wav)\n", "print_plot_play(x=x,Fs=Fs,text='Signal after writing and reading: ')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Wrapper Functions in `libfmp`\n", "\n", "Wrapper functions for reading and writing audio have also been included in `libfmp`.\n", "These wrappers reflect our default recommendations to use `librosa` for loading audio, and `PySoundFile` for writing audio.\n", "In the following code cell, we call these functions:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2024-02-15T09:01:10.001740Z", "iopub.status.busy": "2024-02-15T09:01:10.001532Z", "iopub.status.idle": "2024-02-15T09:01:10.009828Z", "shell.execute_reply": "2024-02-15T09:01:10.009314Z" } }, "outputs": [], "source": [ "import sys\n", "sys.path.append('..')\n", "\n", "import libfmp.b\n", "\n", "fn_wav = os.path.join('..', 'data', 'B', 'FMP_B_Note-C4_Piano.wav')\n", "fn_out = os.path.join('..', 'output', 'B', 'FMP_B_Note-C4_Piano.wav')\n", "\n", "x, Fs = libfmp.b.read_audio(fn_wav)\n", "libfmp.b.write_audio(fn_out, x, Fs)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Normalized Audio Playback \n", "\n", "In the [FMP notebook on multimedia](../B/B_Multimedia.html), we introduced the class\n", "\n", "`IPython.display.Audio(data=None, filename=None, url=None, embed=None, rate=None, autoplay=False, normalize=True, *, element_id=None)`\n", "\n", "for audio playback ([`IPython` version 6.0 or higher](https://ipython.readthedocs.io/en/stable/api/generated/IPython.display.html)), which is frequently used in the FMP notebooks. As default, this class **normalizes** the audio (dividing by the maximum over all sample values) before playback. This may be unwanted for certain applications, where the volume of the audio should be kept to its original level. To avoid normalization, one has to set the parameter `normalize=False`. However, this requires that all samples of the audio lie within the range between $-1$ and $-1$. In the following code cell, we give an illustrative examples for the two options." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2024-02-15T09:01:10.012478Z", "iopub.status.busy": "2024-02-15T09:01:10.012282Z", "iopub.status.idle": "2024-02-15T09:01:10.118575Z", "shell.execute_reply": "2024-02-15T09:01:10.118083Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZ8AAABkCAYAAABZwD36AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAPwklEQVR4nO3deZCcdZ3H8fcnM5nJIUgih+GwCOFI4cpyRJZwqAHcZeVaUFauFZRd9kJAi2WhKNGtrXUliwjqLogYpZYsiAjhvnQ5qgCBJBgIJFmCgEkEA8KySCaZycx3//j9OmmaOTqZfvqY+byqurqfp5/jM13d/Z3n9/z69ygiMDMzq6cxjQ5gZmajj4uPmZnVnYuPmZnVnYuPmZnVnYuPmZnVnYuPmZnVXUOLj6Q5klZLWtzIHGZmVl+NPvL5EXBEgzOYmVmdNbT4RMTDwBuNzGBmZvXX3ugAQ5F0JnAmwMSJE/ebPn16gxOZmY0OCxYseD0itili201ffCLiauBqgBkzZsT8+fMbnMjMbHSQ9HJR2270OR8zMxuFXHzMzKzuhiw+kiZI+oqk7+fp3SQdVYudS7oeeAzYQ9JKSWfUYrtmZtbcqjnn80NgATAzT68EfgLcMdydR8RJw92GmZm1nmqa3aZFxGygByAiugAVmsrMzEa0aopPt6TxQABImgasKzSVmZmNaNU0u30VuAfYSdJc4CDg9CJDmZnZyDZk8YmI+yUtBA4gNbedExGvF57MzMxGrAGLj6R9K2a9ku8/JOlDEbGwuFhmZjaSDXbk8818Pw6YASwiHfnsBTwOHFxsNDMzG6kG7HAQEbMiYhbwMrBvRMyIiP2AfYDl9QpoZmYjTzW93aZHxDOliYhYDOxdWCIzMxvxqunttkTSNcB1pO7WpwJLCk1lZmYjWjXF5/PA3wLn5OmHgSsLS2RmZiNeNV2t1wLfyjczM7NhG7L4SHqRPLpBuYjYpZBEZmY24lXT7Daj7PE44ARgcjFxzMxsNBiyt1tE/K7stioiLgcOLT6amZmNVNU0u5WPdDCGdCS0RWGJzMxsxKum2e2bZY/XAy8Cf15MHDMzGw2qKT5nRMSvymdImlpQnkF1dXWxYsUK+vr6aGtrY/369YwdO5aenp4N9+3t7fT29jJmzBgigojYsGx7e/u71ilNt7W10dfXhyQkbfL2x4wZQ29v77uW7e7uZuzYsTXZvvNXt/3+lq3l61PP19/5a5e/u7ubjo6O92wfoK+vryb5S8u26uvfX/6+vr5Cv8+rKT43AZWDjN4E7DfcnUs6ArgCaAOuiYhvDLb8m2++yZw5c4a7WzMza7DBRrWeDnwYeL+k48ue2pLU621YJLUB/w58knRp7icl3RYRzw1322Zm1twGO/LZAzgK2Ao4umz+28Bf1WDf+wPLS016km4AjgVcfMzMRrgBi09E3ArcKmlmRDxWwL53AFaUTa8E/qhyIUlnAmcCTJkypYAYZmZWb4M1u50fEbOBkyWdVPl8RJw9zH2rn3n9jaRwNXA1wPbbb/+e583MrPUM1uxWGrl6fkH7XgnsVDa9I/CbgvZlZmZNZLBmt9vz/bUF7ftJYLfcbXsVcCJw8mArjB8/nl133ZWenh46Ozvp6upiwoQJvPPOO0ycOJE1a9Ywfvx41q1bx9ixY+nt7d3QvbDU1bG07tq1axk3btyGZSu7JOa/fUOXw/L7/rpQ9vT00NHRwbp16+js7NzQVbmUAVK3zvIMpfxr1qzZcL+p+deuXUtnZyc9PT39dqks5S51rWxrayMiHUBWbtf5B89f6rZbz/zr169/V7fgwfJ3dXW96z3dTPnLl+3u7mbcuHHv+fxubv6Ojo4hP7+1fP8MlH9z3j9Dff+0tbVt6Prc29tb1/ydnZ2b+dVencGa3W6nn2awkog4Zjg7joj1ks4C7iV1tZ4TEc8Ots6kSZM45ZRThrNbMzNrAoM1u11a9M4j4i7grqL3Y2ZmzWWwZreHSo8ldQDTSUdCyyKiuw7ZzMxshKpmYNEjgauAF0g91KZK+uuIuLvocGZmNjJVO7DorIhYDiBpGnAn4OJjZmabZcjr+QCrS4Un+xWwuqA8ZmY2ClRz5POspLuAG0nnfE4gjcN2PEBE3FxgPjMzG4GqKT7jgN8CH8/Tr5Euo300qRi5+JiZ2SYZsvhExOfrEcTMzEaPanq7TQW+COxcvvxwf2RqZmajVzXNbvOAHwC3A8Ve2s7MzEaFaorP2oj4duFJzMxs1Kim+Fwh6avAfcC60syIWFhYKjMzG9GqKT4fAf4COJSNzW6Rp83MzDZZNcXnOGAXj+dmZma1Us0IB4uArQrOYWZmo0g1Rz7bAUslPcnGcz4REccWF8vMzEayaorPV8seCzgYOKmYOGZmNhoM2eyWr+vzFnAk8CPgMNIlFszMzDbLgMVH0u6SLpa0BPgusAJQRMyKiO8MZ6eSTpD0rKQ+STOGsy0zM2s9gx35LCUd5RwdEQfngtNbo/0uBo4HHq7R9szMrIUMVnw+DbwKPCDp+5IOI53zGbaIWBIRy2qxLTMzaz0DdjiIiFuAWyRNBP4M+BKwnaQrgVsi4r56BJR0JnBmnlwnaXE99lsjWwOvNzpElVopK7RW3lbKCs5bpFbKCrBHURtWRFS/sDSZdDG5z0bEoCMcSPoZ8MF+nrooIm7NyzwInBcR86vc//yIaJlzRK2Ut5WyQmvlbaWs4LxFaqWsUGzearpabxARbwDfy7ehlj18c0OZmdnIVs0IB2ZmZjXVkOIj6ThJK4GZwJ2S7q1y1asLjFWEVsrbSlmhtfK2UlZw3iK1UlYoMO8mnfMxMzOrBTe7mZlZ3bn4mJlZ3bVE8ZF0hKRlkpZLuqCBOXaS9ICkJXl4oHPy/MmS7pf0fL6fVLbOhTn3Mkl/UjZ/P0nP5Oe+LakmP+DtJ3ObpKck3dECWbeSdJOkpfk1ntmseSV9Kb8HFku6XtK4ZsoqaY6k1eW/i6tlPkmdkn6c5z8uaecC8v5bfi88LekWSVs1c96y586TFJK2boa8A2WV9MWc51lJs+ueNSKa+ga0AS8AuwAdpOsL7dmgLFOAffPjLYD/AfYEZgMX5PkXAJfkx3vmvJ3A1Px3tOXnniB1uBBwN/CnBWX+MvBfwB15upmzXgv8ZX7cQbqOVNPlBXYAXgTG5+kbgdObKSvwMWBfYHHZvJrlA/4OuCo/PhH4cQF5/xhoz48vafa8ef5OwL3Ay8DWzZB3gNd2FvAzoDNPb1vvrDX/Aqn1Lf+x95ZNXwhc2OhcOcutwCeBZcCUPG8KsKy/rPlNOTMvs7Rs/knA9wrItyPwc9Ilz0vFp1mzbkn6QlfF/KbLSyo+K4DJpN/K3UH6omyqrMDOFV84NctXWiY/bif9al+1zFvx3HHA3GbPC9wE/CHwEhuLT8Pz9vNeuBE4vJ/l6pa1FZrdSh/0kpV5XkPlQ8t9gMeB7SLiFYB8v21ebKDsO+THlfNr7XLgfKCvbF6zZt0FeA34oVIz4TVKQzs1Xd6IWAVcCvwaeAV4K9JwU02XtUIt821YJyLWky678oHCksMXSP9tN21eSccAqyJiUcVTzZh3d+CQ3Ez2kKSP1jtrKxSf/trAG9o/XNL7gJ8C50bE/w22aD/zYpD5NSPpKGB1RCyodpV+5tUla9ZOahq4MiL2Ad4hNQ0NpJGv7STgWFKzxPbAREmnDrbKAJma5b29Ofnqll3SRcB6YO4Q+25YXkkTgIuAi/t7eoB9N/L1bQcmAQcA/wDcmM/h1C1rKxSflaR21JIdgd80KAuSxpIKz9yIuDnP/q2kKfn5KcDqPH+g7Cvz48r5tXQQcIykl4AbgEMlXdekWUv7XxkRj+fpm0jFqBnzHg68GBGvRUQPcDNwYJNmLVfLfBvWkdQOvB94o9aBJZ0GHAWcErldp0nzTiP9M7Iof+Z2BBZK+mCT5l0J3BzJE6TWka3rmbUVis+TwG6SpkrqIJ3Quq0RQfJ/Bj8AlkTEZWVP3Qaclh+fRjoXVJp/Yu4NMhXYDXgiN3m8LemAvM3Pla1TExFxYUTsGBE7k16z/46IU5sxa877KrBCUmkU3cOA55o076+BAyRNyPs4DFjSpFnL1TJf+bY+Q3p/1foI8wjgH4FjImJNxd/RVHkj4pmI2DYids6fuZWkzkmvNmNeYB7pXDCSdid18Hm9rlmHc8KtXjfgU6SeZS+QRsVuVI6DSYeTTwO/zLdPkdo3fw48n+8nl61zUc69jLKeTMAM0kX1XiBdKXZYJz+HyP0JNnY4aNqswN7A/Pz6ziM1CzRlXuCfSBdcXAz8J6l3UNNkBa4nnY/qIX0RnlHLfMA44CfAclIvqF0KyLucdC6h9Fm7qpnzVjz/ErnDQaPzDvDadgDX5X0vBA6td1YPr2NmZnXXCs1uZmY2wrj4mJlZ3bn4mJlZ3bn4mJlZ3bn4mJlZ3bn42Igh6QOSfplvr0palR//XtJ/FLTPcyV9rohtD7Hf0yV9dzPW20bSPUVkMtsU7Y0OYFYrEfE70m+FkPQ14PcRcWlR+8u/5v4CaSSGlhARr0l6RdJBEfFIo/PY6OUjHxvxJH1CG69n9DVJ10q6T9JLko6XNDtfp+SePHxS6dolD0laIOne0rA0FQ4FFkYaTBFJZ0t6Tun6MzfkeftLelRpsNRHSyM45COXeZJul/SipLMkfTkv9wtJk/NyD0q6PK+7WNL+/fx920j6qaQn8+2gPP/jZUeCT0naIq8yDzilpi+y2SZy8bHRaBpwJGlw0OuAByLiI0AXcGQuQN8BPhMR+wFzgH/pZzsHAeUDt14A7BMRewF/k+ctBT4WabDUi4Gvly3/B8DJwP55+2vyco+Rhi8pmRgRB5KumzKnnxxXAN+KiI8CnwauyfPPA/4+IvYGDsl/H6RRJA7p/6Uxqw83u9lodHdE9Eh6hnSxwtI5kGdI1z3Zg1QY7k/DWNFGGp6k0hTSmG4lTwNzJc0jHV1AGmTxWkm7kYZmGlu2/AMR8TZpzKy3gNvLcuxVttz1ABHxsKQtVXZFz+xwYE9tvAjqlvko5xHgMklzSYNIlobEX00ajdusYVx8bDRaBxARfZJ6YuMYU32kz4SAZyNi5hDb6SKNa1VyJOmqkccAX5H0YeCfSUXmOKVrQD1YmaNs3+vKHpd/NivHwKqcHkO6mFdXxfxvSLqTNP7gLyQdHhFLc+bKZc3qys1uZu+1DNhG0kxIl9HIhaTSEmDXvMwYYKeIeIB0Ab+tgPeRjnxW5eVP38w8n837OJh04bq3Kp6/DzirNCFp73w/LdJoy5eQmtqm50V2Jw0QadYwLj5mFSKimzQ0/CWSFpFGVD6wn0XvJh3pQGqauy435T1FOgfzv8Bs4F8lPZKX2RxvSnoUuIo0InGls4EZuaPDc2w833Ru7qSwiHSkU7oS6Czgzs3MYlYTHtXabBgk3QKcHxHPF7T9B4HzImJ+Dbf5MHBsRLxZq22abSof+ZgNzwWkjgctQdI2wGUuPNZoPvIxM7O685GPmZnVnYuPmZnVnYuPmZnVnYuPmZnVnYuPmZnV3f8DMiB4tU5WyjwAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Audio playback with default settings (normalized audio)\n" ] }, { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Audio playback without normalization (original audio) \n" ] }, { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Fs = 8000\n", "x = 0.1 * np.cos(2 * np.pi * 440 * np.arange(0, 2 * Fs) / Fs)\n", "\n", "plt.figure(figsize=(6, 1.5))\n", "plt.plot(x, color='gray')\n", "plt.xlim([0, x.shape[0]])\n", "plt.ylim([-1, 1])\n", "plt.xlabel('Time (samples)')\n", "plt.ylabel('Amplitude')\n", "plt.tight_layout()\n", "plt.show()\n", "\n", "print('Audio playback with default settings (normalized audio)')\n", "ipd.display(ipd.Audio(data=x, rate=Fs))\n", "\n", "print('Audio playback without normalization (original audio) ')\n", "ipd.display(ipd.Audio(data=x, rate=Fs, normalize=False))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Audio Playback List\n", "\n", "In the following code cell, we provide a function for placing several audio players next to each other. Furthermore, the function allows for adapting the width and the height of the individual players. Note that, when the width of the audio player becomes too small, some playback information may be hidden or the playback bottom may be placed in a drop-down menu." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2024-02-15T09:01:10.121074Z", "iopub.status.busy": "2024-02-15T09:01:10.120892Z", "iopub.status.idle": "2024-02-15T09:01:10.220517Z", "shell.execute_reply": "2024-02-15T09:01:10.219964Z" } }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
abcd
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
abc
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
abcd
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def audio_player_list(signals, rates, width=270, height=40, columns=None, column_align='center'):\n", " \"\"\"Generate a list of HTML audio players tags for a given list of audio signals.\n", "\n", " Notebook: B/B_PythonAudio.ipynb\n", "\n", " Args:\n", " signals (list): List of audio signals\n", " rates (list): List of sample rates\n", " width (int): Width of player (either number or list) (Default value = 270)\n", " height (int): Height of player (either number or list) (Default value = 40)\n", " columns (list): Column headings (Default value = None)\n", " column_align (str): Left, center, right (Default value = 'center')\n", " \"\"\"\n", " pd.set_option('display.max_colwidth', None)\n", "\n", " if isinstance(width, int):\n", " width = [width] * len(signals)\n", " if isinstance(height, int):\n", " height = [height] * len(signals)\n", "\n", " audio_list = []\n", " for cur_x, cur_Fs, cur_width, cur_height in zip(signals, rates, width, height):\n", " audio_html = ipd.Audio(data=cur_x, rate=cur_Fs)._repr_html_()\n", " audio_html = audio_html.replace('\\n', '').strip()\n", " audio_html = audio_html.replace('