-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy path__main__.py
48 lines (36 loc) · 1.24 KB
/
__main__.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import os
import sys
from tempfile import TemporaryDirectory
from pydub import AudioSegment
from music import SongSplitter
from pitch import Mpm
from plot import Plotter
import librosa
import pydub
def main():
print("음악 파일 경로를 입력하세요 : ", end="")
path = input()
print("음악 파일 이름을 입력하세요 : ", end="")
file_name = input()
src = file_name + ".mp3"
dst = file_name + ".wav"
tmp = dst
# extract vocal voice
os.chdir(path)
spl = 'spleeter separate -p spleeter:2stems -o output ' + file_name + ".mp3"
os.system(spl)
# mp3 to wav converting
sound = AudioSegment.from_mp3(src)
sound.export(dst, format="wav")
# get transcribe
with TemporaryDirectory() as tempdir:
try:
song = SongSplitter(tmp)
song.set_pitch_detector(Mpm())
song.set_plotter(Plotter())
retfile = song.plot_transcription()
print("Plotted transcription result to '{0}'".format(retfile))
except IndexError:
print("Rerun with file path as first arg", file=sys.stderr)
if __name__ == "__main__":
main()