diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d192f18..2670b37 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,6 +12,10 @@ name: release # not need a lib directory). GGML_NATIVE=OFF keeps the binaries portable # across CPUs, same as the docker images and ci.yml. # +# The linux cpu variants additionally ship as binary-only AppImages, built by +# packaging/appimage/make-appimage.sh (the same script docker/Dockerfile.static +# uses), so there is one grab-and-run file per arch alongside the tarballs. +# # Variants: # linux x64: cpu, vulkan, cuda arm64: cpu, vulkan # macos arm64: metal x64: cpu (cross-compiled on the arm @@ -195,6 +199,37 @@ jobs: path: ${{ steps.pack.outputs.bundle }}.tar.gz if-no-files-found: error + # Binary-only AppImage from the same static cpu binary, packaged by the + # same script docker/Dockerfile.static uses. cpu-only: the vulkan/cuda + # binaries need system GPU stacks an AppImage can't sensibly bundle. + - name: Package AppImage + if: matrix.backend == 'cpu' + id: appimage + run: | + case "${{ matrix.arch }}" in + x64) arch=x86_64 ;; + arm64) arch=aarch64 ;; + esac + packaging/appimage/make-appimage.sh \ + build/examples/cli/parakeet-cli "$arch" "${{ steps.ver.outputs.version }}" . + echo "name=parakeet-cli-${{ steps.ver.outputs.version }}-${arch}.AppImage" >> "$GITHUB_OUTPUT" + + - name: Smoke test AppImage (version) + if: matrix.backend == 'cpu' + # EXTRACT_AND_RUN so the runner does not need FUSE. + run: | + expected="${{ steps.ver.outputs.cmake_version }}" + out=$(APPIMAGE_EXTRACT_AND_RUN=1 "./${{ steps.appimage.outputs.name }}" --version) + grep -qx "parakeet-cli ${expected}" <<<"$out" + + - name: Upload AppImage artifact + if: matrix.backend == 'cpu' + uses: actions/upload-artifact@v4 + with: + name: ${{ steps.appimage.outputs.name }} + path: ${{ steps.appimage.outputs.name }} + if-no-files-found: error + # Shared C-API lib (issue #25): a separate build so the CLI bundle above # stays a single self-contained binary. PARAKEET_SHARED=ON folds ggml into # libparakeet.so the same way it is folded into the CLI. diff --git a/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t1-speech-60s.json b/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t1-speech-60s.json new file mode 100644 index 0000000..6cfffae --- /dev/null +++ b/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t1-speech-60s.json @@ -0,0 +1 @@ +{"model":"models/nemotron-3.5-asr-streaming-0.6b-q8_0.gguf","threads":1,"load_ms":256.136,"files":[{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":65961.541,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes it is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. "},{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":65964.954,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes it is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. "},{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":65959.403,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes it is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. "}]} diff --git a/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t1-speech-60s.thermal.csv b/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t1-speech-60s.thermal.csv new file mode 100644 index 0000000..3d10db0 --- /dev/null +++ b/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t1-speech-60s.thermal.csv @@ -0,0 +1,132 @@ +1783771354,60600,2400000,5226,0x0 +1783771356,59500,2400000,5217,0x0 +1783771358,60600,2400000,5209,0x0 +1783771360,60600,2400000,5201,0x0 +1783771362,60600,2400000,5195,0x0 +1783771364,59500,2400000,5190,0x0 +1783771366,61150,2400000,5181,0x0 +1783771368,60600,2400000,5176,0x0 +1783771370,61150,2400000,5167,0x0 +1783771372,60600,2400000,5163,0x0 +1783771374,60050,2400000,5159,0x0 +1783771376,60050,2400000,5152,0x0 +1783771378,58950,2400000,5149,0x0 +1783771380,60600,2400000,5144,0x0 +1783771382,59500,2400000,5138,0x0 +1783771384,60050,2400000,5135,0x0 +1783771386,60600,2400000,5131,0x0 +1783771388,60050,2400000,5128,0x0 +1783771390,60600,2400000,5125,0x0 +1783771392,60600,2400000,5120,0x0 +1783771394,59500,2400000,5118,0x0 +1783771396,60050,2400000,5115,0x0 +1783771398,58950,2400000,5111,0x0 +1783771400,59500,2400000,5108,0x0 +1783771402,58950,2400000,5104,0x0 +1783771404,58950,2400000,5102,0x0 +1783771406,60050,2400000,5099,0x0 +1783771408,59500,2400000,5096,0x0 +1783771410,60600,2400000,5096,0x0 +1783771412,60600,2400000,5092,0x0 +1783771414,60050,2400000,5090,0x0 +1783771416,60600,2400000,5089,0x0 +1783771418,60600,2400000,5087,0x0 +1783771420,61150,2400000,5084,0x0 +1783771422,58950,2400000,5081,0x0 +1783771424,61150,2400000,5082,0x0 +1783771426,58950,2400000,5079,0x0 +1783771428,61700,2400000,5077,0x0 +1783771430,58950,2400000,5075,0x0 +1783771432,60600,2400000,5073,0x0 +1783771434,60050,2400000,5074,0x0 +1783771436,60600,2400000,5071,0x0 +1783771438,60600,2400000,5070,0x0 +1783771440,59500,2400000,5070,0x0 +1783771442,60050,2400000,5067,0x0 +1783771444,59500,2400000,5069,0x0 +1783771446,60600,2400000,5066,0x0 +1783771448,58950,2400000,5065,0x0 +1783771450,59500,2400000,5065,0x0 +1783771452,59500,2400000,5064,0x0 +1783771454,60050,2400000,5064,0x0 +1783771456,59500,2400000,5063,0x0 +1783771458,60600,2400000,5062,0x0 +1783771460,59500,2400000,5059,0x0 +1783771462,60050,2400000,5058,0x0 +1783771464,58950,2400000,5059,0x0 +1783771466,60600,2400000,5057,0x0 +1783771468,60050,2400000,5058,0x0 +1783771470,58950,2400000,5058,0x0 +1783771472,58950,2400000,5056,0x0 +1783771474,58950,2400000,5053,0x0 +1783771476,60600,2400000,5055,0x0 +1783771478,58950,2400000,5054,0x0 +1783771480,60600,2400000,5052,0x0 +1783771482,60600,2400000,5053,0x0 +1783771484,61700,2400000,5052,0x0 +1783771486,60050,2400000,5053,0x0 +1783771488,60050,2400000,5053,0x0 +1783771490,61150,2400000,5051,0x0 +1783771492,60600,2400000,5052,0x0 +1783771494,61150,2400000,5049,0x0 +1783771496,59500,2400000,5048,0x0 +1783771498,59500,2400000,5047,0x0 +1783771500,60600,2400000,5049,0x0 +1783771502,60050,2400000,5049,0x0 +1783771504,60600,2400000,5048,0x0 +1783771506,60050,2400000,5047,0x0 +1783771508,60050,2400000,5048,0x0 +1783771510,58950,2400000,5047,0x0 +1783771512,61150,2400000,5047,0x0 +1783771514,60600,2400000,5047,0x0 +1783771516,59500,2400000,5045,0x0 +1783771519,60050,2400000,5046,0x0 +1783771521,60600,2400000,5045,0x0 +1783771523,60600,2400000,5045,0x0 +1783771525,58950,2400000,5046,0x0 +1783771527,59500,2400000,5046,0x0 +1783771529,58950,2400000,5046,0x0 +1783771531,60600,2400000,5044,0x0 +1783771533,58950,2400000,5045,0x0 +1783771535,58950,2400000,5045,0x0 +1783771537,60050,2400000,5046,0x0 +1783771539,60050,2400000,5046,0x0 +1783771541,60600,2400000,5047,0x0 +1783771543,60600,2400000,5046,0x0 +1783771545,60600,2400000,5046,0x0 +1783771547,60600,2400000,5047,0x0 +1783771549,61150,2400000,5047,0x0 +1783771551,60050,2400000,5045,0x0 +1783771553,59500,2400000,5046,0x0 +1783771555,58950,2400000,5045,0x0 +1783771557,60600,2400000,5046,0x0 +1783771559,61700,2400000,5047,0x0 +1783771561,60050,2400000,5045,0x0 +1783771563,58950,2400000,5046,0x0 +1783771565,60600,2400000,5046,0x0 +1783771567,59500,2400000,5045,0x0 +1783771569,60600,2400000,5044,0x0 +1783771571,59500,2400000,5043,0x0 +1783771573,61150,2400000,5046,0x0 +1783771575,60600,2400000,5046,0x0 +1783771577,61150,2400000,5045,0x0 +1783771579,61700,2400000,5045,0x0 +1783771581,60600,2400000,5044,0x0 +1783771583,58950,2400000,5043,0x0 +1783771585,61700,2400000,5043,0x0 +1783771587,61700,2400000,5044,0x0 +1783771589,59500,2400000,5043,0x0 +1783771591,59500,2400000,5044,0x0 +1783771593,60600,2400000,5044,0x0 +1783771595,61150,2400000,5044,0x0 +1783771597,60600,2400000,5042,0x0 +1783771599,60600,2400000,5043,0x0 +1783771601,60600,2400000,5043,0x0 +1783771603,60050,2400000,5045,0x0 +1783771605,59500,2400000,5045,0x0 +1783771607,61150,2400000,5044,0x0 +1783771609,60050,2400000,5042,0x0 +1783771611,60050,2400000,5042,0x0 +1783771613,61700,2400000,5042,0x0 +1783771615,61700,2400000,5044,0x0 +1783771617,62250,2400000,5044,0x0 diff --git a/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t1-speech.json b/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t1-speech.json new file mode 100644 index 0000000..a973d6f --- /dev/null +++ b/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t1-speech.json @@ -0,0 +1 @@ +{"model":"models/nemotron-3.5-asr-streaming-0.6b-q8_0.gguf","threads":1,"load_ms":255.786,"files":[{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":5930.406,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. "},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":5924.499,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. "},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":5928.042,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. "},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":5929.724,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. "},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":5928.104,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. "}]} diff --git a/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t1-speech.thermal.csv b/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t1-speech.thermal.csv new file mode 100644 index 0000000..4717c43 --- /dev/null +++ b/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t1-speech.thermal.csv @@ -0,0 +1,18 @@ +1783771318,71600,2400000,9674,0x0 +1783771320,67200,2400000,7792,0x0 +1783771322,64450,2400000,7383,0x0 +1783771324,63900,2400000,7360,0x0 +1783771326,62800,2400000,7354,0x0 +1783771328,62800,2400000,7343,0x0 +1783771330,62800,2400000,5511,0x0 +1783771332,60600,2400000,5359,0x0 +1783771334,61700,2400000,5334,0x0 +1783771336,61150,2400000,5321,0x0 +1783771338,60600,2400000,5305,0x0 +1783771340,58950,2400000,5296,0x0 +1783771342,60050,2400000,5282,0x0 +1783771344,60050,2400000,5274,0x0 +1783771346,60600,2400000,5264,0x0 +1783771348,61150,2400000,5253,0x0 +1783771350,60050,2400000,5242,0x0 +1783771352,60050,2400000,5231,0x0 diff --git a/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t2-speech-60s.json b/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t2-speech-60s.json new file mode 100644 index 0000000..ace00fd --- /dev/null +++ b/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t2-speech-60s.json @@ -0,0 +1 @@ +{"model":"models/nemotron-3.5-asr-streaming-0.6b-q8_0.gguf","threads":2,"load_ms":256.238,"files":[{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":37090.666,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes it is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. "},{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":37056.320,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes it is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. "},{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":37059.458,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes it is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. "}]} diff --git a/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t2-speech-60s.thermal.csv b/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t2-speech-60s.thermal.csv new file mode 100644 index 0000000..d5ac15c --- /dev/null +++ b/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t2-speech-60s.thermal.csv @@ -0,0 +1,74 @@ +1783771638,66100,2400000,5047,0x0 +1783771640,65550,2400000,5045,0x0 +1783771642,66100,2400000,5047,0x0 +1783771644,66650,2400000,5047,0x0 +1783771646,66100,2400000,6876,0x0 +1783771648,66650,2400000,6976,0x0 +1783771650,67200,2400000,6991,0x0 +1783771652,67200,2400000,6996,0x0 +1783771654,67200,2400000,6999,0x0 +1783771656,66100,2400000,7009,0x0 +1783771658,66100,2400000,7001,0x0 +1783771660,65550,2400000,7015,0x0 +1783771662,66100,2400000,7022,0x0 +1783771664,66650,2400000,7025,0x0 +1783771666,65550,2400000,7037,0x0 +1783771668,66650,2400000,7043,0x0 +1783771670,66650,2400000,7055,0x0 +1783771672,66100,2400000,7063,0x0 +1783771674,65550,2400000,7068,0x0 +1783771676,63900,2400000,7072,0x0 +1783771678,66100,2400000,7082,0x0 +1783771680,65550,2400000,7088,0x0 +1783771682,66100,2400000,7097,0x0 +1783771684,64450,2400000,7102,0x0 +1783771687,65000,2400000,7103,0x0 +1783771689,66100,2400000,7107,0x0 +1783771691,66100,2400000,7112,0x0 +1783771693,65550,2400000,7115,0x0 +1783771695,65550,2400000,7115,0x0 +1783771697,65000,2400000,7119,0x0 +1783771699,65550,2400000,7120,0x0 +1783771701,65550,2400000,7120,0x0 +1783771703,66100,2400000,7125,0x0 +1783771705,65000,2400000,7130,0x0 +1783771707,66650,2400000,7132,0x0 +1783771709,66100,2400000,7129,0x0 +1783771711,65550,2400000,7134,0x0 +1783771713,65550,2400000,7134,0x0 +1783771715,63900,2400000,7134,0x0 +1783771717,65550,2400000,7136,0x0 +1783771719,64450,2400000,7137,0x0 +1783771721,66100,2400000,7137,0x0 +1783771723,66100,2400000,7142,0x0 +1783771725,65000,2400000,7142,0x0 +1783771727,65550,2400000,7147,0x0 +1783771729,66100,2400000,7146,0x0 +1783771731,65000,2400000,7146,0x0 +1783771733,66100,2400000,7146,0x0 +1783771735,64450,2400000,7147,0x0 +1783771737,64450,2400000,7147,0x0 +1783771739,66100,2400000,7146,0x0 +1783771741,66100,2400000,7147,0x0 +1783771743,66100,2400000,7151,0x0 +1783771745,65550,2400000,7146,0x0 +1783771747,65000,2400000,7146,0x0 +1783771749,65000,2400000,7149,0x0 +1783771751,63900,2400000,7147,0x0 +1783771753,63900,2400000,7151,0x0 +1783771755,64450,2400000,7151,0x0 +1783771757,65000,2400000,7151,0x0 +1783771759,64450,2400000,7144,0x0 +1783771761,65550,2400000,7151,0x0 +1783771763,66100,2400000,7158,0x0 +1783771765,65550,2400000,7156,0x0 +1783771767,64450,2400000,7154,0x0 +1783771769,65000,2400000,7154,0x0 +1783771771,65550,2400000,7154,0x0 +1783771773,65000,2400000,7151,0x0 +1783771775,64450,2400000,7149,0x0 +1783771777,65550,2400000,7153,0x0 +1783771779,65550,2400000,7154,0x0 +1783771781,63900,2400000,7153,0x0 +1783771783,65000,2400000,7151,0x0 +1783771785,64450,2400000,7154,0x0 diff --git a/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t2-speech.json b/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t2-speech.json new file mode 100644 index 0000000..97bc206 --- /dev/null +++ b/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t2-speech.json @@ -0,0 +1 @@ +{"model":"models/nemotron-3.5-asr-streaming-0.6b-q8_0.gguf","threads":2,"load_ms":256.228,"files":[{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":3336.435,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. "},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":3337.813,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. "},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":3333.485,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. "},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":3334.285,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. "},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":3337.816,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. "}]} diff --git a/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t2-speech.thermal.csv b/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t2-speech.thermal.csv new file mode 100644 index 0000000..235d967 --- /dev/null +++ b/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t2-speech.thermal.csv @@ -0,0 +1,11 @@ +1783771618,62800,2400000,5044,0x0 +1783771620,62250,2400000,5043,0x0 +1783771622,63900,2400000,5045,0x0 +1783771624,64450,2400000,5046,0x0 +1783771626,64450,2400000,5045,0x0 +1783771628,65000,2400000,5045,0x0 +1783771630,63900,2400000,5044,0x0 +1783771632,63900,2400000,5045,0x0 +1783771634,65000,2400000,5046,0x0 +1783771636,63900,2400000,5043,0x0 +1783771638,66100,2400000,5045,0x0 diff --git a/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t4-speech-60s.json b/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t4-speech-60s.json new file mode 100644 index 0000000..16f2ffe --- /dev/null +++ b/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t4-speech-60s.json @@ -0,0 +1 @@ +{"model":"models/nemotron-3.5-asr-streaming-0.6b-q8_0.gguf","threads":4,"load_ms":255.269,"files":[{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":24020.358,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes it is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. "},{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":23984.284,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes it is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. "},{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":24054.997,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes it is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. "}]} diff --git a/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t4-speech-60s.thermal.csv b/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t4-speech-60s.thermal.csv new file mode 100644 index 0000000..068d362 --- /dev/null +++ b/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t4-speech-60s.thermal.csv @@ -0,0 +1,48 @@ +1783771800,71050,2400000,7161,0x0 +1783771802,71050,2400000,7158,0x0 +1783771804,73250,2400000,7158,0x0 +1783771806,72700,2400000,7156,0x0 +1783771808,73800,2400000,7156,0x0 +1783771810,73800,2400000,7161,0x0 +1783771812,74900,2400000,9389,0x0 +1783771814,75450,2400000,9460,0x0 +1783771816,74900,2400000,9475,0x0 +1783771818,75450,2400000,9493,0x0 +1783771820,71600,2400000,9502,0x0 +1783771823,71050,2400000,9520,0x0 +1783771825,68300,2400000,9532,0x0 +1783771827,71600,2400000,7356,0x0 +1783771829,73250,2400000,7262,0x0 +1783771831,74350,2400000,7256,0x0 +1783771833,74900,2400000,9049,0x0 +1783771835,74900,2400000,9548,0x0 +1783771837,76550,2400000,9560,0x0 +1783771839,77100,2400000,9569,0x0 +1783771841,74350,2400000,9578,0x0 +1783771843,75450,2400000,9584,0x0 +1783771845,71600,2400000,9593,0x0 +1783771847,69950,2400000,9593,0x0 +1783771849,66650,2400000,9600,0x0 +1783771851,73250,2400000,7475,0x0 +1783771853,72700,2400000,7326,0x0 +1783771855,74350,2400000,7315,0x0 +1783771857,74350,2400000,9490,0x0 +1783771859,76000,2400000,9618,0x0 +1783771861,75450,2400000,9624,0x0 +1783771863,73250,2400000,9627,0x0 +1783771865,74900,2400000,9630,0x0 +1783771867,74900,2400000,9637,0x0 +1783771869,72150,2400000,8556,0x0 +1783771871,71600,2400000,7392,0x0 +1783771873,68850,2400000,7342,0x0 +1783771875,72700,2400000,7338,0x0 +1783771877,74350,2400000,9460,0x0 +1783771879,74900,2400000,9633,0x0 +1783771881,73800,2400000,9646,0x0 +1783771883,75450,2400000,9646,0x0 +1783771885,74900,2400000,9646,0x0 +1783771887,74900,2400000,9655,0x0 +1783771889,74350,2400000,9655,0x0 +1783771891,72150,2400000,9661,0x0 +1783771893,72150,2400000,9664,0x0 +1783771896,71050,2400000,9668,0x0 diff --git a/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t4-speech.json b/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t4-speech.json new file mode 100644 index 0000000..807979b --- /dev/null +++ b/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t4-speech.json @@ -0,0 +1 @@ +{"model":"models/nemotron-3.5-asr-streaming-0.6b-q8_0.gguf","threads":4,"load_ms":255.260,"files":[{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":2170.633,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. "},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":2149.692,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. "},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":2152.959,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. "},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":2174.093,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. "},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":2154.337,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. "}]} diff --git a/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t4-speech.thermal.csv b/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t4-speech.thermal.csv new file mode 100644 index 0000000..23fc459 --- /dev/null +++ b/benchmarks/results/rpi5/nemotron-3.5-asr-streaming-0.6b-q8_0-t4-speech.thermal.csv @@ -0,0 +1,7 @@ +1783771787,63900,2400000,7158,0x0 +1783771789,67200,2400000,7156,0x0 +1783771791,69950,2400000,7156,0x0 +1783771793,70500,2400000,7156,0x0 +1783771795,71600,2400000,7156,0x0 +1783771797,71600,2400000,7156,0x0 +1783771799,71050,2400000,7159,0x0 diff --git a/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t1-speech-60s.json b/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t1-speech-60s.json new file mode 100644 index 0000000..13ae5a1 --- /dev/null +++ b/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t1-speech-60s.json @@ -0,0 +1 @@ +{"model":"models/realtime_eou_120m-v1-f16.gguf","threads":1,"load_ms":73.599,"files":[{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":19350.680,"text":"well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait"},{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":19344.173,"text":"well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait"},{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":19349.287,"text":"well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait"}]} diff --git a/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t1-speech-60s.thermal.csv b/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t1-speech-60s.thermal.csv new file mode 100644 index 0000000..eaa2f91 --- /dev/null +++ b/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t1-speech-60s.thermal.csv @@ -0,0 +1,39 @@ +1783770646,64450,2400000,7110,0x0 +1783770648,61700,2400000,7117,0x0 +1783770650,62800,2400000,6691,0x0 +1783770652,62250,2400000,5264,0x0 +1783770654,61150,2400000,5180,0x0 +1783770656,61700,2400000,5173,0x0 +1783770658,60600,2400000,5168,0x0 +1783770660,61700,2400000,5162,0x0 +1783770662,60600,2400000,5159,0x0 +1783770664,61700,2400000,5157,0x0 +1783770666,61150,2400000,5152,0x0 +1783770668,62250,2400000,5150,0x0 +1783770670,58950,2400000,5145,0x0 +1783770672,61150,2400000,5144,0x0 +1783770674,60600,2400000,5141,0x0 +1783770676,59500,2400000,5136,0x0 +1783770678,60600,2400000,5132,0x0 +1783770680,60600,2400000,5129,0x0 +1783770682,60050,2400000,5123,0x0 +1783770684,60050,2400000,5123,0x0 +1783770687,60050,2400000,5120,0x0 +1783770689,60600,2400000,5118,0x0 +1783770691,60050,2400000,5115,0x0 +1783770693,60050,2400000,5113,0x0 +1783770695,58950,2400000,5110,0x0 +1783770697,59500,2400000,5108,0x0 +1783770699,60050,2400000,5107,0x0 +1783770701,60050,2400000,5105,0x0 +1783770703,60050,2400000,5102,0x0 +1783770705,58950,2400000,5102,0x0 +1783770707,57850,2400000,5100,0x0 +1783770709,58950,2400000,5098,0x0 +1783770711,60600,2400000,5095,0x0 +1783770713,59500,2400000,5095,0x0 +1783770715,58950,2400000,5092,0x0 +1783770717,58950,2400000,5090,0x0 +1783770719,60050,2400000,5089,0x0 +1783770721,59500,2400000,5086,0x0 +1783770723,60050,2400000,5084,0x0 diff --git a/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t1-speech.json b/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t1-speech.json new file mode 100644 index 0000000..6fc6a8c --- /dev/null +++ b/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t1-speech.json @@ -0,0 +1 @@ +{"model":"models/realtime_eou_120m-v1-f16.gguf","threads":1,"load_ms":73.867,"files":[{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":1485.950,"text":"well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait"},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":1486.581,"text":"well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait"},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":1487.789,"text":"well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait"},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":1485.579,"text":"well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait"},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":1486.263,"text":"well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait"}]} diff --git a/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t1-speech.thermal.csv b/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t1-speech.thermal.csv new file mode 100644 index 0000000..a8799b3 --- /dev/null +++ b/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t1-speech.thermal.csv @@ -0,0 +1,5 @@ +1783770637,72150,2400000,7085,0x0 +1783770639,69400,2400000,7090,0x0 +1783770641,67750,2400000,7097,0x0 +1783770643,66100,2400000,7102,0x0 +1783770645,64450,2400000,7107,0x0 diff --git a/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t2-speech-60s.json b/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t2-speech-60s.json new file mode 100644 index 0000000..5442500 --- /dev/null +++ b/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t2-speech-60s.json @@ -0,0 +1 @@ +{"model":"models/realtime_eou_120m-v1-f16.gguf","threads":2,"load_ms":73.968,"files":[{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":10879.480,"text":"well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait"},{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":10873.373,"text":"well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait"},{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":10864.894,"text":"well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait"}]} diff --git a/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t2-speech-60s.thermal.csv b/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t2-speech-60s.thermal.csv new file mode 100644 index 0000000..c85fa4e --- /dev/null +++ b/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t2-speech-60s.thermal.csv @@ -0,0 +1,22 @@ +1783770729,63350,2400000,5084,0x0 +1783770731,62250,2400000,5083,0x0 +1783770733,62800,2400000,5080,0x0 +1783770735,64450,2400000,5078,0x0 +1783770737,65550,2400000,5078,0x0 +1783770739,63900,2400000,5074,0x0 +1783770741,63900,2400000,5073,0x0 +1783770743,65000,2400000,5073,0x0 +1783770745,66100,2400000,5073,0x0 +1783770747,66100,2400000,5071,0x0 +1783770749,66100,2400000,5070,0x0 +1783770751,63900,2400000,5070,0x0 +1783770753,66100,2400000,5068,0x0 +1783770755,65550,2400000,5068,0x0 +1783770757,65000,2400000,5070,0x0 +1783770759,66650,2400000,5068,0x0 +1783770761,67200,2400000,5070,0x0 +1783770763,65550,2400000,5070,0x0 +1783770765,66100,2400000,5068,0x0 +1783770767,65550,2400000,5068,0x0 +1783770769,66100,2400000,5069,0x0 +1783770771,66650,2400000,5069,0x0 diff --git a/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t2-speech.json b/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t2-speech.json new file mode 100644 index 0000000..1162efa --- /dev/null +++ b/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t2-speech.json @@ -0,0 +1 @@ +{"model":"models/realtime_eou_120m-v1-f16.gguf","threads":2,"load_ms":74.180,"files":[{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":834.324,"text":"well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait"},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":837.358,"text":"well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait"},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":832.349,"text":"well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait"},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":834.224,"text":"well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait"},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":834.568,"text":"well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait"}]} diff --git a/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t2-speech.thermal.csv b/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t2-speech.thermal.csv new file mode 100644 index 0000000..1145215 --- /dev/null +++ b/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t2-speech.thermal.csv @@ -0,0 +1,3 @@ +1783770724,59500,2400000,5084,0x0 +1783770726,62250,2400000,5083,0x0 +1783770728,61700,2400000,5084,0x0 diff --git a/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t4-speech-60s.json b/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t4-speech-60s.json new file mode 100644 index 0000000..f3098d8 --- /dev/null +++ b/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t4-speech-60s.json @@ -0,0 +1 @@ +{"model":"models/realtime_eou_120m-v1-f16.gguf","threads":4,"load_ms":74.960,"files":[{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":6993.751,"text":"well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait"},{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":7047.824,"text":"well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait"},{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":7044.180,"text":"well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait"}]} diff --git a/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t4-speech-60s.thermal.csv b/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t4-speech-60s.thermal.csv new file mode 100644 index 0000000..284e657 --- /dev/null +++ b/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t4-speech-60s.thermal.csv @@ -0,0 +1,14 @@ +1783770776,70500,2400000,6989,0x0 +1783770778,71050,2400000,7014,0x0 +1783770780,73800,2400000,7020,0x0 +1783770782,74350,2400000,7027,0x0 +1783770784,71050,2400000,7030,0x0 +1783770786,72700,2400000,7043,0x0 +1783770788,74900,2400000,7050,0x0 +1783770790,73250,2400000,7058,0x0 +1783770792,74350,2400000,7067,0x0 +1783770794,74900,2400000,7073,0x0 +1783770796,76000,2400000,9250,0x0 +1783770798,72150,2400000,9419,0x0 +1783770800,73250,2400000,9442,0x0 +1783770802,75450,2400000,9454,0x0 diff --git a/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t4-speech.json b/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t4-speech.json new file mode 100644 index 0000000..f71ed69 --- /dev/null +++ b/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t4-speech.json @@ -0,0 +1 @@ +{"model":"models/realtime_eou_120m-v1-f16.gguf","threads":4,"load_ms":74.067,"files":[{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":534.430,"text":"well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait"},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":525.089,"text":"well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait"},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":533.353,"text":"well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait"},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":525.628,"text":"well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait"},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":526.140,"text":"well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait"}]} diff --git a/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t4-speech.thermal.csv b/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t4-speech.thermal.csv new file mode 100644 index 0000000..96fc708 --- /dev/null +++ b/benchmarks/results/rpi5/realtime_eou_120m-v1-f16-t4-speech.thermal.csv @@ -0,0 +1,2 @@ +1783770773,66650,2400000,5069,0x0 +1783770775,72150,2400000,6833,0x0 diff --git a/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t1-speech-60s.json b/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t1-speech-60s.json new file mode 100644 index 0000000..ee5f9c4 --- /dev/null +++ b/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t1-speech-60s.json @@ -0,0 +1 @@ +{"model":"models/tdt-0.6b-v3-q8_0.gguf","threads":1,"load_ms":250.765,"files":[{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":61046.641,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":61054.716,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":61045.241,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."}]} diff --git a/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t1-speech-60s.thermal.csv b/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t1-speech-60s.thermal.csv new file mode 100644 index 0000000..c7865fa --- /dev/null +++ b/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t1-speech-60s.thermal.csv @@ -0,0 +1,122 @@ +1783770836,60600,2400000,5177,0x0 +1783770838,59500,2400000,5173,0x0 +1783770840,60050,2400000,5166,0x0 +1783770842,59500,2400000,5161,0x0 +1783770844,60600,2400000,5156,0x0 +1783770846,59500,2400000,5151,0x0 +1783770848,60600,2400000,5146,0x0 +1783770850,60600,2400000,5144,0x0 +1783770852,59500,2400000,5138,0x0 +1783770854,60600,2400000,5136,0x0 +1783770856,60600,2400000,5130,0x0 +1783770858,60050,2400000,5126,0x0 +1783770860,59500,2400000,5124,0x0 +1783770862,60050,2400000,5120,0x0 +1783770864,58950,2400000,5117,0x0 +1783770866,59500,2400000,5115,0x0 +1783770868,58950,2400000,5111,0x0 +1783770870,60050,2400000,5108,0x0 +1783770872,58950,2400000,5105,0x0 +1783770874,59500,2400000,5102,0x0 +1783770876,60600,2400000,5100,0x0 +1783770878,58950,2400000,5101,0x0 +1783770880,60050,2400000,5097,0x0 +1783770882,60600,2400000,5095,0x0 +1783770884,60600,2400000,5095,0x0 +1783770886,58950,2400000,5091,0x0 +1783770888,59500,2400000,5090,0x0 +1783770890,60050,2400000,5089,0x0 +1783770892,58950,2400000,5089,0x0 +1783770894,60050,2400000,5088,0x0 +1783770896,59500,2400000,5086,0x0 +1783770898,60600,2400000,5084,0x0 +1783770900,59500,2400000,5082,0x0 +1783770902,60050,2400000,5079,0x0 +1783770904,60050,2400000,5077,0x0 +1783770906,58950,2400000,5077,0x0 +1783770908,60600,2400000,5077,0x0 +1783770910,59500,2400000,5077,0x0 +1783770912,60050,2400000,5077,0x0 +1783770914,60600,2400000,5074,0x0 +1783770916,58950,2400000,5072,0x0 +1783770918,60050,2400000,5071,0x0 +1783770920,60050,2400000,5070,0x0 +1783770922,60050,2400000,5069,0x0 +1783770924,60050,2400000,5069,0x0 +1783770926,60050,2400000,5069,0x0 +1783770928,58950,2400000,5067,0x0 +1783770930,60050,2400000,5067,0x0 +1783770932,60050,2400000,5066,0x0 +1783770934,60050,2400000,5065,0x0 +1783770936,60050,2400000,5064,0x0 +1783770938,58950,2400000,5062,0x0 +1783770940,58950,2400000,5061,0x0 +1783770942,59500,2400000,5061,0x0 +1783770944,58950,2400000,5059,0x0 +1783770946,60050,2400000,5060,0x0 +1783770948,58950,2400000,5060,0x0 +1783770950,58950,2400000,5060,0x0 +1783770952,58950,2400000,5059,0x0 +1783770954,60050,2400000,5058,0x0 +1783770956,58950,2400000,5058,0x0 +1783770958,60600,2400000,5058,0x0 +1783770960,59500,2400000,5055,0x0 +1783770962,59500,2400000,5057,0x0 +1783770964,58950,2400000,5057,0x0 +1783770966,60050,2400000,5057,0x0 +1783770968,58950,2400000,5057,0x0 +1783770970,60050,2400000,5053,0x0 +1783770972,59500,2400000,5054,0x0 +1783770974,60600,2400000,5053,0x0 +1783770976,59500,2400000,5053,0x0 +1783770978,59500,2400000,5053,0x0 +1783770980,58950,2400000,5053,0x0 +1783770982,59500,2400000,5053,0x0 +1783770984,60050,2400000,5053,0x0 +1783770986,60050,2400000,5052,0x0 +1783770989,58400,2400000,5053,0x0 +1783770991,60050,2400000,5053,0x0 +1783770993,59500,2400000,5053,0x0 +1783770995,58400,2400000,5050,0x0 +1783770997,60050,2400000,5050,0x0 +1783770999,60050,2400000,5053,0x0 +1783771001,58950,2400000,5053,0x0 +1783771003,58950,2400000,5050,0x0 +1783771005,60050,2400000,5049,0x0 +1783771007,59500,2400000,5051,0x0 +1783771009,60050,2400000,5050,0x0 +1783771011,60050,2400000,5047,0x0 +1783771013,59500,2400000,5048,0x0 +1783771015,58950,2400000,5047,0x0 +1783771017,59500,2400000,5048,0x0 +1783771019,58950,2400000,5049,0x0 +1783771021,59500,2400000,5047,0x0 +1783771023,60600,2400000,5045,0x0 +1783771025,58950,2400000,5047,0x0 +1783771027,59500,2400000,5047,0x0 +1783771029,58950,2400000,5046,0x0 +1783771031,60050,2400000,5045,0x0 +1783771033,60050,2400000,5047,0x0 +1783771035,59500,2400000,5045,0x0 +1783771037,60050,2400000,5046,0x0 +1783771039,60050,2400000,5045,0x0 +1783771041,60050,2400000,5047,0x0 +1783771043,58950,2400000,5046,0x0 +1783771045,58950,2400000,5045,0x0 +1783771047,61150,2400000,5046,0x0 +1783771049,58950,2400000,5044,0x0 +1783771051,58950,2400000,5046,0x0 +1783771053,59500,2400000,5046,0x0 +1783771055,60050,2400000,5043,0x0 +1783771057,59500,2400000,5043,0x0 +1783771059,60050,2400000,5043,0x0 +1783771061,59500,2400000,5042,0x0 +1783771063,59500,2400000,5044,0x0 +1783771065,60050,2400000,5042,0x0 +1783771067,59500,2400000,5042,0x0 +1783771069,59500,2400000,5043,0x0 +1783771071,58950,2400000,5042,0x0 +1783771073,60050,2400000,5042,0x0 +1783771075,58950,2400000,5042,0x0 +1783771077,58400,2400000,5042,0x0 +1783771079,60050,2400000,5042,0x0 diff --git a/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t1-speech.json b/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t1-speech.json new file mode 100644 index 0000000..d18a488 --- /dev/null +++ b/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t1-speech.json @@ -0,0 +1 @@ +{"model":"models/tdt-0.6b-v3-q8_0.gguf","threads":1,"load_ms":249.904,"files":[{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":5268.319,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":5268.881,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":5267.823,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":5266.273,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":5267.202,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."}]} diff --git a/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t1-speech.thermal.csv b/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t1-speech.thermal.csv new file mode 100644 index 0000000..2ccaccb --- /dev/null +++ b/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t1-speech.thermal.csv @@ -0,0 +1,16 @@ +1783770804,72150,2400000,9469,0x0 +1783770806,67200,2400000,7485,0x0 +1783770808,65550,2400000,7225,0x0 +1783770810,63900,2400000,7215,0x0 +1783770812,62800,2400000,6986,0x0 +1783770814,61700,2400000,5351,0x0 +1783770816,62250,2400000,5253,0x0 +1783770818,61150,2400000,5240,0x0 +1783770820,61700,2400000,5231,0x0 +1783770822,61700,2400000,5225,0x0 +1783770824,60600,2400000,5218,0x0 +1783770826,60600,2400000,5211,0x0 +1783770828,60050,2400000,5202,0x0 +1783770830,60600,2400000,5196,0x0 +1783770832,60600,2400000,5189,0x0 +1783770834,58950,2400000,5182,0x0 diff --git a/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t2-speech-60s.json b/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t2-speech-60s.json new file mode 100644 index 0000000..a46436f --- /dev/null +++ b/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t2-speech-60s.json @@ -0,0 +1 @@ +{"model":"models/tdt-0.6b-v3-q8_0.gguf","threads":2,"load_ms":250.203,"files":[{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":32904.771,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":32897.665,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":32885.037,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."}]} diff --git a/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t2-speech-60s.thermal.csv b/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t2-speech-60s.thermal.csv new file mode 100644 index 0000000..735744e --- /dev/null +++ b/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t2-speech-60s.thermal.csv @@ -0,0 +1,66 @@ +1783771098,62800,2400000,5043,0x0 +1783771100,64450,2400000,5042,0x0 +1783771102,65550,2400000,5042,0x0 +1783771104,65000,2400000,5042,0x0 +1783771106,66650,2400000,5043,0x0 +1783771108,65550,2400000,5043,0x0 +1783771110,67200,2400000,5043,0x0 +1783771112,66650,2400000,5044,0x0 +1783771114,67750,2400000,6282,0x0 +1783771116,67200,2400000,6947,0x0 +1783771118,67750,2400000,6979,0x0 +1783771120,66650,2400000,6983,0x0 +1783771122,68300,2400000,6984,0x0 +1783771124,66100,2400000,6989,0x0 +1783771126,68300,2400000,6997,0x0 +1783771128,66100,2400000,7012,0x0 +1783771130,66650,2400000,7035,0x0 +1783771132,65550,2400000,7040,0x0 +1783771134,66650,2400000,7053,0x0 +1783771136,66650,2400000,7060,0x0 +1783771138,65550,2400000,7068,0x0 +1783771140,65550,2400000,7068,0x0 +1783771142,67200,2400000,7070,0x0 +1783771144,65550,2400000,7073,0x0 +1783771146,66650,2400000,7087,0x0 +1783771148,65550,2400000,7093,0x0 +1783771150,66100,2400000,7097,0x0 +1783771152,66650,2400000,7098,0x0 +1783771154,65550,2400000,7097,0x0 +1783771156,66650,2400000,7097,0x0 +1783771158,65000,2400000,7098,0x0 +1783771160,66650,2400000,7112,0x0 +1783771162,66100,2400000,7115,0x0 +1783771164,63350,2400000,7117,0x0 +1783771166,65000,2400000,7119,0x0 +1783771168,66100,2400000,7120,0x0 +1783771170,66650,2400000,7122,0x0 +1783771172,66100,2400000,7125,0x0 +1783771174,66100,2400000,7124,0x0 +1783771176,65550,2400000,7127,0x0 +1783771178,66100,2400000,7129,0x0 +1783771180,66100,2400000,7127,0x0 +1783771182,66100,2400000,7130,0x0 +1783771184,67200,2400000,7129,0x0 +1783771186,66100,2400000,7132,0x0 +1783771188,66100,2400000,7134,0x0 +1783771190,66100,2400000,7132,0x0 +1783771192,66650,2400000,7130,0x0 +1783771194,65550,2400000,7130,0x0 +1783771196,65000,2400000,7129,0x0 +1783771198,65000,2400000,7134,0x0 +1783771200,65550,2400000,7130,0x0 +1783771202,66100,2400000,7134,0x0 +1783771204,66100,2400000,7134,0x0 +1783771206,64450,2400000,7130,0x0 +1783771208,66100,2400000,7134,0x0 +1783771210,66100,2400000,7130,0x0 +1783771212,66650,2400000,7122,0x0 +1783771214,65550,2400000,7125,0x0 +1783771216,66100,2400000,7134,0x0 +1783771218,66100,2400000,7136,0x0 +1783771220,65000,2400000,7137,0x0 +1783771222,65550,2400000,7136,0x0 +1783771224,65550,2400000,7136,0x0 +1783771226,65000,2400000,7137,0x0 +1783771228,65550,2400000,7137,0x0 diff --git a/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t2-speech.json b/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t2-speech.json new file mode 100644 index 0000000..570fbc2 --- /dev/null +++ b/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t2-speech.json @@ -0,0 +1 @@ +{"model":"models/tdt-0.6b-v3-q8_0.gguf","threads":2,"load_ms":249.204,"files":[{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":2799.255,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":2797.233,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":2796.684,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":2800.282,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":2796.738,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."}]} diff --git a/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t2-speech.thermal.csv b/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t2-speech.thermal.csv new file mode 100644 index 0000000..7b6cf77 --- /dev/null +++ b/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t2-speech.thermal.csv @@ -0,0 +1,9 @@ +1783771080,59500,2400000,5042,0x0 +1783771082,61150,2400000,5041,0x0 +1783771084,61150,2400000,5042,0x0 +1783771086,62800,2400000,5043,0x0 +1783771088,62250,2400000,5042,0x0 +1783771090,62800,2400000,5042,0x0 +1783771092,63350,2400000,5042,0x0 +1783771094,64450,2400000,5042,0x0 +1783771097,62800,2400000,5041,0x0 diff --git a/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t4-speech-60s.json b/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t4-speech-60s.json new file mode 100644 index 0000000..8855d1e --- /dev/null +++ b/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t4-speech-60s.json @@ -0,0 +1 @@ +{"model":"models/tdt-0.6b-v3-q8_0.gguf","threads":4,"load_ms":250.648,"files":[{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":19506.512,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":19571.358,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":19530.253,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."}]} diff --git a/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t4-speech-60s.thermal.csv b/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t4-speech-60s.thermal.csv new file mode 100644 index 0000000..73f2f52 --- /dev/null +++ b/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t4-speech-60s.thermal.csv @@ -0,0 +1,39 @@ +1783771239,71050,2400000,7139,0x0 +1783771241,71050,2400000,7134,0x0 +1783771243,72700,2400000,7134,0x0 +1783771245,72700,2400000,7137,0x0 +1783771247,74350,2400000,7139,0x0 +1783771250,73800,2400000,9247,0x0 +1783771252,74900,2400000,9425,0x0 +1783771254,74350,2400000,9439,0x0 +1783771256,76550,2400000,9445,0x0 +1783771258,74900,2400000,9457,0x0 +1783771260,71050,2400000,8488,0x0 +1783771262,72700,2400000,7249,0x0 +1783771264,73800,2400000,7208,0x0 +1783771266,76000,2400000,9239,0x0 +1783771268,75450,2400000,9496,0x0 +1783771270,74350,2400000,9508,0x0 +1783771272,76000,2400000,9523,0x0 +1783771274,76000,2400000,9545,0x0 +1783771276,76000,2400000,9557,0x0 +1783771278,72700,2400000,9563,0x0 +1783771280,73250,2400000,9572,0x0 +1783771282,76000,2400000,9581,0x0 +1783771284,74350,2400000,9590,0x0 +1783771286,74900,2400000,9596,0x0 +1783771288,75450,2400000,9606,0x0 +1783771290,76000,2400000,9615,0x0 +1783771292,76000,2400000,9621,0x0 +1783771294,75450,2400000,9630,0x0 +1783771296,75450,2400000,9637,0x0 +1783771299,70500,2400000,9643,0x0 +1783771301,72150,2400000,9646,0x0 +1783771303,75450,2400000,9649,0x0 +1783771305,74350,2400000,9649,0x0 +1783771307,76000,2400000,9658,0x0 +1783771309,76000,2400000,9661,0x0 +1783771311,75450,2400000,9668,0x0 +1783771313,76000,2400000,9671,0x0 +1783771315,76000,2400000,9674,0x0 +1783771317,73800,2400000,9674,0x0 diff --git a/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t4-speech.json b/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t4-speech.json new file mode 100644 index 0000000..e961d9f --- /dev/null +++ b/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t4-speech.json @@ -0,0 +1 @@ +{"model":"models/tdt-0.6b-v3-q8_0.gguf","threads":4,"load_ms":250.070,"files":[{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":1613.127,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":1611.036,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":1611.702,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":1612.984,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":1606.671,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."}]} diff --git a/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t4-speech.thermal.csv b/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t4-speech.thermal.csv new file mode 100644 index 0000000..c483e53 --- /dev/null +++ b/benchmarks/results/rpi5/tdt-0.6b-v3-q8_0-t4-speech.thermal.csv @@ -0,0 +1,5 @@ +1783771229,63900,2400000,7137,0x0 +1783771231,66650,2400000,7144,0x0 +1783771233,69400,2400000,7142,0x0 +1783771236,71050,2400000,7142,0x0 +1783771238,71600,2400000,7144,0x0 diff --git a/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t1-speech-60s.json b/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t1-speech-60s.json new file mode 100644 index 0000000..9d71dd3 --- /dev/null +++ b/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t1-speech-60s.json @@ -0,0 +1 @@ +{"model":"models/tdt_ctc-110m-q8_0.gguf","threads":1,"load_ms":52.387,"files":[{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":16896.986,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":16893.409,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":16894.160,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."}]} diff --git a/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t1-speech-60s.thermal.csv b/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t1-speech-60s.thermal.csv new file mode 100644 index 0000000..844fb99 --- /dev/null +++ b/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t1-speech-60s.thermal.csv @@ -0,0 +1,34 @@ +1783770500,54000,2400000,2711,0x0 +1783770502,56200,2400000,2712,0x0 +1783770504,56200,2400000,2710,0x0 +1783770506,55100,2400000,2709,0x0 +1783770508,57300,2400000,2710,0x0 +1783770510,57300,2400000,2710,0x0 +1783770512,56750,2400000,2711,0x0 +1783770514,57300,2400000,2711,0x0 +1783770516,57300,2400000,2711,0x0 +1783770518,57850,2400000,2713,0x0 +1783770520,58950,2400000,2713,0x0 +1783770522,58950,2400000,2713,0x0 +1783770524,60050,2400000,2714,0x0 +1783770526,58400,2400000,2714,0x0 +1783770528,60050,2400000,2715,0x0 +1783770530,59500,2400000,4026,0x0 +1783770532,59500,2400000,4821,0x0 +1783770534,58950,2400000,4856,0x0 +1783770536,60050,2400000,4863,0x0 +1783770538,58400,2400000,4870,0x0 +1783770540,59500,2400000,4876,0x0 +1783770542,58400,2400000,4882,0x0 +1783770544,60050,2400000,4890,0x0 +1783770546,58400,2400000,4901,0x0 +1783770548,57850,2400000,4907,0x0 +1783770550,59500,2400000,4914,0x0 +1783770552,58400,2400000,4921,0x0 +1783770554,59500,2400000,4927,0x0 +1783770556,58950,2400000,4935,0x0 +1783770558,57850,2400000,4940,0x0 +1783770560,58400,2400000,4946,0x0 +1783770562,58950,2400000,4951,0x0 +1783770564,58950,2400000,4958,0x0 +1783770566,58950,2400000,4965,0x0 diff --git a/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t1-speech.json b/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t1-speech.json new file mode 100644 index 0000000..05a2546 --- /dev/null +++ b/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t1-speech.json @@ -0,0 +1 @@ +{"model":"models/tdt_ctc-110m-q8_0.gguf","threads":1,"load_ms":52.539,"files":[{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":1192.448,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":1191.806,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":1193.469,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":1191.266,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":1193.680,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."}]} diff --git a/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t1-speech.thermal.csv b/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t1-speech.thermal.csv new file mode 100644 index 0000000..2d90281 --- /dev/null +++ b/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t1-speech.thermal.csv @@ -0,0 +1,4 @@ +1783770493,50150,2400000,2710,0x0 +1783770495,53450,2400000,2712,0x0 +1783770497,54550,2400000,2712,0x0 +1783770499,55100,2400000,2712,0x0 diff --git a/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t2-speech-60s.json b/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t2-speech-60s.json new file mode 100644 index 0000000..f1c9267 --- /dev/null +++ b/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t2-speech-60s.json @@ -0,0 +1 @@ +{"model":"models/tdt_ctc-110m-q8_0.gguf","threads":2,"load_ms":52.943,"files":[{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":9534.368,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":9534.166,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":9531.783,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."}]} diff --git a/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t2-speech-60s.thermal.csv b/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t2-speech-60s.thermal.csv new file mode 100644 index 0000000..98727d4 --- /dev/null +++ b/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t2-speech-60s.thermal.csv @@ -0,0 +1,20 @@ +1783770572,61150,2400000,4976,0x0 +1783770574,61700,2400000,4982,0x0 +1783770576,61700,2400000,4985,0x0 +1783770578,63900,2400000,4988,0x0 +1783770580,63350,2400000,4991,0x0 +1783770582,63350,2400000,4993,0x0 +1783770584,62800,2400000,4997,0x0 +1783770586,64450,2400000,5002,0x0 +1783770588,63350,2400000,5003,0x0 +1783770590,63900,2400000,5006,0x0 +1783770592,64450,2400000,5007,0x0 +1783770594,63900,2400000,5013,0x0 +1783770596,66100,2400000,5015,0x0 +1783770598,65550,2400000,5015,0x0 +1783770600,66100,2400000,5020,0x0 +1783770602,65550,2400000,5022,0x0 +1783770604,64450,2400000,5024,0x0 +1783770606,66100,2400000,5026,0x0 +1783770608,66100,2400000,5028,0x0 +1783770610,65000,2400000,5031,0x0 diff --git a/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t2-speech.json b/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t2-speech.json new file mode 100644 index 0000000..7de03dc --- /dev/null +++ b/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t2-speech.json @@ -0,0 +1 @@ +{"model":"models/tdt_ctc-110m-q8_0.gguf","threads":2,"load_ms":52.642,"files":[{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":663.923,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":667.639,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":663.121,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":663.409,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":668.709,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."}]} diff --git a/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t2-speech.thermal.csv b/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t2-speech.thermal.csv new file mode 100644 index 0000000..9cfb142 --- /dev/null +++ b/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t2-speech.thermal.csv @@ -0,0 +1,3 @@ +1783770568,59500,2400000,4967,0x0 +1783770570,61150,2400000,4973,0x0 +1783770572,62250,2400000,4976,0x0 diff --git a/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t4-speech-60s.json b/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t4-speech-60s.json new file mode 100644 index 0000000..f0aa2d0 --- /dev/null +++ b/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t4-speech-60s.json @@ -0,0 +1 @@ +{"model":"models/tdt_ctc-110m-q8_0.gguf","threads":4,"load_ms":53.289,"files":[{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":6167.231,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":6175.973,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech-60s.wav","audio_sec":66.915000,"proc_ms":6162.031,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."}]} diff --git a/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t4-speech-60s.thermal.csv b/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t4-speech-60s.thermal.csv new file mode 100644 index 0000000..9ec9ded --- /dev/null +++ b/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t4-speech-60s.thermal.csv @@ -0,0 +1,13 @@ +1783770612,69950,2400000,6677,0x0 +1783770614,70500,2400000,6960,0x0 +1783770617,72150,2400000,6981,0x0 +1783770619,72150,2400000,6994,0x0 +1783770621,72150,2400000,7006,0x0 +1783770623,72150,2400000,7017,0x0 +1783770625,72700,2400000,7025,0x0 +1783770627,72150,2400000,7035,0x0 +1783770629,74900,2400000,7045,0x0 +1783770631,72700,2400000,7058,0x0 +1783770633,73800,2400000,7065,0x0 +1783770635,74900,2400000,7078,0x0 +1783770637,73800,2400000,7083,0x0 diff --git a/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t4-speech.json b/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t4-speech.json new file mode 100644 index 0000000..905deed --- /dev/null +++ b/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t4-speech.json @@ -0,0 +1 @@ +{"model":"models/tdt_ctc-110m-q8_0.gguf","threads":4,"load_ms":52.236,"files":[{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":412.331,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":412.262,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":413.174,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":422.687,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."},{"path":"/home/rich/parakeet-bench/audio/speech.wav","audio_sec":7.435000,"proc_ms":413.083,"text":"Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait."}]} diff --git a/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t4-speech.thermal.csv b/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t4-speech.thermal.csv new file mode 100644 index 0000000..1e94b20 --- /dev/null +++ b/benchmarks/results/rpi5/tdt_ctc-110m-q8_0-t4-speech.thermal.csv @@ -0,0 +1,2 @@ +1783770610,65000,2400000,5031,0x0 +1783770612,68850,2400000,6309,0x0 diff --git a/benchmarks/results/rpi5/transcribe-nemotron-3.5-asr-streaming-0.6b-q8_0.txt b/benchmarks/results/rpi5/transcribe-nemotron-3.5-asr-streaming-0.6b-q8_0.txt new file mode 100644 index 0000000..d8e1b61 --- /dev/null +++ b/benchmarks/results/rpi5/transcribe-nemotron-3.5-asr-streaming-0.6b-q8_0.txt @@ -0,0 +1 @@ +Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. diff --git a/benchmarks/results/rpi5/transcribe-realtime_eou_120m-v1-f16.txt b/benchmarks/results/rpi5/transcribe-realtime_eou_120m-v1-f16.txt new file mode 100644 index 0000000..875e507 --- /dev/null +++ b/benchmarks/results/rpi5/transcribe-realtime_eou_120m-v1-f16.txt @@ -0,0 +1 @@ +well i don't wish to see it any more observed phoebe turning away her eyes it is certainly very like the old portrait diff --git a/benchmarks/results/rpi5/transcribe-tdt-0.6b-v3-q8_0.txt b/benchmarks/results/rpi5/transcribe-tdt-0.6b-v3-q8_0.txt new file mode 100644 index 0000000..840ea67 --- /dev/null +++ b/benchmarks/results/rpi5/transcribe-tdt-0.6b-v3-q8_0.txt @@ -0,0 +1 @@ +Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. diff --git a/benchmarks/results/rpi5/transcribe-tdt_ctc-110m-q8_0.txt b/benchmarks/results/rpi5/transcribe-tdt_ctc-110m-q8_0.txt new file mode 100644 index 0000000..840ea67 --- /dev/null +++ b/benchmarks/results/rpi5/transcribe-tdt_ctc-110m-q8_0.txt @@ -0,0 +1 @@ +Well, I don't wish to see it any more, observed Phoebe, turning away her eyes. It is certainly very like the old portrait. diff --git a/benchmarks/rpi5.md b/benchmarks/rpi5.md new file mode 100644 index 0000000..fddae0a --- /dev/null +++ b/benchmarks/rpi5.md @@ -0,0 +1,93 @@ +# Raspberry Pi 5 (active cooling) benchmark + +CPU-only RTFx for the four cached models on a fan-cooled Pi 5, with thermal, +clock, fan and throttle telemetry sampled alongside every run — the point was +both the speed numbers and whether the Active Cooler holds the clocks. It +does: **every cell ran the full 2.4 GHz with `throttled=0x0`**, peaking at +77.1 °C (soft limit 85 °C), fan topping out around 9.7 k rpm on the 0.6b +models from a 2.7 k rpm / 50 °C idle. + +Raw per-run JSON and 2-second telemetry CSVs: `results/rpi5/`. + +## Setup + +| | | +|---|---| +| Board | Raspberry Pi 5 Model B Rev 1.1, 8 GB, Active Cooler | +| OS / kernel | Raspberry Pi OS (Debian 13 trixie), 6.18.34+rpt-rpi-2712, glibc 2.41 | +| CPU | 4× Cortex-A76 @ 2.4 GHz, governor pinned to `performance` for the runs | +| Binary | static aarch64 `parakeet-cli` from `docker/Dockerfile.static` (`GGML_CPU_ARM_ARCH=armv8.2-a+dotprod+fp16`, in-tree ggml patches applied) | +| Harness | `scripts/bench_rpi5.sh` — `parakeet-cli bench`, median over 5 passes (7.4 s clip) / 3 passes (60 s clip), model load excluded; nemotron runs `--decoder tdt --lang en-US` | +| Audio | `tests/fixtures/speech.wav` (7.4 s) and the same clip tiled to 67 s | + +## RTFx (audio seconds per compute second; > 1 = real time) + +`speech.wav`, 7.4 s: + +| model | t=1 | t=2 | t=4 | load ms | +|---|---|---|---|---| +| tdt_ctc-110m-q8_0 | 6.24 | 11.20 | 18.00 | 52 | +| realtime_eou_120m-v1-f16 | 5.00 | 8.91 | 14.13 | 74 | +| tdt-0.6b-v3-q8_0 | 1.41 | 2.66 | 4.61 | 250 | +| nemotron-3.5-asr-streaming-0.6b-q8_0 (offline) | 1.25 | 2.23 | 3.45 | 255 | + +67 s clip (long-form / chunked path): + +| model | t=1 | t=2 | t=4 | +|---|---|---|---| +| tdt_ctc-110m-q8_0 | 3.96 | 7.02 | 10.85 | +| realtime_eou_120m-v1-f16 | 3.46 | 6.15 | 9.50 | +| tdt-0.6b-v3-q8_0 | 1.10 | 2.03 | 3.43 | +| nemotron-3.5-asr-streaming-0.6b-q8_0 (offline) | 1.01 | 1.81 | 2.79 | + +Takeaways: + +- The **110m hybrid is 18× real time** on 4 threads and still 6× on one; the + small models are the obvious Pi fit. +- The **0.6b models are comfortably real time at 4 threads** (3.4–4.6×) and + hold ≥ 1× even single-threaded on the long clip. tdt-0.6b-v3-q8_0 peaks at + ~1.0 GB RSS (4 threads, `VmHWM`), so even a 2 GB Pi is within reach and a + 4 GB one has plenty of headroom. +- Thread scaling is healthy: ~1.8× from 1→2 threads and ~1.6× from 2→4 + across the board. +- Long-form costs roughly a third of the short-clip RTFx (attention window + growth in the chunked path); scaling with threads is unchanged. +- For scale: the same nemotron q8_0 measurement (same clip, same + methodology) does 30.8× on a Ryzen 9 9950X3D at 8 threads + (`BENCHMARK.md`), so the Pi lands at ~1/9th of a big desktop per clip. + +## Thermals — what the fan buys + +Telemetry per cell in `results/rpi5/*.thermal.csv` +(epoch, m°C, cpu kHz, fan rpm, `vcgencmd get_throttled`): + +- **No throttling in any of the 24 cells** (`0x0` everywhere, including the + sustained back-to-back 0.6b runs); `scaling_cur_freq` never left 2 400 000. +- Peak temperature 77.1 °C (nemotron, 60 s clip); the small models stay + ≤ 76 °C, short-clip cells ≤ 72.2 °C. +- Fan: 2.7 k rpm at 50 °C idle, ~6.3 k on the 110m, saturating ~9.7 k rpm on + the 0.6b models. + +## Output sanity + +All four models transcribe `speech.wav` correctly on the Pi +(`results/rpi5/transcribe-*.txt`): the tdt/hybrid transcripts are +byte-identical to the x86 reference text, `realtime_eou` is lowercase and +unpunctuated by design, and nemotron emits clean text with no ``-style +LID tags. Per-clip transcripts are identical across every pass and thread +count. + +## Reproducing + +```sh +# on the build host +docker buildx build --platform linux/arm64 -f docker/Dockerfile.static \ + --target export --output type=local,dest=build/arm64 . + +# on the Pi: dir with parakeet-cli, models/*.gguf, audio/{speech,speech-60s}.wav +sudo sh -c 'for g in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo performance > $g; done' +./bench_rpi5.sh # scripts/bench_rpi5.sh +``` + +The aarch64 AppImage (`--target export-appimage`) was validated on the same +Pi: direct FUSE execution, identical transcript. diff --git a/docker/Dockerfile.static b/docker/Dockerfile.static new file mode 100644 index 0000000..3e5bd4e --- /dev/null +++ b/docker/Dockerfile.static @@ -0,0 +1,86 @@ +# Static parakeet-cli builds (arm64 + amd64) and AppImage packaging, via +# docker buildx (+ qemu user emulation for foreign arches; slow but +# reproducible). +# +# Raw binary, Pi 5 tuned (the original arm64 cross-compile flow): +# +# docker buildx build --platform linux/arm64 -f docker/Dockerfile.static \ +# --target export --output type=local,dest=build/arm64 . +# +# Binary-only AppImages for both arches: +# +# docker buildx build --platform linux/arm64,linux/amd64 -f docker/Dockerfile.static \ +# --target export-appimage --output type=local,dest=build/appimage . +# -> build/appimage/linux_{arm64,amd64}/parakeet-cli--{aarch64,x86_64}.AppImage +# +# The base is ubuntu:24.04 so the toolchain (gcc 13.3, glibc 2.39) and +# resulting ABI match a Raspberry Pi 5 running Ubuntu 24.04 -- the binary +# drops straight onto the Pi (it links only the system libc/libstdc++/libgomp; +# ggml and libparakeet are static). The AppImage bundles libstdc++/libgomp but +# not glibc, so it carries the same glibc floor. +# +# arm64 defaults to the Pi 5's Cortex-A76 (armv8.2-a + dotprod + fp16), which +# is what ggml's quantized kernels exploit. Override --build-arg +# GGML_CPU_ARM_ARCH for a different chip, or set it to a baseline like +# "armv8-a" for a portable (slower) binary. amd64 pins a portable Haswell+ +# baseline (AVX2/FMA/F16C/BMI2) since GGML_NATIVE=OFF. +# +# The build context must be a checkout with the ggml submodule populated +# (git submodule update --init --recursive third_party/ggml). +ARG UBUNTU=24.04 + +FROM ubuntu:${UBUNTU} AS build +ARG TARGETARCH +ARG GGML_CPU_ARM_ARCH=armv8.2-a+dotprod+fp16 +ARG PARAKEET_VERSION=0.0.1 +ARG JOBS=8 +RUN apt-get update && apt-get install -y --no-install-recommends \ + build-essential cmake git ca-certificates \ + && rm -rf /var/lib/apt/lists/* +WORKDIR /src +COPY . . +# The build context drops .git (see .dockerignore), so the ggml submodule's +# .git gitlink dangles and CMake's scripts/apply_ggml_patches.sh (which uses +# `git apply`) can't run. Re-init a throwaway git repo in the submodule tree so +# the in-tree ggml patches (broadcast-fold sgemm, etc.) apply during configure. +RUN rm -f third_party/ggml/.git && git -C third_party/ggml init -q +# Static, self-contained CLI: BUILD_SHARED_LIBS=OFF keeps ggml + libparakeet in +# the binary; GGML_NATIVE=OFF plus the per-arch flags target the machine the +# binary will run on instead of the build host. Skip the server + tests to +# keep the qemu build lean. +RUN if [ "$TARGETARCH" = "arm64" ]; then \ + ARCH_FLAGS="-DGGML_CPU_ARM_ARCH=${GGML_CPU_ARM_ARCH}"; \ + else \ + ARCH_FLAGS="-DGGML_AVX2=ON -DGGML_FMA=ON -DGGML_F16C=ON -DGGML_BMI2=ON"; \ + fi \ + && cmake -S . -B build/static \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=OFF \ + -DGGML_NATIVE=OFF \ + ${ARCH_FLAGS} \ + -DPARAKEET_BUILD_CLI=ON \ + -DPARAKEET_BUILD_SERVER=OFF \ + -DPARAKEET_BUILD_TESTS=OFF \ + -DPARAKEET_VERSION=${PARAKEET_VERSION} \ + && cmake --build build/static -j${JOBS} --target parakeet-cli + +# Thin export stage: `--output type=local` against this target writes just the +# binary to the host (no image layers, no apt cruft). +FROM scratch AS export +COPY --from=build /src/build/static/examples/cli/parakeet-cli / + +# AppImage packaging runs in the target-arch image so make-appimage.sh can +# resolve libstdc++/libgomp from the running system; only appimagetool runs +# under qemu for the foreign arch, which is negligible next to the compile. +FROM build AS appimage +ARG TARGETARCH +ARG PARAKEET_VERSION=0.0.1 +RUN apt-get update && apt-get install -y --no-install-recommends \ + curl file \ + && rm -rf /var/lib/apt/lists/* +RUN ARCH=$([ "$TARGETARCH" = "arm64" ] && echo aarch64 || echo x86_64) \ + && packaging/appimage/make-appimage.sh \ + build/static/examples/cli/parakeet-cli "$ARCH" "$PARAKEET_VERSION" /out + +FROM scratch AS export-appimage +COPY --from=appimage /out/ / diff --git a/packaging/appimage/AppRun b/packaging/appimage/AppRun new file mode 100755 index 0000000..0fa51a7 --- /dev/null +++ b/packaging/appimage/AppRun @@ -0,0 +1,7 @@ +#!/bin/sh +# AppImage entrypoint: point the loader at the bundled libstdc++/libgomp and +# hand straight off to parakeet-cli. glibc stays system-provided, so the +# AppImage needs a glibc at least as new as the build base's. +HERE=$(dirname "$(readlink -f "$0")") +export LD_LIBRARY_PATH="${HERE}/usr/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}" +exec "${HERE}/usr/bin/parakeet-cli" "$@" diff --git a/packaging/appimage/make-appimage.sh b/packaging/appimage/make-appimage.sh new file mode 100755 index 0000000..0ff0257 --- /dev/null +++ b/packaging/appimage/make-appimage.sh @@ -0,0 +1,82 @@ +#!/bin/sh +# Bundle a static parakeet-cli into a binary-only AppImage. +# +# make-appimage.sh +# -> /parakeet-cli--.AppImage +# +# Single source of truth for AppImage packaging: docker/Dockerfile.static's +# appimage stage and release.yml's cpu matrix entries both call this. The +# binary must already be self-contained apart from libc/libstdc++/libgomp +# (BUILD_SHARED_LIBS=OFF); libstdc++/libgomp are bundled from the running +# system, so this must run on a system whose native arch matches -- +# ldd has to resolve them. +# +# appimagetool (host arch) and the type2 runtime (target arch) are fetched +# from their "continuous" releases unless APPIMAGETOOL / APPIMAGE_RUNTIME +# point at existing files. APPIMAGE_EXTRACT_AND_RUN keeps FUSE out of the +# loop, so this works in containers and on CI runners. +set -eu + +BIN=$1 +ARCH=$2 +VERSION=$3 +OUTDIR=$4 + +HERE=$(cd "$(dirname "$0")" && pwd) +WORK=$(mktemp -d) +trap 'rm -rf "$WORK"' EXIT + +fetch() { + if command -v curl >/dev/null; then curl -fsSL -o "$2" "$1" + else wget -qO "$2" "$1"; fi +} + +# --- AppDir ------------------------------------------------------------------ +APPDIR=$WORK/AppDir +mkdir -p "$APPDIR/usr/bin" "$APPDIR/usr/lib" +cp "$BIN" "$APPDIR/usr/bin/parakeet-cli" +chmod +x "$APPDIR/usr/bin/parakeet-cli" + +# The two non-libc dynamic deps, resolved from the running system (cp -L +# follows the .so.N symlinks so the AppDir holds real files under the SONAME). +for lib in libstdc++.so.6 libgomp.so.1; do + path=$(ldd "$BIN" | awk -v l="$lib" '$1 == l { print $3 }') + if [ -z "$path" ]; then + echo "error: $lib not found in 'ldd $BIN' output" >&2 + exit 1 + fi + cp -L "$path" "$APPDIR/usr/lib/$lib" +done + +cp "$HERE/AppRun" "$APPDIR/AppRun" +chmod +x "$APPDIR/AppRun" +cp "$HERE/parakeet-cli.desktop" "$APPDIR/parakeet-cli.desktop" +cp "$HERE/parakeet-cli.png" "$APPDIR/parakeet-cli.png" +ln -sf parakeet-cli.png "$APPDIR/.DirIcon" + +# --- appimagetool + runtime --------------------------------------------------- +if [ -z "${APPIMAGETOOL:-}" ]; then + APPIMAGETOOL=$WORK/appimagetool + fetch "https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-$(uname -m).AppImage" \ + "$APPIMAGETOOL" + chmod +x "$APPIMAGETOOL" + # qemu-user's binfmt mask requires the ELF e_ident pad bytes to be zero, + # but an AppImage carries 'AI\x02' at offset 8 -- under emulation (the + # docker/Dockerfile.static arm64 stage) the tool gets "Exec format error" + # before it even starts. Zero the three magic bytes: plain padding to the + # ELF loader, and with APPIMAGE_EXTRACT_AND_RUN appimagetool never needs + # its own AppImage magic. + printf '\0\0\0' | dd of="$APPIMAGETOOL" bs=1 seek=8 count=3 conv=notrunc 2>/dev/null +fi +if [ -z "${APPIMAGE_RUNTIME:-}" ]; then + APPIMAGE_RUNTIME=$WORK/runtime-$ARCH + fetch "https://github.com/AppImage/type2-runtime/releases/download/continuous/runtime-$ARCH" \ + "$APPIMAGE_RUNTIME" +fi + +# --- pack --------------------------------------------------------------------- +mkdir -p "$OUTDIR" +OUT=$OUTDIR/parakeet-cli-$VERSION-$ARCH.AppImage +ARCH=$ARCH APPIMAGE_EXTRACT_AND_RUN=1 \ + "$APPIMAGETOOL" --runtime-file "$APPIMAGE_RUNTIME" "$APPDIR" "$OUT" +echo "built $OUT" diff --git a/packaging/appimage/parakeet-cli.desktop b/packaging/appimage/parakeet-cli.desktop new file mode 100644 index 0000000..02af4cf --- /dev/null +++ b/packaging/appimage/parakeet-cli.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Application +Name=parakeet-cli +Comment=Fast on-device speech recognition (NVIDIA Parakeet on ggml) +Exec=parakeet-cli +Icon=parakeet-cli +Terminal=true +Categories=Utility;AudioVideo; diff --git a/packaging/appimage/parakeet-cli.png b/packaging/appimage/parakeet-cli.png new file mode 100644 index 0000000..f93de2e Binary files /dev/null and b/packaging/appimage/parakeet-cli.png differ diff --git a/scripts/bench_rpi5.sh b/scripts/bench_rpi5.sh new file mode 100755 index 0000000..0be4359 --- /dev/null +++ b/scripts/bench_rpi5.sh @@ -0,0 +1,75 @@ +#!/bin/bash +# Pi 5 benchmark harness for parakeet.cpp: model x threads x clip matrix with +# a thermal/freq/fan/throttle sampler running alongside each timed bench. +# Resumable: completed cells (non-empty results/.json) are skipped. +# +# Runs ON the Pi, from a directory laid out as: +# parakeet-cli static aarch64 build (docker/Dockerfile.static) +# models/.gguf the models listed in MODELS below +# audio/speech.wav tests/fixtures/speech.wav (7.4 s) +# audio/speech-60s.wav the same clip tiled to ~60 s +# +# Pin the cpufreq governor to `performance` first so the numbers measure the +# silicon, not the governor; results land in results/ as +# -t-.json plus a .thermal.csv sidecar sampled every 2 s +# (epoch, m°C, kHz, fan rpm, vcgencmd throttled flags). See benchmarks/rpi5.md. +set -eu +cd "$(dirname "$0")" + +CLI=${CLI:-./parakeet-cli} +FAN=$(for h in /sys/class/hwmon/hwmon*; do + [ "$(cat "$h/name")" = pwmfan ] && echo "$h/fan1_input" && break + done) + +mkdir -p results manifests +# Manifests: clip repeated N times -> N timed passes per bench invocation +# (bench loads once, warms up once untimed, then times transcribe only). +for _ in 1 2 3 4 5; do echo "$PWD/audio/speech.wav"; done > manifests/speech.tsv +for _ in 1 2 3; do echo "$PWD/audio/speech-60s.wav"; done > manifests/speech-60s.tsv + +sampler() { + while :; do + printf '%s,%s,%s,%s,%s\n' "$(date +%s)" \ + "$(cat /sys/class/thermal/thermal_zone0/temp)" \ + "$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq)" \ + "$(cat "$FAN")" \ + "$(vcgencmd get_throttled | cut -d= -f2)" + sleep 2 + done +} + +extra_args() { + case "$1" in + nemotron-*) echo "--decoder tdt --lang en-US" ;; + *) echo "" ;; + esac +} + +MODELS="tdt_ctc-110m-q8_0 realtime_eou_120m-v1-f16 tdt-0.6b-v3-q8_0 nemotron-3.5-asr-streaming-0.6b-q8_0" + +for model in $MODELS; do + for t in 1 2 4; do + for clip in speech speech-60s; do + tag="${model}-t${t}-${clip}" + [ -s "results/$tag.json" ] && { echo "skip $tag (done)"; continue; } + echo "=== $tag $(date +%H:%M:%S) ===" + sampler > "results/$tag.thermal.csv" & sp=$! + # shellcheck disable=SC2046 + $CLI bench --model "models/$model.gguf" --manifest "manifests/$clip.tsv" \ + --threads "$t" $(extra_args "$model") --json "results/$tag.json" \ + > "results/$tag.log" 2>&1 || echo "FAILED: $tag (see results/$tag.log)" + kill $sp 2>/dev/null || true; wait $sp 2>/dev/null || true + done + done +done + +# Sanity transcripts, one per model at 4 threads. +for model in $MODELS; do + # shellcheck disable=SC2046 + $CLI transcribe --model "models/$model.gguf" --input audio/speech.wav \ + --threads 4 $(extra_args "$model") \ + > "results/transcribe-$model.txt" 2>"results/transcribe-$model.err" \ + || echo "TRANSCRIBE-FAILED: $model" +done + +echo ALL-DONE