@faiber/faiber-chat 0.16.0 → 0.17.0
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.
- package/README.md +37 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/speech-live.d.ts +42 -0
- package/dist/speech-live.d.ts.map +1 -0
- package/dist/speech-live.js +108 -0
- package/dist/speech-live.js.map +1 -0
- package/dist/speech-playback.d.ts +19 -0
- package/dist/speech-playback.d.ts.map +1 -0
- package/dist/speech-playback.js +91 -0
- package/dist/speech-playback.js.map +1 -0
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -110,3 +110,40 @@ const voice = await chat.synthesize(
|
|
|
110
110
|
Options include `audioBitsPerSecond` (16,000–64,000), `filter: false` and an abort signal. Permission/device errors are preserved; cancellation rejects pending setup with `AbortError` once microphone acquisition resolves and releases any acquired tracks. Always call `dispose()` on cancellation/unmount and after receiving the final recording chunk. The helper neither uploads nor transcribes automatically and does not enforce a duration or byte limit; enforce the STT service's limits in your application.
|
|
111
111
|
|
|
112
112
|
`synthesize` requests MP3 by default: mono, 24 kHz, 64 kbit/s. Explicit `format: 'wav'` retains lossless output for processing. MP3 requires a service deployment that supports this format; mismatched upstream formats fail rather than being mislabeled. Speech responses are private and not cacheable. Authentication, Axios response metadata, cancellation, and provider billing follow the configured Chat client. Check the returned Blob MIME type rather than assuming a filename extension. Uploading an existing compressed recording through `transcribe` does not re-encode it in the browser.
|
|
113
|
+
|
|
114
|
+
### Live dictation and earlier speech playback
|
|
115
|
+
|
|
116
|
+
```ts
|
|
117
|
+
import { startLiveDictation, playSpeech } from '@faiber/faiber-chat';
|
|
118
|
+
|
|
119
|
+
// `chat` is your authenticated ChatApi. Start after a microphone button click.
|
|
120
|
+
const dictation = await startLiveDictation(chat, {
|
|
121
|
+
language: 'fa',
|
|
122
|
+
signal: abortController.signal,
|
|
123
|
+
onPartial: text => { provisionalText = text; }, // replace, do not append
|
|
124
|
+
onError: error => { showError(error.message); },
|
|
125
|
+
});
|
|
126
|
+
const finalText = await dictation.finish(); // stop button: insert this editable revision once
|
|
127
|
+
// Or dictation.cancel() when leaving the page.
|
|
128
|
+
|
|
129
|
+
// Starts the first phrase while the next phrase is synthesized; MP3 transfer.
|
|
130
|
+
await playSpeech(chat, { text: 'سلام. این برنامه امروز شماست.', language: 'fa' }, {
|
|
131
|
+
signal: abortController.signal,
|
|
132
|
+
onPhase: phase => { playbackState = phase; },
|
|
133
|
+
});
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Live dictation uploads each compressed chunk once through the normal authenticated
|
|
137
|
+
`FaiberClient` transport. `liveSpeech()` exposes the underlying ordered start/push/finish/cancel
|
|
138
|
+
operations with full Axios responses. Sessions are caller/organization-bound and expire;
|
|
139
|
+
recordings are limited to 60 seconds and buffered upload to 128 KiB. Current live support
|
|
140
|
+
requires the configured Persian Shenava model, an available streaming worker lane, and
|
|
141
|
+
WebM/Ogg Opus. Unsupported language/codec or busy capacity rejects start; applications may
|
|
142
|
+
fall back to `createSpeechRecorder()` and `transcribe()`. Never treat provisional text as a
|
|
143
|
+
saved message. Finalization can revise earlier words. Abort and unmount should cancel.
|
|
144
|
+
|
|
145
|
+
`playSpeech()` is browser-only progressive **phrase** synthesis, not provider-level audio
|
|
146
|
+
streaming. It preserves text order and prepares one phrase ahead, without retaining audio
|
|
147
|
+
across users. Individual phrases use the configured voice and its billing rules. Synthesis,
|
|
148
|
+
decode, and playback errors reject the promise; cancellation stops playback and in-flight
|
|
149
|
+
requests. Short utterances still depend on model generation latency.
|
package/dist/.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/axios/index.d.ts","../../core/dist/types.d.ts","../../core/dist/env.d.ts","../../core/dist/auth.d.ts","../../core/dist/client.d.ts","../../core/dist/resource.d.ts","../../core/dist/openapi.d.ts","../../core/dist/realtime.d.ts","../../core/dist/index.d.ts","../../task/dist/types.d.ts","../../task/dist/workspace.d.ts","../../task/dist/operations.types.d.ts","../../task/dist/operations.d.ts","../../task/dist/index.d.ts","../src/workspace.ts","../src/types.ts","../src/operations.types.ts","../src/operations.ts","../src/speech-recorder.ts","../src/index.ts"],"fileIdsList":[[68,74,75,76,77,78],[68,74,76],[68,75],[68],[68,73],[61],[60,61],[60,61,62,63,64,65,66,67],[60,61,64],[60],[60,68,69,70,71,72],[60,68,69,70,71],[68,69],[60,68,69]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"2343ec253c90c370449755739733f5f429f58cffdb51a50977bb4a042012fa8f","impliedFormat":99},{"version":"6cc1f17dc5454eb1112cfb4a2e2ddc93de8c3f9016c8db7bdf0328caac374ffa","impliedFormat":99},{"version":"82065c5512d8d6f81b26cf13ea9ecd3e558be9560f7b5c62260858219ecd87f7","impliedFormat":99},{"version":"ed17ed1b2bcf384c88bc6cec6b427989b98db99fc7ad35a50605501a463bbc53","impliedFormat":99},{"version":"82bf4efcca8ab8764a91ac126c0af605ab6717ee94b2316461b5fa388b27e165","impliedFormat":99},{"version":"82ffc9a1d95766c8f6f6bb4316b1d83e9d6a1d4ec41057d1a897cca70176bfc1","impliedFormat":99},{"version":"3f5eeb0a84713ccf640b9a6af4629e006f59d7629abc3fc95af2efb062fd0b83","impliedFormat":99},{"version":"ac62f6b0f2e963ea9a251ee8384e64cebe0fe4acd32ca177d838d7c5a7ad2b43","impliedFormat":99},{"version":"fdd1b5a8a2b98f82c94e4dc4e3b207ca81766b656d23acd3c7458fffd9af21dd","impliedFormat":99},{"version":"7d9f11e32135998fd237bef7e5d27a056202e21c82f322bd9d9a1016cdac01b1","impliedFormat":99},{"version":"957290d195fac41901b74d0336ea5f6d39e6b1f893cc05c8ef38cdfed375fd26","impliedFormat":99},{"version":"6c03f7c38960990bcb88f5896be7df8527e98fa639dd1b08a108c3b07d7eb2d0","impliedFormat":99},{"version":"e6a4d605f200cf1474350431c9d19cfbf4ea432e5f379ef2374045930c4f84f0","impliedFormat":99},{"version":"e06e45393e7abefd1585bd057f80621a3f4b369d47bd1af1128582c99026e1b4","impliedFormat":99},{"version":"57ecdcf2ad8b1e3024cb03a4cd1abcd4a5f49203befbdd2b27b393fdb2bd565f","signature":"dac85f399b63eeb989b4e1e1db8e4a1bd7435dd49c7bdd1ff8c29b33abcc0b1e","impliedFormat":99},{"version":"16c2ef0848f9e21595f3a883183af7d06d3a8173c038b00574ee2710a3b8baa5","signature":"1ddf5cc92fee8b9d607f8c2537b80a03500b10d1c1e2d2dd5faef819bafc3f0f","impliedFormat":99},{"version":"01146f6265e7ff241360a2ec9a3e13d71bcbf288f4ac3294fdcf2e7fe2a874ff","signature":"2ac24648212ca5e81c69328c83b80965e3af075de06f011f75af04f69e297464","impliedFormat":99},{"version":"f529fc85a29bc5513fdf85c0944411b8685bfaac9d68e4bfc6c2e589183b30ae","signature":"33c3497f1dd00c607d278275ac5cac8dc15f01fa173f310812b49c27dddea0d5","impliedFormat":99},{"version":"695af79a049dc07658aeb7e3001b0c8cc09757232f8f5fdde19cd782a0e1efeb","signature":"db7e7630d9d03be96c69405ba7808da66664c70253761bf2514c9b48f730e1ba","impliedFormat":99},{"version":"8c9b5e046e0f06a060c6c23a917307556d3327adefca9fea2e8d8b48ef60278e","signature":"fc6ed034bde5eacee43919cc46a9a08a3b36b20d9164c5ea0a4fce8b38652677","impliedFormat":99}],"root":[[74,79]],"options":{"composite":true,"declaration":true,"declarationMap":true,"exactOptionalPropertyTypes":true,"module":199,"noUncheckedIndexedAccess":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"tsBuildInfoFile":"./.tsbuildinfo","verbatimModuleSyntax":true},"referencedMap":[[79,1],[77,2],[76,3],[75,4],[74,5],[63,6],[64,7],[62,6],[68,8],[66,9],[65,9],[61,10],[73,11],[72,12],[71,13],[69,4],[70,14]],"latestChangedDtsFile":"./index.d.ts","version":"5.9.3"}
|
|
1
|
+
{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/axios/index.d.ts","../../core/dist/types.d.ts","../../core/dist/env.d.ts","../../core/dist/auth.d.ts","../../core/dist/client.d.ts","../../core/dist/resource.d.ts","../../core/dist/openapi.d.ts","../../core/dist/realtime.d.ts","../../core/dist/index.d.ts","../../task/dist/types.d.ts","../../task/dist/workspace.d.ts","../../task/dist/operations.types.d.ts","../../task/dist/operations.d.ts","../../task/dist/index.d.ts","../src/workspace.ts","../src/types.ts","../src/operations.types.ts","../src/operations.ts","../src/speech-recorder.ts","../src/speech-playback.ts","../src/speech-live.ts","../src/index.ts"],"fileIdsList":[[68,74,75,76,77,78,79,80],[68,74,76],[68,75],[75,78,81],[75,81],[68],[68,73],[61],[60,61],[60,61,62,63,64,65,66,67],[60,61,64],[60],[60,68,69,70,71,72],[60,68,69,70,71],[68,69],[60,68,69]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"2343ec253c90c370449755739733f5f429f58cffdb51a50977bb4a042012fa8f","impliedFormat":99},{"version":"6cc1f17dc5454eb1112cfb4a2e2ddc93de8c3f9016c8db7bdf0328caac374ffa","impliedFormat":99},{"version":"82065c5512d8d6f81b26cf13ea9ecd3e558be9560f7b5c62260858219ecd87f7","impliedFormat":99},{"version":"ed17ed1b2bcf384c88bc6cec6b427989b98db99fc7ad35a50605501a463bbc53","impliedFormat":99},{"version":"82bf4efcca8ab8764a91ac126c0af605ab6717ee94b2316461b5fa388b27e165","impliedFormat":99},{"version":"82ffc9a1d95766c8f6f6bb4316b1d83e9d6a1d4ec41057d1a897cca70176bfc1","impliedFormat":99},{"version":"3f5eeb0a84713ccf640b9a6af4629e006f59d7629abc3fc95af2efb062fd0b83","impliedFormat":99},{"version":"ac62f6b0f2e963ea9a251ee8384e64cebe0fe4acd32ca177d838d7c5a7ad2b43","impliedFormat":99},{"version":"fdd1b5a8a2b98f82c94e4dc4e3b207ca81766b656d23acd3c7458fffd9af21dd","impliedFormat":99},{"version":"7d9f11e32135998fd237bef7e5d27a056202e21c82f322bd9d9a1016cdac01b1","impliedFormat":99},{"version":"957290d195fac41901b74d0336ea5f6d39e6b1f893cc05c8ef38cdfed375fd26","impliedFormat":99},{"version":"6c03f7c38960990bcb88f5896be7df8527e98fa639dd1b08a108c3b07d7eb2d0","impliedFormat":99},{"version":"e6a4d605f200cf1474350431c9d19cfbf4ea432e5f379ef2374045930c4f84f0","impliedFormat":99},{"version":"e06e45393e7abefd1585bd057f80621a3f4b369d47bd1af1128582c99026e1b4","impliedFormat":99},{"version":"57ecdcf2ad8b1e3024cb03a4cd1abcd4a5f49203befbdd2b27b393fdb2bd565f","signature":"dac85f399b63eeb989b4e1e1db8e4a1bd7435dd49c7bdd1ff8c29b33abcc0b1e","impliedFormat":99},{"version":"16c2ef0848f9e21595f3a883183af7d06d3a8173c038b00574ee2710a3b8baa5","signature":"1ddf5cc92fee8b9d607f8c2537b80a03500b10d1c1e2d2dd5faef819bafc3f0f","impliedFormat":99},{"version":"01146f6265e7ff241360a2ec9a3e13d71bcbf288f4ac3294fdcf2e7fe2a874ff","signature":"2ac24648212ca5e81c69328c83b80965e3af075de06f011f75af04f69e297464","impliedFormat":99},{"version":"f529fc85a29bc5513fdf85c0944411b8685bfaac9d68e4bfc6c2e589183b30ae","signature":"33c3497f1dd00c607d278275ac5cac8dc15f01fa173f310812b49c27dddea0d5","impliedFormat":99},{"version":"695af79a049dc07658aeb7e3001b0c8cc09757232f8f5fdde19cd782a0e1efeb","signature":"db7e7630d9d03be96c69405ba7808da66664c70253761bf2514c9b48f730e1ba","impliedFormat":99},{"version":"f3bafa7ee4e3740ad8bb1fa296972ef44fa4c54bb720adbdfa2af74f06a32efe","signature":"c1c5f00430577f3081fa8abdbf2cbd14524539c7ac1ab4a904e3d212a679d92b","impliedFormat":99},{"version":"30fcab33101d3e3a7e5bd9ee1fb4618f910f81c7af39f4a38b38e5ca59782e5e","signature":"97847fd60c6c81e812163ba48ebd12b6274fdba73832ad4c2162a271a365b5bf","impliedFormat":99},{"version":"113e92171e40003e3fd859a62a4ac26ef4a2358affcb49bf701ab67e0453f780","signature":"fd34900a43ba4368b5da1264ffa3a5aefd4273ac909e611c044bd44abfa73b98","impliedFormat":99}],"root":[[74,81]],"options":{"composite":true,"declaration":true,"declarationMap":true,"exactOptionalPropertyTypes":true,"module":199,"noUncheckedIndexedAccess":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"tsBuildInfoFile":"./.tsbuildinfo","verbatimModuleSyntax":true},"referencedMap":[[81,1],[77,2],[76,3],[80,4],[79,5],[75,6],[74,7],[63,8],[64,9],[62,8],[68,10],[66,11],[65,11],[61,12],[73,13],[72,14],[71,15],[69,6],[70,16]],"latestChangedDtsFile":"./speech-live.d.ts","version":"5.9.3"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,10 @@ import type * as T from "./types.js";
|
|
|
4
4
|
import type * as O from "./operations.types.js";
|
|
5
5
|
import { ChatOperations } from "./operations.js";
|
|
6
6
|
export declare class ChatApi extends ServiceApi {
|
|
7
|
+
/** Start, push, finalize or cancel an ordered speech session; chat:ai required.
|
|
8
|
+
* 400 rejects unsupported codecs/languages, 502 means capacity/provider unavailable.
|
|
9
|
+
* No task/note/message is saved. Uses normal authenticated Axios transport. */
|
|
10
|
+
liveSpeech(input: import('./speech-live.js').LiveSpeechInput, options?: RequestOptions<import('./speech-live.js').LiveSpeechInput>): Promise<import("axios").AxiosResponse<import("./speech-live.js").LiveSpeechResponse, import("./speech-live.js").LiveSpeechInput, {}>>;
|
|
7
11
|
readonly workspaceAssistant: ChatWorkspaceOperations;
|
|
8
12
|
readonly operations: ChatOperations;
|
|
9
13
|
/** Check configured local transcription availability; requires chat:ai. */
|
|
@@ -56,4 +60,6 @@ export * from "./operations.js";
|
|
|
56
60
|
export * from "./operations.types.js";
|
|
57
61
|
export * from "./workspace.js";
|
|
58
62
|
export * from "./speech-recorder.js";
|
|
63
|
+
export * from "./speech-playback.js";
|
|
64
|
+
export * from "./speech-live.js";
|
|
59
65
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -3,6 +3,12 @@ import { ServiceApi } from "@faiber/sdk-core";
|
|
|
3
3
|
import { ChatOperations } from "./operations.js";
|
|
4
4
|
const id = (value) => encodeURIComponent(value);
|
|
5
5
|
export class ChatApi extends ServiceApi {
|
|
6
|
+
/** Start, push, finalize or cancel an ordered speech session; chat:ai required.
|
|
7
|
+
* 400 rejects unsupported codecs/languages, 502 means capacity/provider unavailable.
|
|
8
|
+
* No task/note/message is saved. Uses normal authenticated Axios transport. */
|
|
9
|
+
liveSpeech(input, options) {
|
|
10
|
+
return this.client.post('/api/v1/speech/live', input, options);
|
|
11
|
+
}
|
|
6
12
|
workspaceAssistant = new ChatWorkspaceOperations(this.client);
|
|
7
13
|
operations = new ChatOperations(this.client);
|
|
8
14
|
/** Check configured local transcription availability; requires chat:ai. */
|
|
@@ -59,4 +65,6 @@ export * from "./operations.js";
|
|
|
59
65
|
export * from "./operations.types.js";
|
|
60
66
|
export * from "./workspace.js";
|
|
61
67
|
export * from "./speech-recorder.js";
|
|
68
|
+
export * from "./speech-playback.js";
|
|
69
|
+
export * from "./speech-live.js";
|
|
62
70
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAwC,MAAM,kBAAkB,CAAC;AAGpF,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,MAAM,EAAE,GAAG,CAAC,KAAiB,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAC5D,MAAM,OAAO,OAAQ,SAAQ,UAAU;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { ChatApi } from './index.js';
|
|
2
|
+
import type { SpeechLanguage } from './types.js';
|
|
3
|
+
export interface LiveSpeechInput {
|
|
4
|
+
action: 'start' | 'push' | 'finish' | 'cancel';
|
|
5
|
+
session_id?: string;
|
|
6
|
+
sequence?: number;
|
|
7
|
+
audio_base64?: string;
|
|
8
|
+
content_type?: string;
|
|
9
|
+
language?: SpeechLanguage;
|
|
10
|
+
}
|
|
11
|
+
export interface LiveSpeechResult {
|
|
12
|
+
session_id: string;
|
|
13
|
+
text: string;
|
|
14
|
+
final_result: boolean;
|
|
15
|
+
error: string | null;
|
|
16
|
+
}
|
|
17
|
+
export interface LiveSpeechResponse {
|
|
18
|
+
data: LiveSpeechResult;
|
|
19
|
+
status: string;
|
|
20
|
+
meta: null;
|
|
21
|
+
}
|
|
22
|
+
export interface LiveDictationOptions {
|
|
23
|
+
language?: SpeechLanguage;
|
|
24
|
+
signal?: AbortSignal;
|
|
25
|
+
/** Complete provisional utterance, replacing the previous partial; never append partials. */
|
|
26
|
+
onPartial: (text: string) => void;
|
|
27
|
+
onError?: (error: Error) => void;
|
|
28
|
+
}
|
|
29
|
+
export interface LiveDictation {
|
|
30
|
+
/** Stop capture and obtain the authoritative final revision. */
|
|
31
|
+
finish(): Promise<string>;
|
|
32
|
+
/** Discard dictation and release capture/network resources. */
|
|
33
|
+
cancel(): void;
|
|
34
|
+
}
|
|
35
|
+
/** Continuous compact Opus dictation over authenticated, ordered HTTP chunks. Requires chat:ai.
|
|
36
|
+
* The server retains a decoder/recognizer session; audio is sent once, never cumulative reuploads.
|
|
37
|
+
* Partials can revise earlier words. Currently supports the configured Persian Shenava model and
|
|
38
|
+
* browsers with WebM/Ogg Opus. Start can reject if unsupported/busy; apps may offer batch capture.
|
|
39
|
+
* Capture is capped at 60 seconds, queued audio at 128 KiB. Call finish or cancel on unmount.
|
|
40
|
+
*/
|
|
41
|
+
export declare function startLiveDictation(api: ChatApi, options: LiveDictationOptions): Promise<LiveDictation>;
|
|
42
|
+
//# sourceMappingURL=speech-live.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"speech-live.d.ts","sourceRoot":"","sources":["../src/speech-live.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AACD,MAAM,WAAW,gBAAgB;IAAG,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE;AACnH,MAAM,WAAW,kBAAkB;IAAG,IAAI,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE;AAC1F,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,6FAA6F;IAC7F,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AACD,MAAM,WAAW,aAAa;IAC5B,gEAAgE;IAChE,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,+DAA+D;IAC/D,MAAM,IAAI,IAAI,CAAC;CAChB;AACD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,CAoE5G"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { createSpeechRecorder } from './speech-recorder.js';
|
|
2
|
+
/** Continuous compact Opus dictation over authenticated, ordered HTTP chunks. Requires chat:ai.
|
|
3
|
+
* The server retains a decoder/recognizer session; audio is sent once, never cumulative reuploads.
|
|
4
|
+
* Partials can revise earlier words. Currently supports the configured Persian Shenava model and
|
|
5
|
+
* browsers with WebM/Ogg Opus. Start can reject if unsupported/busy; apps may offer batch capture.
|
|
6
|
+
* Capture is capped at 60 seconds, queued audio at 128 KiB. Call finish or cancel on unmount.
|
|
7
|
+
*/
|
|
8
|
+
export async function startLiveDictation(api, options) {
|
|
9
|
+
const controller = new AbortController();
|
|
10
|
+
let capture;
|
|
11
|
+
let session = '', sequence = 0, stopped = false, queued = 0;
|
|
12
|
+
let chain = Promise.resolve();
|
|
13
|
+
let failure;
|
|
14
|
+
let timer;
|
|
15
|
+
let finished;
|
|
16
|
+
const cleanup = () => { clearTimeout(timer); capture?.dispose(); options.signal?.removeEventListener('abort', cancel); };
|
|
17
|
+
function cancel() {
|
|
18
|
+
if (stopped && controller.signal.aborted)
|
|
19
|
+
return;
|
|
20
|
+
stopped = true;
|
|
21
|
+
controller.abort();
|
|
22
|
+
cleanup();
|
|
23
|
+
if (session)
|
|
24
|
+
void api.liveSpeech({ action: 'cancel', session_id: session }, { timeout: 5000 }).catch(() => { });
|
|
25
|
+
}
|
|
26
|
+
const check = () => { if (controller.signal.aborted)
|
|
27
|
+
throw new DOMException('Dictation cancelled', 'AbortError'); };
|
|
28
|
+
const result = (value) => {
|
|
29
|
+
if (value.error)
|
|
30
|
+
throw new Error(value.error);
|
|
31
|
+
if (!stopped && value.text)
|
|
32
|
+
options.onPartial(value.text);
|
|
33
|
+
return value.text;
|
|
34
|
+
};
|
|
35
|
+
const fail = (cause) => {
|
|
36
|
+
if (controller.signal.aborted)
|
|
37
|
+
return;
|
|
38
|
+
failure = cause instanceof Error ? cause : new Error('Dictation failed');
|
|
39
|
+
cancel();
|
|
40
|
+
options.onError?.(failure);
|
|
41
|
+
};
|
|
42
|
+
options.signal?.addEventListener('abort', cancel, { once: true });
|
|
43
|
+
if (options.signal?.aborted)
|
|
44
|
+
cancel();
|
|
45
|
+
try {
|
|
46
|
+
check();
|
|
47
|
+
capture = await createSpeechRecorder({ signal: controller.signal });
|
|
48
|
+
if (!/^audio\/(webm|ogg)/.test(capture.mimeType))
|
|
49
|
+
throw new DOMException('Live Opus unavailable', 'NotSupportedError');
|
|
50
|
+
session = (await api.liveSpeech({ action: 'start', language: options.language ?? 'auto', content_type: capture.mimeType }, { signal: controller.signal })).data.data.session_id;
|
|
51
|
+
check();
|
|
52
|
+
const recorder = capture.recorder;
|
|
53
|
+
let resolveStop;
|
|
54
|
+
const stop = new Promise(resolve => { resolveStop = resolve; });
|
|
55
|
+
recorder.onstop = resolveStop;
|
|
56
|
+
recorder.onerror = () => fail(new Error('Audio capture failed'));
|
|
57
|
+
recorder.ondataavailable = event => {
|
|
58
|
+
if (!event.data.size || controller.signal.aborted)
|
|
59
|
+
return;
|
|
60
|
+
queued += event.data.size;
|
|
61
|
+
if (queued > 128 * 1024 || event.data.size > 48 * 1024) {
|
|
62
|
+
fail(new Error('Speech connection too slow'));
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
chain = chain.then(async () => {
|
|
66
|
+
check();
|
|
67
|
+
const bytes = new Uint8Array(await event.data.arrayBuffer());
|
|
68
|
+
let binary = '';
|
|
69
|
+
for (const byte of bytes)
|
|
70
|
+
binary += String.fromCharCode(byte);
|
|
71
|
+
const response = await api.liveSpeech({ action: 'push', session_id: session, sequence: sequence++, audio_base64: btoa(binary) }, { signal: controller.signal, timeout: 15000 });
|
|
72
|
+
queued -= event.data.size;
|
|
73
|
+
result(response.data.data);
|
|
74
|
+
});
|
|
75
|
+
void chain.catch(fail);
|
|
76
|
+
};
|
|
77
|
+
recorder.start(350);
|
|
78
|
+
const finish = () => finished ??= (async () => {
|
|
79
|
+
if (failure)
|
|
80
|
+
throw failure;
|
|
81
|
+
check();
|
|
82
|
+
stopped = true;
|
|
83
|
+
clearTimeout(timer);
|
|
84
|
+
if (recorder.state !== 'inactive')
|
|
85
|
+
recorder.stop();
|
|
86
|
+
await stop;
|
|
87
|
+
capture?.dispose();
|
|
88
|
+
try {
|
|
89
|
+
await chain;
|
|
90
|
+
check();
|
|
91
|
+
const response = await api.liveSpeech({ action: 'finish', session_id: session, sequence: sequence++ }, { signal: controller.signal, timeout: 30000 });
|
|
92
|
+
if (!response.data.data.final_result)
|
|
93
|
+
throw new Error('Missing final transcript');
|
|
94
|
+
return result(response.data.data);
|
|
95
|
+
}
|
|
96
|
+
finally {
|
|
97
|
+
cancel();
|
|
98
|
+
}
|
|
99
|
+
})();
|
|
100
|
+
timer = setTimeout(() => { fail(new Error('Maximum live recording duration reached')); }, 60000);
|
|
101
|
+
return { finish, cancel };
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
cancel();
|
|
105
|
+
throw error;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=speech-live.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"speech-live.js","sourceRoot":"","sources":["../src/speech-live.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ChatApi } from './index.js';
|
|
2
|
+
import type { SpeechSynthesisInput } from './types.js';
|
|
3
|
+
export interface SpeechPlaybackOptions {
|
|
4
|
+
signal?: AbortSignal;
|
|
5
|
+
/** Called when the first audio actually starts, and while waiting for later audio. */
|
|
6
|
+
onPhase?: (phase: 'buffering' | 'playing') => void;
|
|
7
|
+
}
|
|
8
|
+
/** Split on natural boundaries, with a short first phrase for lower startup latency.
|
|
9
|
+
* All non-whitespace text is retained, including Persian punctuation and long tokens. */
|
|
10
|
+
export declare function splitSpeechText(text: string): string[];
|
|
11
|
+
/** Play compact MP3 in phrase order while preparing the next phrase. Requires chat:ai.
|
|
12
|
+
* Uses the configured ChatApi transport/authentication. Browser-only; invoke after a user
|
|
13
|
+
* gesture. Resolves when playback ends, rejects on provider/playback errors. Abort stops
|
|
14
|
+
* playback and outstanding requests. At most two requests/audio segments are outstanding;
|
|
15
|
+
* no audio or text is cached across users. This is progressive phrase synthesis, not a
|
|
16
|
+
* provider token/audio stream. Each phrase is independently billed by the configured provider.
|
|
17
|
+
*/
|
|
18
|
+
export declare function playSpeech(api: ChatApi, input: SpeechSynthesisInput, options?: SpeechPlaybackOptions): Promise<void>;
|
|
19
|
+
//# sourceMappingURL=speech-playback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"speech-playback.d.ts","sourceRoot":"","sources":["../src/speech-playback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,sFAAsF;IACtF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,KAAK,IAAI,CAAC;CACpD;AACD;yFACyF;AACzF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CActD;AACD;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CA2C9H"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/** Split on natural boundaries, with a short first phrase for lower startup latency.
|
|
2
|
+
* All non-whitespace text is retained, including Persian punctuation and long tokens. */
|
|
3
|
+
export function splitSpeechText(text) {
|
|
4
|
+
const words = text.trim().split(/\s+/u).filter(Boolean);
|
|
5
|
+
const parts = [];
|
|
6
|
+
let part = '';
|
|
7
|
+
for (const word of words) {
|
|
8
|
+
const limit = parts.length ? 240 : 85;
|
|
9
|
+
if (part && part.length + word.length + 1 > limit) {
|
|
10
|
+
parts.push(part);
|
|
11
|
+
part = '';
|
|
12
|
+
}
|
|
13
|
+
part += (part ? ' ' : '') + word;
|
|
14
|
+
if (/[.!?؟؛:]$/u.test(word) && part.length >= (parts.length ? 90 : 25)) {
|
|
15
|
+
parts.push(part);
|
|
16
|
+
part = '';
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
if (part)
|
|
20
|
+
parts.push(part);
|
|
21
|
+
return parts;
|
|
22
|
+
}
|
|
23
|
+
/** Play compact MP3 in phrase order while preparing the next phrase. Requires chat:ai.
|
|
24
|
+
* Uses the configured ChatApi transport/authentication. Browser-only; invoke after a user
|
|
25
|
+
* gesture. Resolves when playback ends, rejects on provider/playback errors. Abort stops
|
|
26
|
+
* playback and outstanding requests. At most two requests/audio segments are outstanding;
|
|
27
|
+
* no audio or text is cached across users. This is progressive phrase synthesis, not a
|
|
28
|
+
* provider token/audio stream. Each phrase is independently billed by the configured provider.
|
|
29
|
+
*/
|
|
30
|
+
export async function playSpeech(api, input, options = {}) {
|
|
31
|
+
if (!input.text.trim() || [...input.text].length > 5000)
|
|
32
|
+
throw new RangeError('Speech text must contain 1–5000 characters');
|
|
33
|
+
const controller = new AbortController();
|
|
34
|
+
const abort = () => controller.abort();
|
|
35
|
+
options.signal?.addEventListener('abort', abort, { once: true });
|
|
36
|
+
if (options.signal?.aborted)
|
|
37
|
+
abort();
|
|
38
|
+
const context = new AudioContext();
|
|
39
|
+
let source;
|
|
40
|
+
const check = () => { if (controller.signal.aborted)
|
|
41
|
+
throw new DOMException('Playback cancelled', 'AbortError'); };
|
|
42
|
+
try {
|
|
43
|
+
check();
|
|
44
|
+
await context.resume();
|
|
45
|
+
const parts = splitSpeechText(input.text);
|
|
46
|
+
const load = async (text) => {
|
|
47
|
+
check();
|
|
48
|
+
const response = await api.synthesize({ ...input, text, format: 'mp3' }, { signal: controller.signal });
|
|
49
|
+
check();
|
|
50
|
+
const buffer = await context.decodeAudioData(await response.data.arrayBuffer());
|
|
51
|
+
check();
|
|
52
|
+
return buffer;
|
|
53
|
+
};
|
|
54
|
+
let next = load(parts[0]);
|
|
55
|
+
// Attach a rejection handler immediately while current audio is playing.
|
|
56
|
+
void next.catch(() => { });
|
|
57
|
+
for (let i = 0; i < parts.length; i++) {
|
|
58
|
+
if (i > 0)
|
|
59
|
+
options.onPhase?.('buffering');
|
|
60
|
+
const buffer = await next;
|
|
61
|
+
check();
|
|
62
|
+
if (i + 1 < parts.length) {
|
|
63
|
+
next = load(parts[i + 1]);
|
|
64
|
+
void next.catch(() => { });
|
|
65
|
+
}
|
|
66
|
+
await new Promise((resolve, reject) => {
|
|
67
|
+
const onAbort = () => { try {
|
|
68
|
+
source?.stop();
|
|
69
|
+
}
|
|
70
|
+
catch { } reject(new DOMException('Playback cancelled', 'AbortError')); };
|
|
71
|
+
controller.signal.addEventListener('abort', onAbort, { once: true });
|
|
72
|
+
source = context.createBufferSource();
|
|
73
|
+
source.buffer = buffer;
|
|
74
|
+
source.connect(context.destination);
|
|
75
|
+
source.addEventListener('ended', () => { controller.signal.removeEventListener('abort', onAbort); resolve(); }, { once: true });
|
|
76
|
+
source.start();
|
|
77
|
+
options.onPhase?.('playing');
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
finally {
|
|
82
|
+
controller.abort();
|
|
83
|
+
try {
|
|
84
|
+
source?.stop();
|
|
85
|
+
}
|
|
86
|
+
catch { }
|
|
87
|
+
await context.close().catch(() => { });
|
|
88
|
+
options.signal?.removeEventListener('abort', abort);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=speech-playback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"speech-playback.js","sourceRoot":"","sources":["../src/speech-playback.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@faiber/faiber-chat",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"README.md"
|
|
17
17
|
],
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@faiber/sdk-core": "0.
|
|
20
|
-
"@faiber/faiber-task": "0.
|
|
19
|
+
"@faiber/sdk-core": "0.17.0",
|
|
20
|
+
"@faiber/faiber-task": "0.17.0"
|
|
21
21
|
}
|
|
22
22
|
}
|