Comments (5)
Hi @Christilut and @davidhaas6,
Sorry, no, we have not yet looked into using the library with Typescript or with Electron. We're currently under active development and should be working on testing soon. I'll get back to this issue as soon as I can.
Jorge
from essentia.js.
We don't have a default index.d.ts
entry point defined for TypeScript in the repo. But the TypesScript interface is accessible using the type definition files (.d.ts
) files distributed with our releases or at NPM.
Here is an example project that used essentia.js via Typescript. This file uses an old version of the lib though. But the method should be the same.
As @jmarcosfer mentioned, we don't have an example of using it specifically on an Electron app yet.
from essentia.js.
Managed to get it working using:
npm install essentia.js fs-extra node-wav
Then:
import { readFileSync } from 'fs-extra';
import * as wav from 'node-wav';
// @ts-ignore
import { Essentia, EssentiaWASM } from 'essentia.js';
const fileBuffer = readFileSync('flute.wav');
const essentia: Essentia = new Essentia(EssentiaWASM);
const audioBuffer = wav.decode(fileBuffer);
const channelData: Float32Array = audioBuffer.channelData[0];
const inputSignalVector = essentia.arrayToVector(channelData);
const outputPyYin = essentia.PitchYinProbabilistic(inputSignalVector);
const pitches = essentia.vectorToArray(outputPyYin.pitch);
const voicedProbabilities = essentia.vectorToArray(outputPyYin.voicedProbabilities);
console.log('pitches', pitches);
console.log('voicedProbabilities', voicedProbabilities);
Which outputs:
pitches Float32Array(613) [
-682.4991455078125, -682.4991455078125, -682.4991455078125, -682.4991455078125,
-682.4991455078125, -682.4991455078125, -682.4991455078125, -682.4991455078125,
-682.4991455078125, -682.4991455078125, -682.4991455078125, -682.4991455078125,
-682.4991455078125, -682.4991455078125, 681.5415649414062, 679.41748046875,
693.6409301757812, 692.8771362304688, 692.0700073242188, 691.5407104492188,
691.2211303710938, 690.7554931640625, 690.4441528320312, 690.2822875976562,
690.1727905273438, 690.1913452148438, 690.1138305664062, 690.0697021484375,
690.1189575195312, 690.257080078125, 690.2586059570312, 690.26953125,
690.2762451171875, 690.264404296875, 690.2883911132812, 689.9949340820312,
689.97998046875, 689.8556518554688, 689.650146484375, 689.4231567382812,
689.3624267578125, 689.3429565429688, 689.5848388671875, 689.880859375,
690.4718627929688, 691.013671875, 691.7080688476562, 691.81689453125,
691.4556884765625, 690.5984497070312, 705.5728759765625, 703.8046264648438,
702.6657104492188, 701.3317260742188, 700.5100708007812, 700.1961669921875,
700.0474853515625, 700.3526611328125, 700.72216796875, 701.4735717773438,
701.9083862304688, 702.6136474609375, 703.4396362304688, 703.8663330078125,
704.3475952148438, 704.8639526367188, 705.2023315429688, 705.26171875,
689.1476440429688, 690.0390014648438, 690.7661743164062, 691.58642578125,
692.0952758789062, 691.767822265625, 691.102294921875, 689.095703125,
703.8651123046875, 702.5081176757812, 701.4411010742188, 700.7323608398438,
700.4495239257812, 700.8333740234375, 701.5823974609375, 701.8468017578125,
702.9113159179688, 703.1157836914062, 703.0243530273438, 703.5252075195312,
703.9395141601562, 704.1390380859375, 703.8682250976562, 703.29736328125,
703.35595703125, 702.7356567382812, 702.2926635742188, 717.0540771484375,
711.9170532226562, -723.0826416015625, -723.0826416015625, -731.4844360351562,
... 513 more items
]
voicedProbabilities Float32Array(613) [
0.0071817138232290745, 0.010977386496961117, 0.006347390823066235,
0.007238227408379316, 0.006023986265063286, 0.010828307829797268,
0.028241265565156937, 0.05838972330093384, 0.04963346943259239,
0.0533740371465683, 0.018215572461485863, 0.03679880499839783,
0.05447571724653244, 0.09197627753019333, 0.09417010843753815,
0.2271496206521988, 0.1371249556541443, 0.4167638123035431,
0.5539039969444275, 0.5324959754943848, 0.8148526549339294,
0.46052613854408264, 0.49049675464630127, 0.7902030944824219,
0.46052613854408264, 0.7302618026733398, 0.940056324005127,
0.6403498649597168, 0.7602324485778809, 0.7602324485778809,
0.6403498649597168, 0.940056324005127, 0.7002911567687988,
0.37061429023742676, 0.37061429023742676, 0.6403498649597168,
0.25073182582855225, 0.940056324005127, 0.940056324005127,
0.7302618026733398, 0.940056324005127, 0.5204673409461975,
0.46052613854408264, 0.37061429023742676, 0.5504379868507385,
0.8201737403869629, 0.16081997752189636, 0.8501443862915039,
0.970026969909668, 0.7002911567687988, 0.6403498649597168,
0.47460848093032837, 0.46052613854408264, 0.406512588262558,
0.8869524002075195, 0.9175653457641602, 0.6326019167900085,
0.7963614463806152, 0.8501443862915039, 0.5187482833862305,
0.33090823888778687, 0.7739077210426331, 0.8201737403869629,
0.7002911567687988, 0.6403498649597168, 0.6403498649597168,
0.2207612246274948, 0.4005849063396454, 0.9100856781005859,
0.8801150321960449, 0.7002911567687988, 0.5204673409461975,
0.25073182582855225, 0.46052613854408264, 0.7602324485778809,
0.6703205108642578, 0.41279804706573486, 0.940056324005127,
0.6702680587768555, 0.9999972581863403, 0.969092071056366,
0.9999972581863403, 0.214544877409935, 0.534544050693512,
0.940056324005127, 0.7002911567687988, 0.46052613854408264,
0.8201737403869629, 0.7902030944824219, 0.940056324005127,
0.9100856781005859, 0.9100856781005859, 0.49749457836151123,
0.2660381495952606, 0.1642051637172699, 0.2810819745063782,
0.07983743399381638, 0.1343621015548706, 0.06890365481376648,
0.07982081174850464,
... 513 more items
]
from essentia.js.
Did you figure it out? Facing the same issue.
from essentia.js.
import EssentiaType from 'essentia.js/dist/core_api';
// use require instead of import, to use CommonJS-modules
const Essentia = require('essentia.js').Essentia;
const EssentiaWASM = require('essentia.js').EssentiaWASM;
const EssentiaInstance: EssentiaType = new Essentia(EssentiaWASM, false);
or
// @ts-ignore
import * as wasm from 'essentia.js/dist/essentia-wasm.module'
// @ts-ignore
import EssentiaJS from 'essentia.js/dist/essentia.js-core.es'
import Essentia from 'essentia.js/dist/core_api'
// export as default for entry point to node package with the js wrapper
const essentia = new EssentiaJS(wasm.EssentiaModule, false) as Essentia
but what works best for me is:
import EssentiaType from 'essentia.js/dist/core_api';
let esPkg = require('essentia.js');
const essentia: EssentiaType = new esPkg.Essentia(esPkg.EssentiaWASM);
or ES6 imports only:
import EssentiaType from 'essentia.js/dist/core_api';
import * as esPkg from 'essentia.js';
const essentiaInstance: EssentiaType = new esPkg.Essentia(esPkg.EssentiaWASM, false);
from essentia.js.
Related Issues (20)
- Using deep learning models with Essentia.js and Tensorflow.js HOT 1
- Tensor must have a shape comprised of positive integers but got shape [,96]
- Real-time mood classification - "most" vs "least" danceable part of a track HOT 1
- Error 404 when accessing the source code from the demos HOT 1
- Build errors trying to build onsets demo
- Real-time analysis.
- JS bindings for SBic
- GapsDetector not returning timestamp of anomaly in NodeJS
- RuntimeError: abort(TypeError: Failed to parse URL from asturiasfine.mp3). Build with -s ASSERTIONS=1 for more info. at process.abort (C:\Users\Rosanna\Desktop\node_modules\essentia.js\dist\essentia-wasm.umd.js:19:12157)
- Is this up-to-date? HOT 3
- Can't import Essentia
- Get sections/markers info (intro, verse, chorus etc) from an audio HOT 1
- FrameGenerator should provide access to other FrameCutter parameters
- I would like to request the implementation of SBic.
- Beginner documentation improvements HOT 1
- How to import ML models ad use for autotagging HOT 1
- VectorFloat params incorrectly converted on Typescript before passed to WASM
- Float params accept JS string containing numeric characters
- Webpack: error for missing modules in WASM version HOT 1
- Can essentia js be used in typescript for the web?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from essentia.js.