| 1 | """1 second silence MP3 (mono, 16 kHz, 32 kbps). |
| 2 | |
| 3 | Used by the Test_Connectivity_Probe in |
| 4 | ``server/app.py:transcript_test_connectivity()``. Embedding the bytes as a |
| 5 | base64 literal keeps the resource self-contained, so we never need to chase |
| 6 | PyInstaller resource paths (``sys._MEIPASS`` etc.) at runtime. |
| 7 | |
| 8 | Regeneration (run on a developer machine when ffmpeg or its libmp3lame |
| 9 | encoder produces meaningfully different output):: |
| 10 | |
| 11 | FFMPEG=$(python -c "import imageio_ffmpeg; print(imageio_ffmpeg.get_ffmpeg_exe())") |
| 12 | "$FFMPEG" -loglevel error -f lavfi \\ |
| 13 | -i "anullsrc=r=16000:cl=mono" -t 1 -b:a 32k -f mp3 -y silent_1s.mp3 |
| 14 | base64 silent_1s.mp3 | tr -d '\\n' |
| 15 | """ |
| 16 | import base64 |
| 17 | |
| 18 | _SILENT_1S_MP3_B64 = ( |
| 19 | "SUQzBAAAAAAAIlRTU0UAAAAOAAADTGF2ZjYxLjcuMTAwAAAAAAAAAAAAAAD/81jAAAAAAAAA" |
| 20 | "AAAASW5mbwAAAA8AAAAeAAARlAASEhIaGhoiIiIrKysrMzMzOzs7Q0NDQ0tLS1NTU1xcXFxk" |
| 21 | "ZGRsbGx0dHR0fHx8hYWFjY2NjZWVlZ2dnaWlpaWurq62tra+vr6+xsbGzs7O19fX19/f3+fn" |
| 22 | "5+/v7+/39/f///8AAAAATGF2YzYxLjE5AAAAAAAAAAAAAAAAJALAAAAAAAAAEZSi1O/oAAAA" |
| 23 | "AAAAAAAAAAD/80jEAAAAA0gAAAAATEFNRVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVV" |
| 24 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 25 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gA" |
| 26 | "AAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 27 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 28 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5" |
| 29 | "LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 30 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 31 | "VVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVV" |
| 32 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 33 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gA" |
| 34 | "AAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 35 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 36 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5" |
| 37 | "LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 38 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 39 | "VVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVV" |
| 40 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 41 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gA" |
| 42 | "AAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 43 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 44 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5" |
| 45 | "LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 46 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 47 | "VVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVV" |
| 48 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 49 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gA" |
| 50 | "AAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 51 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 52 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5" |
| 53 | "LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 54 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 55 | "VVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVV" |
| 56 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 57 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gA" |
| 58 | "AAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 59 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 60 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5" |
| 61 | "LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 62 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 63 | "VVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVV" |
| 64 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 65 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gA" |
| 66 | "AAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 67 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 68 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5" |
| 69 | "LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 70 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 71 | "VVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVV" |
| 72 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 73 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gA" |
| 74 | "AAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 75 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 76 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5" |
| 77 | "LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 78 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 79 | "VVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVV" |
| 80 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 81 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gA" |
| 82 | "AAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 83 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 84 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5" |
| 85 | "LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 86 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 87 | "VVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVV" |
| 88 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 89 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gA" |
| 90 | "AAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 91 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 92 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5" |
| 93 | "LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 94 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 95 | "VVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVV" |
| 96 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 97 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gA" |
| 98 | "AAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 99 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 100 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVVVVVVVVVVVV" |
| 101 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 102 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" |
| 103 | "VVVVVVVVVVU=" |
| 104 | ) |
| 105 | |
| 106 | SILENT_1S_MP3_BYTES: bytes = base64.b64decode(_SILENT_1S_MP3_B64) |
| 107 | """1 second mono 16 kHz 32 kbps MP3, ~4.4 KB.""" |
| 108 | |
| 109 | __all__ = ["SILENT_1S_MP3_BYTES"] |
| 110 |