@omnimedia/omnitool 1.1.0-7 → 1.1.0-71

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (410) hide show
  1. package/README.md +143 -80
  2. package/package.json +18 -17
  3. package/s/context.ts +0 -7
  4. package/s/demo/demo.bundle.ts +104 -43
  5. package/s/demo/demo.css +244 -14
  6. package/s/demo/routines/export-test.ts +16 -0
  7. package/s/demo/routines/filmstrip-test.ts +22 -18
  8. package/s/demo/routines/load-video.ts +2 -3
  9. package/s/demo/routines/playback-test.ts +61 -0
  10. package/s/demo/routines/timeline-setup.ts +24 -0
  11. package/s/demo/routines/transcode-test.ts +19 -5
  12. package/s/demo/routines/transitions-test.ts +2 -2
  13. package/s/demo/routines/waveform-test.ts +35 -8
  14. package/s/driver/driver-worker.ts +9 -0
  15. package/s/driver/driver.test.ts +1 -1
  16. package/s/driver/driver.ts +43 -42
  17. package/s/driver/fns/schematic.ts +11 -5
  18. package/s/driver/fns/work.ts +65 -189
  19. package/s/driver/parts/compositor.ts +219 -0
  20. package/s/driver/parts/machina.ts +19 -20
  21. package/s/index.html.ts +103 -25
  22. package/s/index.ts +1 -0
  23. package/s/tests.bundle.ts +11 -0
  24. package/s/tests.html.ts +28 -0
  25. package/s/timeline/index.ts +5 -0
  26. package/s/timeline/parts/filmstrip.ts +43 -16
  27. package/s/timeline/parts/item.ts +27 -6
  28. package/s/timeline/parts/media.ts +12 -2
  29. package/s/timeline/parts/resource-pool.ts +8 -5
  30. package/s/timeline/parts/resource.ts +3 -0
  31. package/s/timeline/parts/waveform/parts/collect.ts +72 -0
  32. package/s/timeline/parts/waveform/parts/render.ts +45 -0
  33. package/s/timeline/parts/waveform/parts/types.ts +24 -0
  34. package/s/timeline/parts/waveform/waveform.ts +161 -0
  35. package/s/timeline/renderers/export/parts/audio-gain.ts +17 -0
  36. package/s/timeline/renderers/export/parts/audio-mix.ts +133 -0
  37. package/s/timeline/renderers/export/parts/cursor.ts +129 -0
  38. package/s/timeline/renderers/export/parts/produce-audio.ts +64 -0
  39. package/s/timeline/renderers/export/parts/produce-video.ts +49 -0
  40. package/s/timeline/renderers/export/parts/resamplers.ts +48 -0
  41. package/s/timeline/renderers/export/produce.ts +28 -0
  42. package/s/timeline/renderers/parts/handy.ts +360 -0
  43. package/s/timeline/renderers/parts/samplers/audio/parts/find.ts +19 -0
  44. package/s/timeline/renderers/parts/samplers/audio/parts/init.ts +60 -0
  45. package/s/timeline/renderers/parts/samplers/audio/parts/sink.ts +38 -0
  46. package/s/timeline/renderers/parts/samplers/audio/parts/types.ts +16 -0
  47. package/s/timeline/renderers/parts/samplers/audio/sampler.ts +35 -0
  48. package/s/timeline/renderers/parts/samplers/visual/parts/defaults.ts +16 -0
  49. package/s/timeline/renderers/parts/samplers/visual/parts/sample.ts +59 -0
  50. package/s/timeline/renderers/parts/samplers/visual/parts/sequence.ts +111 -0
  51. package/s/timeline/renderers/parts/samplers/visual/parts/sink.ts +38 -0
  52. package/s/timeline/renderers/parts/samplers/visual/parts/transition.ts +28 -0
  53. package/s/timeline/renderers/parts/samplers/visual/parts/types.ts +10 -0
  54. package/s/timeline/renderers/parts/samplers/visual/sampler.ts +28 -0
  55. package/s/timeline/renderers/parts/schedulers.ts +96 -0
  56. package/s/timeline/renderers/player/parts/playback.ts +159 -0
  57. package/s/timeline/renderers/player/player.ts +77 -0
  58. package/s/timeline/renderers/renderers.test.ts +385 -0
  59. package/s/timeline/sugar/helpers.ts +85 -0
  60. package/s/timeline/sugar/o.ts +138 -57
  61. package/s/timeline/sugar/omni.test.ts +210 -0
  62. package/s/timeline/sugar/omni.ts +35 -12
  63. package/s/timeline/utils/checksum.ts +3 -1
  64. package/s/timeline/utils/datafile.ts +15 -4
  65. package/s/timeline/utils/dummy-data.ts +3 -3
  66. package/s/units/fps.ts +8 -0
  67. package/s/units/ms.ts +8 -0
  68. package/s/units/seconds.ts +8 -0
  69. package/x/WebGLRenderer-7X274AYV.js +2 -0
  70. package/x/WebGLRenderer-7X274AYV.js.map +7 -0
  71. package/x/WebGPURenderer-XMCMEXAO.js +2 -0
  72. package/x/WebGPURenderer-XMCMEXAO.js.map +7 -0
  73. package/x/browserAll-6TVTCHHE.js +2 -0
  74. package/x/browserAll-6TVTCHHE.js.map +7 -0
  75. package/x/chunk-4ONWQOPX.js +157 -0
  76. package/x/chunk-4ONWQOPX.js.map +7 -0
  77. package/x/chunk-63NSCXPX.js +2 -0
  78. package/x/chunk-63NSCXPX.js.map +7 -0
  79. package/x/chunk-A45M2HJC.js +2 -0
  80. package/x/chunk-A45M2HJC.js.map +7 -0
  81. package/x/chunk-OTQK6FAJ.js +15 -0
  82. package/x/chunk-OTQK6FAJ.js.map +7 -0
  83. package/x/chunk-Q7JBQNE4.js +42 -0
  84. package/x/chunk-Q7JBQNE4.js.map +7 -0
  85. package/x/chunk-W33LM336.js +393 -0
  86. package/x/chunk-W33LM336.js.map +7 -0
  87. package/x/chunk-W5CN46AR.js +327 -0
  88. package/x/chunk-W5CN46AR.js.map +7 -0
  89. package/x/chunk-WFT3KTZG.js +269 -0
  90. package/x/chunk-WFT3KTZG.js.map +7 -0
  91. package/x/context.d.ts +1 -4
  92. package/x/context.js +1 -5
  93. package/x/context.js.map +1 -1
  94. package/x/demo/WebGLRenderer-NLGJGAXK.js +2 -0
  95. package/x/demo/WebGLRenderer-NLGJGAXK.js.map +7 -0
  96. package/x/demo/WebGPURenderer-RBOFXPL5.js +2 -0
  97. package/x/demo/WebGPURenderer-RBOFXPL5.js.map +7 -0
  98. package/x/demo/browserAll-5AZHDDG6.js +2 -0
  99. package/x/demo/browserAll-5AZHDDG6.js.map +7 -0
  100. package/x/demo/chunk-5ZZYIILO.js +393 -0
  101. package/x/demo/chunk-5ZZYIILO.js.map +7 -0
  102. package/x/demo/chunk-P3PTHHFE.js +42 -0
  103. package/x/demo/chunk-P3PTHHFE.js.map +7 -0
  104. package/x/demo/chunk-PYG4RZZ2.js +269 -0
  105. package/x/demo/chunk-PYG4RZZ2.js.map +7 -0
  106. package/x/demo/chunk-Q4MWBZHL.js +157 -0
  107. package/x/demo/chunk-Q4MWBZHL.js.map +7 -0
  108. package/x/demo/chunk-T3METYEY.js +15 -0
  109. package/x/demo/chunk-T3METYEY.js.map +7 -0
  110. package/x/demo/chunk-USLRKDKD.js +2 -0
  111. package/x/demo/chunk-USLRKDKD.js.map +7 -0
  112. package/x/demo/chunk-YISSXWBT.js +327 -0
  113. package/x/demo/chunk-YISSXWBT.js.map +7 -0
  114. package/x/demo/chunk-YJQWVIHX.js +2 -0
  115. package/x/demo/chunk-YJQWVIHX.js.map +7 -0
  116. package/x/demo/demo.bundle.js +94 -40
  117. package/x/demo/demo.bundle.js.map +1 -1
  118. package/x/demo/demo.bundle.min.js +2421 -81
  119. package/x/demo/demo.bundle.min.js.map +4 -4
  120. package/x/demo/demo.css +244 -14
  121. package/x/demo/routines/export-test.d.ts +2 -0
  122. package/x/demo/routines/export-test.js +10 -0
  123. package/x/demo/routines/export-test.js.map +1 -0
  124. package/x/demo/routines/filmstrip-test.d.ts +1 -1
  125. package/x/demo/routines/filmstrip-test.js +20 -17
  126. package/x/demo/routines/filmstrip-test.js.map +1 -1
  127. package/x/demo/routines/load-video.d.ts +1 -1
  128. package/x/demo/routines/load-video.js +1 -2
  129. package/x/demo/routines/load-video.js.map +1 -1
  130. package/x/demo/routines/playback-test.d.ts +2 -0
  131. package/x/demo/routines/playback-test.js +51 -0
  132. package/x/demo/routines/playback-test.js.map +1 -0
  133. package/x/demo/routines/timeline-setup.d.ts +6 -0
  134. package/x/demo/routines/timeline-setup.js +13 -0
  135. package/x/demo/routines/timeline-setup.js.map +1 -0
  136. package/x/demo/routines/transcode-test.js +15 -5
  137. package/x/demo/routines/transcode-test.js.map +1 -1
  138. package/x/demo/routines/transitions-test.js +2 -2
  139. package/x/demo/routines/transitions-test.js.map +1 -1
  140. package/x/demo/routines/waveform-test.d.ts +2 -1
  141. package/x/demo/routines/waveform-test.js +29 -8
  142. package/x/demo/routines/waveform-test.js.map +1 -1
  143. package/x/demo/webworkerAll-QKIC5O27.js +2 -0
  144. package/x/demo/webworkerAll-QKIC5O27.js.map +7 -0
  145. package/x/driver/driver-worker.d.ts +1 -0
  146. package/x/driver/driver-worker.js +6 -0
  147. package/x/driver/driver-worker.js.map +1 -0
  148. package/x/driver/driver.d.ts +25 -8
  149. package/x/driver/driver.js +43 -39
  150. package/x/driver/driver.js.map +1 -1
  151. package/x/driver/driver.test.js +1 -1
  152. package/x/driver/driver.test.js.map +1 -1
  153. package/x/driver/driver.worker.bundle.min.js +117 -3506
  154. package/x/driver/driver.worker.bundle.min.js.map +4 -4
  155. package/x/driver/fns/host.d.ts +3 -2
  156. package/x/driver/fns/schematic.d.ts +11 -4
  157. package/x/driver/fns/work.d.ts +4 -4
  158. package/x/driver/fns/work.js +55 -155
  159. package/x/driver/fns/work.js.map +1 -1
  160. package/x/driver/parts/compositor.d.ts +28 -0
  161. package/x/driver/parts/compositor.js +186 -0
  162. package/x/driver/parts/compositor.js.map +1 -0
  163. package/x/driver/parts/machina.d.ts +0 -20
  164. package/x/driver/parts/machina.js +6 -10
  165. package/x/driver/parts/machina.js.map +1 -1
  166. package/x/features/speech/transcribe/parts/prep-audio.d.ts +1 -1
  167. package/x/features/speech/transcribe/worker.bundle.min.js +899 -899
  168. package/x/features/speech/transcribe/worker.bundle.min.js.map +4 -4
  169. package/x/index.d.ts +1 -0
  170. package/x/index.html +347 -38
  171. package/x/index.html.js +103 -24
  172. package/x/index.html.js.map +1 -1
  173. package/x/index.js +1 -0
  174. package/x/index.js.map +1 -1
  175. package/x/tests.bundle.js +8 -0
  176. package/x/tests.bundle.js.map +1 -0
  177. package/x/tests.bundle.min.js +2464 -0
  178. package/x/tests.bundle.min.js.map +7 -0
  179. package/x/tests.html +316 -0
  180. package/x/tests.html.d.ts +2 -0
  181. package/x/tests.html.js +22 -0
  182. package/x/tests.html.js.map +1 -0
  183. package/x/timeline/index.d.ts +4 -0
  184. package/x/timeline/index.js +4 -0
  185. package/x/timeline/index.js.map +1 -1
  186. package/x/timeline/parts/filmstrip.d.ts +4 -3
  187. package/x/timeline/parts/filmstrip.js +29 -10
  188. package/x/timeline/parts/filmstrip.js.map +1 -1
  189. package/x/timeline/parts/item.d.ts +20 -3
  190. package/x/timeline/parts/item.js +1 -0
  191. package/x/timeline/parts/item.js.map +1 -1
  192. package/x/timeline/parts/media.d.ts +2 -0
  193. package/x/timeline/parts/media.js +11 -2
  194. package/x/timeline/parts/media.js.map +1 -1
  195. package/x/timeline/parts/resource-pool.d.ts +3 -0
  196. package/x/timeline/parts/resource-pool.js +7 -4
  197. package/x/timeline/parts/resource-pool.js.map +1 -1
  198. package/x/timeline/parts/resource.d.ts +3 -0
  199. package/x/timeline/parts/waveform/parts/collect.d.ts +11 -0
  200. package/x/timeline/parts/waveform/parts/collect.js +56 -0
  201. package/x/timeline/parts/waveform/parts/collect.js.map +1 -0
  202. package/x/timeline/parts/waveform/parts/render.d.ts +5 -0
  203. package/x/timeline/parts/waveform/parts/render.js +29 -0
  204. package/x/timeline/parts/waveform/parts/render.js.map +1 -0
  205. package/x/timeline/parts/waveform/parts/types.d.ts +21 -0
  206. package/x/timeline/parts/waveform/parts/types.js.map +1 -0
  207. package/x/timeline/parts/waveform/waveform.d.ts +19 -0
  208. package/x/timeline/parts/waveform/waveform.js +133 -0
  209. package/x/timeline/parts/waveform/waveform.js.map +1 -0
  210. package/x/timeline/renderers/export/parts/audio-gain.d.ts +1 -0
  211. package/x/timeline/renderers/export/parts/audio-gain.js +13 -0
  212. package/x/timeline/renderers/export/parts/audio-gain.js.map +1 -0
  213. package/x/timeline/renderers/export/parts/audio-mix.d.ts +21 -0
  214. package/x/timeline/renderers/export/parts/audio-mix.js +89 -0
  215. package/x/timeline/renderers/export/parts/audio-mix.js.map +1 -0
  216. package/x/timeline/renderers/export/parts/cursor.d.ts +18 -0
  217. package/x/timeline/renderers/export/parts/cursor.js +99 -0
  218. package/x/timeline/renderers/export/parts/cursor.js.map +1 -0
  219. package/x/timeline/renderers/export/parts/produce-audio.d.ts +6 -0
  220. package/x/timeline/renderers/export/parts/produce-audio.js +41 -0
  221. package/x/timeline/renderers/export/parts/produce-audio.js.map +1 -0
  222. package/x/timeline/renderers/export/parts/produce-video.d.ts +10 -0
  223. package/x/timeline/renderers/export/parts/produce-video.js +26 -0
  224. package/x/timeline/renderers/export/parts/produce-video.js.map +1 -0
  225. package/x/timeline/renderers/export/parts/resamplers.d.ts +12 -0
  226. package/x/timeline/renderers/export/parts/resamplers.js +29 -0
  227. package/x/timeline/renderers/export/parts/resamplers.js.map +1 -0
  228. package/x/timeline/renderers/export/produce.d.ts +13 -0
  229. package/x/timeline/renderers/export/produce.js +15 -0
  230. package/x/timeline/renderers/export/produce.js.map +1 -0
  231. package/x/timeline/renderers/parts/handy.d.ts +30 -0
  232. package/x/timeline/renderers/parts/handy.js +219 -0
  233. package/x/timeline/renderers/parts/handy.js.map +1 -0
  234. package/x/timeline/renderers/parts/samplers/audio/parts/find.d.ts +6 -0
  235. package/x/timeline/renderers/parts/samplers/audio/parts/find.js +15 -0
  236. package/x/timeline/renderers/parts/samplers/audio/parts/find.js.map +1 -0
  237. package/x/timeline/renderers/parts/samplers/audio/parts/init.d.ts +5 -0
  238. package/x/timeline/renderers/parts/samplers/audio/parts/init.js +40 -0
  239. package/x/timeline/renderers/parts/samplers/audio/parts/init.js.map +1 -0
  240. package/x/timeline/renderers/parts/samplers/audio/parts/sink.d.ts +8 -0
  241. package/x/timeline/renderers/parts/samplers/audio/parts/sink.js +24 -0
  242. package/x/timeline/renderers/parts/samplers/audio/parts/sink.js.map +1 -0
  243. package/x/timeline/renderers/parts/samplers/audio/parts/types.d.ts +14 -0
  244. package/x/timeline/renderers/parts/samplers/audio/parts/types.js +2 -0
  245. package/x/timeline/renderers/parts/samplers/audio/parts/types.js.map +1 -0
  246. package/x/timeline/renderers/parts/samplers/audio/sampler.d.ts +11 -0
  247. package/x/timeline/renderers/parts/samplers/audio/sampler.js +22 -0
  248. package/x/timeline/renderers/parts/samplers/audio/sampler.js.map +1 -0
  249. package/x/timeline/renderers/parts/samplers/visual/parts/defaults.d.ts +5 -0
  250. package/x/timeline/renderers/parts/samplers/visual/parts/defaults.js +10 -0
  251. package/x/timeline/renderers/parts/samplers/visual/parts/defaults.js.map +1 -0
  252. package/x/timeline/renderers/parts/samplers/visual/parts/sample.d.ts +5 -0
  253. package/x/timeline/renderers/parts/samplers/visual/parts/sample.js +38 -0
  254. package/x/timeline/renderers/parts/samplers/visual/parts/sample.js.map +1 -0
  255. package/x/timeline/renderers/parts/samplers/visual/parts/sequence.d.ts +5 -0
  256. package/x/timeline/renderers/parts/samplers/visual/parts/sequence.js +75 -0
  257. package/x/timeline/renderers/parts/samplers/visual/parts/sequence.js.map +1 -0
  258. package/x/timeline/renderers/parts/samplers/visual/parts/sink.d.ts +8 -0
  259. package/x/timeline/renderers/parts/samplers/visual/parts/sink.js +24 -0
  260. package/x/timeline/renderers/parts/samplers/visual/parts/sink.js.map +1 -0
  261. package/x/timeline/renderers/parts/samplers/visual/parts/transition.d.ts +3 -0
  262. package/x/timeline/renderers/parts/samplers/visual/parts/transition.js +18 -0
  263. package/x/timeline/renderers/parts/samplers/visual/parts/transition.js.map +1 -0
  264. package/x/timeline/renderers/parts/samplers/visual/parts/types.d.ts +8 -0
  265. package/x/timeline/renderers/parts/samplers/visual/parts/types.js +2 -0
  266. package/x/timeline/renderers/parts/samplers/visual/parts/types.js.map +1 -0
  267. package/x/timeline/renderers/parts/samplers/visual/sampler.d.ts +7 -0
  268. package/x/timeline/renderers/parts/samplers/visual/sampler.js +17 -0
  269. package/x/timeline/renderers/parts/samplers/visual/sampler.js.map +1 -0
  270. package/x/timeline/renderers/parts/schedulers.d.ts +17 -0
  271. package/x/timeline/renderers/parts/schedulers.js +64 -0
  272. package/x/timeline/renderers/parts/schedulers.js.map +1 -0
  273. package/x/timeline/renderers/player/parts/playback.d.ts +36 -0
  274. package/x/timeline/renderers/player/parts/playback.js +113 -0
  275. package/x/timeline/renderers/player/parts/playback.js.map +1 -0
  276. package/x/timeline/renderers/player/player.d.ts +25 -0
  277. package/x/timeline/renderers/player/player.js +56 -0
  278. package/x/timeline/renderers/player/player.js.map +1 -0
  279. package/x/timeline/renderers/renderers.test.d.ts +32 -0
  280. package/x/timeline/renderers/renderers.test.js +305 -0
  281. package/x/timeline/renderers/renderers.test.js.map +1 -0
  282. package/x/timeline/sugar/helpers.d.ts +30 -0
  283. package/x/timeline/sugar/helpers.js +46 -0
  284. package/x/timeline/sugar/helpers.js.map +1 -0
  285. package/x/timeline/sugar/o.d.ts +28 -13
  286. package/x/timeline/sugar/o.js +108 -51
  287. package/x/timeline/sugar/o.js.map +1 -1
  288. package/x/timeline/sugar/omni.d.ts +11 -6
  289. package/x/timeline/sugar/omni.js +28 -8
  290. package/x/timeline/sugar/omni.js.map +1 -1
  291. package/x/timeline/sugar/omni.test.d.ts +27 -0
  292. package/x/timeline/sugar/omni.test.js +128 -0
  293. package/x/timeline/sugar/omni.test.js.map +1 -0
  294. package/x/timeline/utils/checksum.d.ts +3 -2
  295. package/x/timeline/utils/checksum.js.map +1 -1
  296. package/x/timeline/utils/datafile.d.ts +5 -3
  297. package/x/timeline/utils/datafile.js +18 -5
  298. package/x/timeline/utils/datafile.js.map +1 -1
  299. package/x/timeline/utils/dummy-data.d.ts +1 -2
  300. package/x/timeline/utils/dummy-data.js +4 -2
  301. package/x/timeline/utils/dummy-data.js.map +1 -1
  302. package/x/units/fps.d.ts +6 -0
  303. package/x/units/fps.js +2 -0
  304. package/x/units/fps.js.map +1 -0
  305. package/x/units/ms.d.ts +6 -0
  306. package/x/units/ms.js +2 -0
  307. package/x/units/ms.js.map +1 -0
  308. package/x/units/seconds.d.ts +6 -0
  309. package/x/units/seconds.js +2 -0
  310. package/x/units/seconds.js.map +1 -0
  311. package/x/webworkerAll-VVIU3M54.js +2 -0
  312. package/x/webworkerAll-VVIU3M54.js.map +7 -0
  313. package/s/tests.test.ts +0 -8
  314. package/s/timeline/parts/compositor/export.ts +0 -77
  315. package/s/timeline/parts/compositor/parts/html-tree.ts +0 -37
  316. package/s/timeline/parts/compositor/parts/schedulers.ts +0 -85
  317. package/s/timeline/parts/compositor/parts/tree-builder.ts +0 -184
  318. package/s/timeline/parts/compositor/parts/webcodecs-tree.ts +0 -30
  319. package/s/timeline/parts/compositor/playback.ts +0 -81
  320. package/s/timeline/parts/compositor/samplers/html.ts +0 -115
  321. package/s/timeline/parts/compositor/samplers/webcodecs.ts +0 -60
  322. package/s/timeline/parts/waveform.ts +0 -62
  323. package/s/timeline/sugar/builders.ts +0 -102
  324. package/s/timeline/sugar/omni-test.ts +0 -38
  325. package/s/timeline/timeline.ts +0 -22
  326. package/s/timeline/utils/audio-stream.ts +0 -15
  327. package/s/timeline/utils/video-cursor.ts +0 -40
  328. package/s/tools/common/loader.ts +0 -26
  329. package/s/tools/common/transformer-pipeline.ts +0 -26
  330. package/s/tools/speech-recognition/common/model.ts +0 -26
  331. package/s/tools/speech-recognition/whisper/fns/host.ts +0 -25
  332. package/s/tools/speech-recognition/whisper/fns/schematic.ts +0 -23
  333. package/s/tools/speech-recognition/whisper/fns/work.ts +0 -91
  334. package/s/tools/speech-recognition/whisper/parts/types.ts +0 -38
  335. package/s/tools/speech-recognition/whisper/parts/worker.bundle.ts +0 -7
  336. package/s/tools/speech-recognition/whisper/tool.ts +0 -70
  337. package/x/tests.test.js +0 -6
  338. package/x/tests.test.js.map +0 -1
  339. package/x/timeline/parts/compositor/export.d.ts +0 -9
  340. package/x/timeline/parts/compositor/export.js +0 -64
  341. package/x/timeline/parts/compositor/export.js.map +0 -1
  342. package/x/timeline/parts/compositor/parts/html-tree.d.ts +0 -3
  343. package/x/timeline/parts/compositor/parts/html-tree.js +0 -40
  344. package/x/timeline/parts/compositor/parts/html-tree.js.map +0 -1
  345. package/x/timeline/parts/compositor/parts/schedulers.d.ts +0 -15
  346. package/x/timeline/parts/compositor/parts/schedulers.js +0 -64
  347. package/x/timeline/parts/compositor/parts/schedulers.js.map +0 -1
  348. package/x/timeline/parts/compositor/parts/tree-builder.d.ts +0 -37
  349. package/x/timeline/parts/compositor/parts/tree-builder.js +0 -147
  350. package/x/timeline/parts/compositor/parts/tree-builder.js.map +0 -1
  351. package/x/timeline/parts/compositor/parts/webcodecs-tree.d.ts +0 -3
  352. package/x/timeline/parts/compositor/parts/webcodecs-tree.js +0 -28
  353. package/x/timeline/parts/compositor/parts/webcodecs-tree.js.map +0 -1
  354. package/x/timeline/parts/compositor/playback.d.ts +0 -19
  355. package/x/timeline/parts/compositor/playback.js +0 -71
  356. package/x/timeline/parts/compositor/playback.js.map +0 -1
  357. package/x/timeline/parts/compositor/samplers/html.d.ts +0 -3
  358. package/x/timeline/parts/compositor/samplers/html.js +0 -106
  359. package/x/timeline/parts/compositor/samplers/html.js.map +0 -1
  360. package/x/timeline/parts/compositor/samplers/webcodecs.d.ts +0 -2
  361. package/x/timeline/parts/compositor/samplers/webcodecs.js +0 -55
  362. package/x/timeline/parts/compositor/samplers/webcodecs.js.map +0 -1
  363. package/x/timeline/parts/waveform.d.ts +0 -8
  364. package/x/timeline/parts/waveform.js +0 -51
  365. package/x/timeline/parts/waveform.js.map +0 -1
  366. package/x/timeline/sugar/builders.d.ts +0 -96
  367. package/x/timeline/sugar/builders.js +0 -108
  368. package/x/timeline/sugar/builders.js.map +0 -1
  369. package/x/timeline/sugar/omni-test.d.ts +0 -1
  370. package/x/timeline/sugar/omni-test.js +0 -22
  371. package/x/timeline/sugar/omni-test.js.map +0 -1
  372. package/x/timeline/timeline.d.ts +0 -9
  373. package/x/timeline/timeline.js +0 -22
  374. package/x/timeline/timeline.js.map +0 -1
  375. package/x/timeline/utils/audio-stream.d.ts +0 -6
  376. package/x/timeline/utils/audio-stream.js +0 -17
  377. package/x/timeline/utils/audio-stream.js.map +0 -1
  378. package/x/timeline/utils/video-cursor.d.ts +0 -10
  379. package/x/timeline/utils/video-cursor.js +0 -36
  380. package/x/timeline/utils/video-cursor.js.map +0 -1
  381. package/x/tools/common/loader.d.ts +0 -19
  382. package/x/tools/common/loader.js +0 -18
  383. package/x/tools/common/loader.js.map +0 -1
  384. package/x/tools/common/transformer-pipeline.d.ts +0 -8
  385. package/x/tools/common/transformer-pipeline.js +0 -24
  386. package/x/tools/common/transformer-pipeline.js.map +0 -1
  387. package/x/tools/speech-recognition/common/model.d.ts +0 -14
  388. package/x/tools/speech-recognition/common/model.js +0 -16
  389. package/x/tools/speech-recognition/common/model.js.map +0 -1
  390. package/x/tools/speech-recognition/whisper/fns/host.d.ts +0 -13
  391. package/x/tools/speech-recognition/whisper/fns/host.js +0 -19
  392. package/x/tools/speech-recognition/whisper/fns/host.js.map +0 -1
  393. package/x/tools/speech-recognition/whisper/fns/schematic.d.ts +0 -19
  394. package/x/tools/speech-recognition/whisper/fns/schematic.js +0 -2
  395. package/x/tools/speech-recognition/whisper/fns/schematic.js.map +0 -1
  396. package/x/tools/speech-recognition/whisper/fns/work.d.ts +0 -12
  397. package/x/tools/speech-recognition/whisper/fns/work.js +0 -74
  398. package/x/tools/speech-recognition/whisper/fns/work.js.map +0 -1
  399. package/x/tools/speech-recognition/whisper/parts/types.d.ts +0 -31
  400. package/x/tools/speech-recognition/whisper/parts/types.js.map +0 -1
  401. package/x/tools/speech-recognition/whisper/parts/worker.bundle.d.ts +0 -1
  402. package/x/tools/speech-recognition/whisper/parts/worker.bundle.js +0 -4
  403. package/x/tools/speech-recognition/whisper/parts/worker.bundle.js.map +0 -1
  404. package/x/tools/speech-recognition/whisper/parts/worker.bundle.min.js +0 -8
  405. package/x/tools/speech-recognition/whisper/parts/worker.bundle.min.js.map +0 -7
  406. package/x/tools/speech-recognition/whisper/tool.d.ts +0 -12
  407. package/x/tools/speech-recognition/whisper/tool.js +0 -63
  408. package/x/tools/speech-recognition/whisper/tool.js.map +0 -1
  409. /package/x/{tests.test.d.ts → tests.bundle.d.ts} +0 -0
  410. /package/x/{tools/speech-recognition/whisper → timeline/parts/waveform}/parts/types.js +0 -0
@@ -1,62 +0,0 @@
1
- import WaveSurfer from "wavesurfer.js"
2
-
3
- import {context} from "../../context.js"
4
- import {DecoderSource} from "../../driver/fns/schematic.js"
5
-
6
- export class Waveform {
7
- wavesurfer: WaveSurfer
8
-
9
- constructor(peaks: number[], container: HTMLElement, duration: number) {
10
- this.wavesurfer = WaveSurfer.create({
11
- container,
12
- waveColor: 'rgb(200, 0, 200)',
13
- progressColor: 'rgb(100, 0, 100)',
14
- barWidth: 10,
15
- barRadius: 10,
16
- barGap: 2,
17
- peaks: [peaks],
18
- duration
19
- })
20
- }
21
-
22
- static async init(source: DecoderSource, container: HTMLElement) {
23
- const driver = await context.driver
24
- const reader = driver.decodeAudio({source}).getReader()
25
-
26
- const peaks: number[] = []
27
- let buffer: number[] = []
28
- const samplesPerPeak = 1024
29
- const duration = await driver.getAudioDuration(source)
30
-
31
- while (true) {
32
- const {done, value: audioData} = await reader.read()
33
- if (done) break
34
-
35
- const frames = audioData.numberOfFrames
36
- const plane = new Float32Array(frames)
37
- audioData.copyTo(plane, {planeIndex: 0}) // Use left channel only
38
-
39
- for (let i = 0; i < plane.length; i++) {
40
- buffer.push(plane[i])
41
- if (buffer.length >= samplesPerPeak) {
42
- const chunk = buffer.splice(0, samplesPerPeak)
43
- const min = Math.min(...chunk)
44
- const max = Math.max(...chunk)
45
- peaks.push(min, max)
46
- }
47
- }
48
-
49
- audioData.close()
50
- }
51
-
52
- return new Waveform(peaks, container, duration ?? 0)
53
- }
54
-
55
- // set zoom(value: number) {
56
- // this.wavesurfer.zoom(value)
57
- // }
58
-
59
- set width(value: number) {
60
- this.wavesurfer.setOptions({width: value})
61
- }
62
- }
@@ -1,102 +0,0 @@
1
- import {O} from "./o.js"
2
- import {Id} from "../parts/basics.js"
3
- import {Item} from "../parts/item.js"
4
-
5
- export class TimelineItem {
6
- public readonly id: Id
7
-
8
- constructor(public item: Item.Any) {
9
- this.id = item.id
10
- }
11
-
12
- toJSON() {
13
- return {
14
- ...this.item
15
- }
16
- }
17
- }
18
-
19
- abstract class VisualItem extends TimelineItem {
20
- abstract spatial(spatial: Spatial): TimelineItem
21
- }
22
-
23
- export class Stack extends VisualItem {
24
- constructor(private o: O, public item: Item.Stack) {
25
- super(item)
26
- }
27
-
28
- spatial(spatial: Spatial) {
29
- this.item.spatialId = spatial.item.id
30
- return this
31
- }
32
-
33
- addChildren(fn: (o: O) => TimelineItem | TimelineItem[]) {
34
- const result = fn(this.o)
35
- const items = Array.isArray(result) ? result : [result]
36
- this.item.childrenIds.push(...items.map(c => c.item.id))
37
- return this
38
- }
39
- }
40
-
41
- export class Spatial extends TimelineItem {
42
- constructor(public item: Item.Spatial) {super(item)}
43
- }
44
-
45
- export class Gap extends TimelineItem {
46
- constructor(public item: Item.Gap) {super(item)}
47
- }
48
-
49
- export class Audio extends TimelineItem {
50
- constructor(public item: Item.Audio) {super(item)}
51
- }
52
-
53
- export class Video extends VisualItem {
54
- constructor(public item: Item.Video) {
55
- super(item)
56
- }
57
-
58
- spatial(spatial: Spatial) {
59
- this.item.spatialId = spatial.item.id
60
- return this
61
- }
62
- }
63
-
64
- export class Text extends VisualItem {
65
- constructor(public item: Item.Text) {
66
- super(item)
67
- }
68
-
69
- color(color: string) {
70
- this.item.color = color
71
- return this
72
- }
73
-
74
- spatial(spatial: Spatial) {
75
- this.item.spatialId = spatial.item.id
76
- return this
77
- }
78
- }
79
-
80
- export class Sequence extends VisualItem {
81
- constructor(private o: O, public item: Item.Sequence) {
82
- super(item)
83
- }
84
-
85
- spatial(spatial: Spatial) {
86
- this.item.spatialId = spatial.item.id
87
- return this
88
- }
89
-
90
- addChildren(fn: (o: O) => TimelineItem | TimelineItem[]) {
91
- const result = fn(this.o)
92
- const items = Array.isArray(result) ? result : [result]
93
- this.item.childrenIds.push(...items.map(c => c.item.id))
94
- return this
95
- }
96
- }
97
-
98
- export class Transition extends TimelineItem {
99
- constructor(public item: Item.Transition) {
100
- super(item)
101
- }
102
- }
@@ -1,38 +0,0 @@
1
-
2
- import {Omni} from "./omni.js"
3
- import {dummyData} from "../utils/dummy-data.js"
4
-
5
- //
6
- // create an omni context
7
- //
8
-
9
- const omni = new Omni()
10
-
11
- //
12
- // load in some media resources
13
- //
14
-
15
- const {mediaA, mediaB} = await omni.load({
16
- mediaA: dummyData(),
17
- mediaB: dummyData(),
18
- })
19
-
20
- //
21
- // create a timeline
22
- //
23
-
24
- const timeline = omni.timeline(o => o.sequence(
25
- o.video(mediaA),
26
- o.transition.crossfade(600),
27
- o.stack(
28
- o.video(mediaB),
29
- o.text("hello world"),
30
- ),
31
- ))
32
-
33
- //
34
- // log the timeline
35
- //
36
-
37
- console.log(JSON.stringify(timeline, undefined, " "))
38
-
@@ -1,22 +0,0 @@
1
- import {TimelineItem} from "./sugar/builders.js"
2
- import {Id, TimelineFile} from "./parts/basics.js"
3
-
4
- export class Timeline {
5
- constructor(public root: TimelineItem, private items: Map<Id, TimelineItem>) {}
6
-
7
- require<T extends TimelineItem>(id: Id): T {
8
- const item = this.items.get(id)
9
- return item as T
10
- }
11
-
12
- toJSON(): TimelineFile {
13
- return {
14
- format: "timeline",
15
- info: "https://omniclip.app/",
16
- version: 0,
17
- rootId: this.root.item.id,
18
- items: Array.from(this.items.values()).map(item => item.toJSON())
19
- }
20
- }
21
- }
22
-
@@ -1,15 +0,0 @@
1
- export class AudioStream {
2
- constructor(private reader: ReadableStreamDefaultReader<AudioData>) {}
3
-
4
- async *stream(): AsyncGenerator<AudioData> {
5
- while (true) {
6
- const {done, value: hit} = await this.reader.read()
7
- if (done) {
8
- break
9
- }
10
- yield hit
11
- }
12
- }
13
-
14
- cancel = async () => await this.reader.cancel()
15
- }
@@ -1,40 +0,0 @@
1
- /**
2
- * A stateful, forward-only frame cursor for a single clip instance.
3
- * It efficiently reads a video stream to find the frame nearest to a target timestamp.
4
- */
5
-
6
- export class VideoCursor {
7
- constructor(private reader: ReadableStreamDefaultReader<VideoFrame>) {}
8
-
9
- async atOrNear(targetUs: number): Promise<VideoFrame | undefined> {
10
- let prev: VideoFrame | null = null
11
- while (true) {
12
- const {done, value: hit} = await this.reader.read()
13
-
14
- if (done) {
15
- const out = prev ? new VideoFrame(prev) : undefined
16
- prev?.close()
17
- return out
18
- }
19
-
20
- const hitUs = hit.timestamp ?? 0
21
- if (hitUs >= targetUs) {
22
- const prevUs = prev?.timestamp ?? Number.NEGATIVE_INFINITY
23
- const usePrev = !!prev && Math.abs(prevUs - targetUs) < Math.abs(hitUs - targetUs)
24
-
25
- const chosen = usePrev ? prev! : hit
26
- const other = usePrev ? hit : prev
27
-
28
- const copy = new VideoFrame(chosen)
29
- chosen.close()
30
- other?.close()
31
- return copy
32
- }
33
-
34
- prev?.close()
35
- prev = hit
36
- }
37
- }
38
-
39
- cancel = async () => await this.reader.cancel()
40
- }
@@ -1,26 +0,0 @@
1
- import {pub, Pub} from "@e280/stz"
2
- import {ProgressItem} from "../speech-recognition/whisper/parts/types.js"
3
-
4
- export interface LoaderEvents {
5
- onModelLoadProgress: Pub<ProgressItem[]>
6
- onTpsUpdate: Pub<[number]>
7
- }
8
-
9
- export abstract class Loader {
10
- tps = 0
11
-
12
- static loaderEvents = {
13
- onModelLoadProgress: pub<ProgressItem[]>(),
14
- onTpsUpdate: pub<[number]>()
15
- }
16
-
17
- constructor(public readonly name: string, public model: string) {}
18
-
19
- abstract init(): Promise<void>
20
-
21
- abstract setModel(model: string): void
22
-
23
- setTps(value: number) {
24
- this.tps = value
25
- }
26
- }
@@ -1,26 +0,0 @@
1
- //@ts-ignore
2
- import {pipeline} from "https://cdn.jsdelivr.net/npm/@huggingface/transformers@3.7.0/dist/transformers.min.js"
3
-
4
- import {ProgressCallback} from "../speech-recognition/whisper/parts/types.js"
5
-
6
- export class PipelineFactory {
7
- instance: any = null
8
- model: string | null = null
9
-
10
- constructor(public task: string) {}
11
-
12
- async createInstance(model: string, progressCallback?: ProgressCallback) {
13
- this.model = model
14
- return this.instance = await pipeline(this.task, this.model, {
15
- dtype: {
16
- encoder_model:
17
- this.model === "onnx-community/whisper-large-v3-turbo"
18
- ? "fp16"
19
- : "fp32",
20
- decoder_model_merged: "q4",
21
- },
22
- device: "webgpu",
23
- progress_callback: progressCallback,
24
- })
25
- }
26
- }
@@ -1,26 +0,0 @@
1
- import {pub} from "@e280/stz"
2
-
3
- import {Loader} from "../../common/loader.js"
4
- import {DecoderSource} from "../../../driver/fns/schematic.js"
5
- import {SpeechRecognizerModels, Word, WordGroup} from "../whisper/parts/types.js"
6
-
7
- export abstract class SpeechRecognizer extends Loader {
8
- multilingual = true
9
-
10
- static speechRecognizerEvents = {
11
- onTranscriptionChunk: pub<Word[]>(),
12
- onTranscribeProgress: pub<[number]>()
13
- }
14
-
15
- abstract transcribe(input: DecoderSource): Promise<WordGroup>
16
-
17
- setMultilingual(value: boolean) {
18
- this.multilingual = value
19
- }
20
-
21
- detectLanguage?(input: Blob | AudioBuffer): Promise<string>
22
-
23
- setModel(value: SpeechRecognizerModels) {
24
- this.model = value
25
- }
26
- }
@@ -1,25 +0,0 @@
1
-
2
- import {Comrade} from "@e280/comrade"
3
- import {ProgressItem} from "../parts/types.js"
4
- import {SpeechRecognizerHostEvents, WhisperSchematic} from "./schematic.js"
5
-
6
- export const setupWhisperHost = (events: SpeechRecognizerHostEvents) => (
7
- Comrade.host<WhisperSchematic>(_shell => ({
8
- async updateModelLoadProgress(item) {
9
- events.onModelLoadProgress.pub(item)
10
- },
11
- async deliverTranscriptionChunk(chunk) {
12
- events.onTranscriptionChunk.pub({
13
- text: chunk.text,
14
- timestamp: chunk.timestamp
15
- })
16
- },
17
- async updateTps(value) {
18
- events.onTpsUpdate.pub(value)
19
- },
20
- async updateTranscribeProgress(value) {
21
- events.onTranscribeProgress(value)
22
- }
23
- }))
24
- )
25
-
@@ -1,23 +0,0 @@
1
- import {Pub} from "@e280/stz"
2
- import {AsSchematic} from "@e280/comrade"
3
-
4
- import {LoaderEvents} from "../../../common/loader.js"
5
- import {ProgressItem, TranscriptionChunk, TranscriptionMessage, TranscriptionResult, Word} from "../parts/types.js"
6
-
7
- export type WhisperSchematic = AsSchematic<{
8
- work: {
9
- transcribe(input: TranscriptionMessage): Promise<TranscriptionResult | null>
10
- },
11
-
12
- host: {
13
- updateModelLoadProgress(item: ProgressItem): Promise<void>
14
- deliverTranscriptionChunk(chunk: TranscriptionChunk): Promise<void>
15
- updateTps(value: number): Promise<void>
16
- updateTranscribeProgress(value: number): Promise<void>
17
- }
18
- }>
19
-
20
- export interface SpeechRecognizerHostEvents extends LoaderEvents {
21
- onTranscriptionChunk: Pub<Word[]>
22
- onTranscribeProgress: Pub<[number]>
23
- }
@@ -1,91 +0,0 @@
1
- import {Comrade} from "@e280/comrade"
2
- //@ts-ignore
3
- import {pipeline, WhisperTextStreamer} from "https://cdn.jsdelivr.net/npm/@huggingface/transformers@3.7.0/dist/transformers.min.js"
4
-
5
- import {WhisperSchematic} from "./schematic.js"
6
- import {TranscriptionChunk} from "../parts/types.js"
7
- import {PipelineFactory} from "../../../common/transformer-pipeline.js"
8
-
9
- // TODO suspicious globals, probably bad
10
- const pipeline = new PipelineFactory("automatic-speech-recognition")
11
- let transcriber: any
12
-
13
- export const setupWhisperWork = Comrade.work<WhisperSchematic>(shell => ({
14
- async transcribe({audio, model, language, duration}) {
15
- const isDistil = model.startsWith("distil-whisper/")
16
-
17
- if(!pipeline.model || pipeline.model !== model) {
18
- pipeline.instance?.dispose()?.()
19
- pipeline.instance = null
20
- transcriber = await pipeline.createInstance(
21
- model,
22
- (data) => {
23
- if(data.progress)
24
- shell.host.updateModelLoadProgress({
25
- id: data.file,
26
- progress: data.progress
27
- })
28
- }
29
- )
30
- }
31
-
32
- const timePrecision =
33
- transcriber.processor.feature_extractor.config.chunk_length /
34
- transcriber.model.config.max_source_positions
35
-
36
- const chunkLength = isDistil ? 20 : 30
37
- const strideLength = isDistil ? 3 : 5
38
-
39
- let chunkCount = 0
40
- let startTime: number | null = null
41
- let tokenCount = 0
42
- let tps = 0
43
-
44
- const chunkDuration = chunkLength - strideLength
45
-
46
- const estimateProgress = () => {
47
- const audioProgressSeconds = chunkCount * chunkDuration
48
- return Math.min(audioProgressSeconds / duration, 1)
49
- }
50
-
51
- const streamer = new WhisperTextStreamer(transcriber.tokenizer, {
52
- time_precision: timePrecision,
53
- token_callback_function: () => {
54
- startTime ??= performance.now()
55
- if (++tokenCount > 1) {
56
- tps = (tokenCount / (performance.now() - startTime)) * 1000
57
- shell.host.updateTps(tps)
58
- }
59
- },
60
- callback_function: (textChunk: any) => {
61
- shell.host.deliverTranscriptionChunk(textChunk)
62
- },
63
- on_finalize: () => {
64
- startTime = null
65
- tokenCount = 0
66
- chunkCount++
67
- const progress = estimateProgress()
68
- shell.host.updateTranscribeProgress(progress)
69
- },
70
- })
71
-
72
- const output = await transcriber(audio, {
73
- top_k: 0,
74
- do_sample: false,
75
- chunk_length_s: chunkLength,
76
- stride_length_s: strideLength,
77
- language,
78
- task: "transcribe",
79
- return_timestamps: "word", // if using "word" the on_chunk_start & end is not called thus we cant retrieve timestamps, only after whole thing finishes
80
- force_full_sequences: false,
81
- streamer,
82
- })
83
-
84
- if (!output) return null
85
-
86
- return {
87
- tps,
88
- ...output,
89
- }
90
- }
91
- }))
@@ -1,38 +0,0 @@
1
- export interface ProgressItem {
2
- id: string
3
- progress: number
4
- }
5
-
6
- export type Word = {
7
- text: string
8
- timestamp: [start: number, end: number]
9
- }
10
-
11
- export type WordGroup = Word[]
12
- export type Transcript = WordGroup[]
13
-
14
- export interface TranscriptionChunk {
15
- text: string
16
- offset: number
17
- timestamp: [number, number]
18
- finalised: boolean
19
- }
20
-
21
- export interface TranscriptionMessage {
22
- audio: Float32Array
23
- model: string
24
- subtask: string | null
25
- language: string | null
26
- duration: number
27
- }
28
-
29
- export interface TranscriptionResult {
30
- text: string
31
- chunks: TranscriptionChunk[]
32
- tps: number
33
- }
34
-
35
- export type ProgressCallback = (data: any) => void
36
-
37
- export type SpeechRecognizerModels = "onnx-community/whisper-tiny_timestamped"
38
- export type SpeechRecognizerSubtasks = "transcribe"
@@ -1,7 +0,0 @@
1
- import {Comrade} from "@e280/comrade"
2
-
3
- import {setupWhisperWork} from "../fns/work.js"
4
- import {WhisperSchematic} from "../fns/schematic.js"
5
-
6
- await Comrade.worker<WhisperSchematic>(setupWhisperWork)
7
-
@@ -1,70 +0,0 @@
1
- import {Comrade, Thread} from "@e280/comrade"
2
-
3
- import {WordGroup} from "./parts/types.js"
4
- import {context} from "../../../context.js"
5
- import {setupWhisperHost} from "./fns/host.js"
6
- import {SpeechRecognizer} from "../common/model.js"
7
- import {WhisperSchematic} from "./fns/schematic.js"
8
-
9
- export class Whisper extends SpeechRecognizer {
10
- constructor(public thread: Thread<WhisperSchematic>) {
11
- super('whisper', "onnx-community/whisper-tiny_timestamped")
12
- }
13
-
14
- static async setup() {
15
- const thread = await Comrade.thread<WhisperSchematic>({
16
- label: "OmnitoolDriver",
17
- workerUrl: new URL("/tools/speech-recognition/whisper/parts/worker.bundle.min.js", import.meta.url),
18
- setupHost: setupWhisperHost({
19
- ...this.loaderEvents,
20
- ...this.speechRecognizerEvents
21
- })
22
- })
23
- return new this(thread)
24
- }
25
-
26
- async init() {
27
- // there should be called loading of the model in worker instead when transcribe is called ..
28
- }
29
-
30
- async #transcribe(source: Blob, options?: {multilingual?: boolean, language?: string}) {
31
- const arrayBuffer = await source.arrayBuffer()
32
- const audioCTX = new AudioContext({sampleRate: 16000})
33
- const audioData = await audioCTX.decodeAudioData(arrayBuffer)
34
- let audio
35
- if (audioData.numberOfChannels === 2) {
36
- const SCALING_FACTOR = Math.sqrt(2)
37
- const left = audioData.getChannelData(0)
38
- const right = audioData.getChannelData(1)
39
- audio = new Float32Array(left.length)
40
- for (let i = 0; i < audioData.length; ++i) {
41
- audio[i] = (SCALING_FACTOR * (left[i] + right[i])) / 2
42
- }
43
- } else {
44
- audio = audioData.getChannelData(0)
45
- }
46
- const driver = await context.driver
47
- const duration = await driver.getAudioDuration(source)
48
- return await this.thread.work.transcribe({
49
- audio,
50
- duration,
51
- model: this.model,
52
- subtask: this.multilingual ? "transcribe" : null,
53
- language:
54
- this.multilingual && options?.language !== "auto"
55
- ? options?.language ?? "english"
56
- : null
57
- })
58
- }
59
-
60
- async transcribe(source: Blob): Promise<WordGroup> {
61
- const result = await this.#transcribe(source)
62
-
63
- const words = result?.chunks.map((chunk: any) => ({
64
- text: chunk.text.trim(),
65
- timestamp: chunk.timestamp,
66
- })) as WordGroup
67
-
68
- return words
69
- }
70
- }
package/x/tests.test.js DELETED
@@ -1,6 +0,0 @@
1
- import { Science } from "@e280/science";
2
- import driver from "./driver/driver.test.js";
3
- await Science.run({
4
- driver,
5
- });
6
- //# sourceMappingURL=tests.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tests.test.js","sourceRoot":"","sources":["../s/tests.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAA;AACrC,OAAO,MAAM,MAAM,yBAAyB,CAAA;AAE5C,MAAM,OAAO,CAAC,GAAG,CAAC;IACjB,MAAM;CACN,CAAC,CAAA"}
@@ -1,9 +0,0 @@
1
- import { TimelineFile } from "../basics.js";
2
- import { DecoderSource } from "../../../driver/fns/schematic.js";
3
- export declare class Export {
4
- #private;
5
- private framerate;
6
- private resolveMedia;
7
- constructor(framerate?: number, resolveMedia?: (hash: string) => DecoderSource);
8
- render(timeline: TimelineFile): Promise<void>;
9
- }