main.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. var express = require('express');
  2. var app = express();
  3. var fs = require("fs");
  4. const sqlite3 = require('sqlite3').verbose();
  5. const db = new sqlite3.Database('./database.db');
  6. const jwt = require("jsonwebtoken");
  7. const bodyParser = require("body-parser");
  8. const {spawn} = require("child_process");
  9. const nrc = require('node-run-cmd')
  10. console.log(process.cwd())
  11. app.use(bodyParser.json({"limit": "100mb"}));
  12. app.use(express.json());
  13. db.close()
  14. app.post('/submit', function (req, res) {
  15. res.header("Access-Control-Allow-Origin", "*");
  16. fetch(req.body.file).then(res => {
  17. res.arrayBuffer().then(r => fs.writeFileSync("./audio_file", Buffer.from(r)));
  18. })
  19. .catch(err => {
  20. console.log(err)
  21. res.sendStatus(500)
  22. });
  23. var callback = function (d) {
  24. console.log(d.toString());
  25. }
  26. var errcb = function (d) {
  27. console.log(d.toString());
  28. }
  29. nrc.run(["pip install audio-separator", "audio-separator ./audio_file --model_filename UVR_MDXNET_KARA.onnx --mdx_segment_size 4000 --mdx_overlap 0.75 --output_dir output "], {
  30. onData: callback,
  31. onError: errcb
  32. }).then(r => {
  33. r[1] === 1 ?
  34. res.sendStatus(500)
  35. : res.end("api_success");
  36. })
  37. })
  38. app.options('/submit', function (req, res) {
  39. res.header("Access-Control-Allow-Origin", "*");
  40. res.header("Access-Control-Allow-Headers", "Content-Type");
  41. res.end()
  42. })
  43. app.listen(8080);