aliabd HF Staff commited on
Commit
e1b0f68
·
1 Parent(s): 0e59c3e

Delete app.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. app.py +0 -143
app.py DELETED
@@ -1,143 +0,0 @@
1
- # A Blocks implementation of https://erlj.notion.site/Neural-Instrument-Cloning-from-very-few-samples-2cf41d8b630842ee8c7eb55036a1bfd6
2
-
3
- import datetime
4
- import os
5
- import random
6
-
7
- import gradio as gr
8
- from gradio.components import Markdown as m
9
-
10
-
11
- def get_time():
12
- now = datetime.datetime.now()
13
- return now.strftime("%m/%d/%Y, %H:%M:%S")
14
-
15
-
16
- def generate_recording():
17
- return random.choice(["new-sax-1.mp3", "new-sax-1.wav"])
18
-
19
-
20
- def reconstruct(audio):
21
- return random.choice(["new-sax-1.mp3", "new-sax-1.wav"])
22
-
23
-
24
- io1 = gr.Interface(
25
- lambda x, y, z: os.path.join(os.path.dirname(__file__),"sax.wav"),
26
- [
27
- gr.Slider(label="pitch"),
28
- gr.Slider(label="loudness"),
29
- gr.Audio(label="base audio file (optional)"),
30
- ],
31
- gr.Audio(),
32
- )
33
-
34
- io2 = gr.Interface(
35
- lambda x, y, z: os.path.join(os.path.dirname(__file__),"flute.wav"),
36
- [
37
- gr.Slider(label="pitch"),
38
- gr.Slider(label="loudness"),
39
- gr.Audio(label="base audio file (optional)"),
40
- ],
41
- gr.Audio(),
42
- )
43
-
44
- io3 = gr.Interface(
45
- lambda x, y, z: os.path.join(os.path.dirname(__file__),"trombone.wav"),
46
- [
47
- gr.Slider(label="pitch"),
48
- gr.Slider(label="loudness"),
49
- gr.Audio(label="base audio file (optional)"),
50
- ],
51
- gr.Audio(),
52
- )
53
-
54
- io4 = gr.Interface(
55
- lambda x, y, z: os.path.join(os.path.dirname(__file__),"sax2.wav"),
56
- [
57
- gr.Slider(label="pitch"),
58
- gr.Slider(label="loudness"),
59
- gr.Audio(label="base audio file (optional)"),
60
- ],
61
- gr.Audio(),
62
- )
63
-
64
- demo = gr.Blocks(title="Neural Instrument Cloning")
65
-
66
- with demo.clear():
67
- m(
68
- """
69
- ## Neural Instrument Cloning from Very Few Samples
70
- <center><img src="https://media.istockphoto.com/photos/brass-trombone-picture-id490455809?k=20&m=490455809&s=612x612&w=0&h=l9KJvH_25z0QTLggHrcH_MsR4gPLH7uXwDPUAZ_C5zk=" width="400px"></center>"""
71
- )
72
- m(
73
- """
74
- This Blocks implementation is an adaptation [a report written](https://erlj.notion.site/Neural-Instrument-Cloning-from-very-few-samples-2cf41d8b630842ee8c7eb55036a1bfd6) by Nicolas Jonason and Bob L.T. Sturm.
75
-
76
- I've implemented it in Blocks to show off some cool features, such as embedding live ML demos. More on that ahead...
77
-
78
- ### What does this machine learning model do?
79
- It combines techniques from neural voice cloning with musical instrument synthesis. This makes it possible to produce neural instrument synthesisers from just seconds of target instrument audio.
80
-
81
- ### Audio Examples
82
- Here are some **real** 16 second saxophone recordings:
83
- """
84
- )
85
- gr.Audio(os.path.join(os.path.dirname(__file__),"sax.wav"), label="Here is a real 16 second saxophone recording:")
86
- gr.Audio(os.path.join(os.path.dirname(__file__),"sax.wav"))
87
-
88
- m(
89
- """\n
90
- Here is a **generated** saxophone recordings:"""
91
- )
92
- a = gr.Audio(os.path.join(os.path.dirname(__file__),"new-sax.wav"))
93
-
94
- gr.Button("Generate a new saxophone recording")
95
-
96
- m(
97
- """
98
- ### Inputs to the model
99
- The inputs to the model are:
100
- * pitch
101
- * loudness
102
- * base audio file
103
- """
104
- )
105
-
106
- m(
107
- """
108
- Try the model live!
109
- """
110
- )
111
-
112
- gr.TabbedInterface(
113
- [io1, io2, io3, io4], ["Saxophone", "Flute", "Trombone", "Another Saxophone"]
114
- )
115
-
116
- m(
117
- """
118
- ### Using the model for cloning
119
- You can also use this model a different way, to simply clone the audio file and reconstruct it
120
- using machine learning. Here, we'll show a demo of that below:
121
- """
122
- )
123
-
124
- a2 = gr.Audio()
125
- a2.change(reconstruct, a2, a2)
126
-
127
- m(
128
- """
129
- Thanks for reading this! As you may have realized, all of the "models" in this demo are fake. They are just designed to show you what is possible using Blocks 🤗.
130
-
131
- For details of the model, read the [original report here](https://erlj.notion.site/Neural-Instrument-Cloning-from-very-few-samples-2cf41d8b630842ee8c7eb55036a1bfd6).
132
-
133
- *Details for nerds*: this report was "launched" on:
134
- """
135
- )
136
-
137
- t = gr.Textbox(label="timestamp")
138
-
139
- demo.load(get_time, [], t)
140
-
141
-
142
- if __name__ == "__main__":
143
- demo.launch()