Audio corestore
Opened this issue · 4 comments
agrathwohl commented
Description
Create a new Corestore for housing all data related to a single audio recording and all of its metadata and generated assets.
Acceptance Criteria
- The
main
Corestore feed should be the audio data in PCMFloat32/AudioBuffer format. (See Wavecore or Sessioncore for examples.) - The Corestore should provide functionality to ingest all outputs from Storyboard's audio-functions.
Additional Notes
Beyond serving as a mere archive of our users' audio, this Corestore will serve as a means for extending our real-time and user-generated audio functionality. The sub-issues of this ticket will pursue this extended functionality.
utanapishtim4storyboard commented
@agrathwohl using a corestore makes sense here but we'll need to create a higher level hypercore backed datastructure that a corestore can use to aggregate the various lower level hyperobjects like sessioncore and the core produced by stream analyzer errors. This could be a Hyperbee or a Hyperdrive.
utanapishtim4storyboard commented
Tentatively:
class Audiostore {
constructor (corestore, [key], [options]) {
this.store = corestore
this.db = new Hyperbee(this.store.get({ key }))
}
get sessioncore () {
return new Sessioncore(this.store.get({ key: await this.db.get('/key/sessioncore') }))
}
get transcript () {
return new Transcript(this.store.get({ key: await this.db.get('/key/transcript') }))
}
get analyzer () {
return new Analyzer(this.store.get({ key: await this.db.get('/key/analyzer') })))
}
}
utanapishtim4storyboard commented
- we need to keep track of the sample rate used to generate the Sessioncore
utanapishtim4storyboard commented
- initial alignment index is just
second * sampleRate = offset into sessioncore where text begins/ends
- need to test this alignment index