Spaces:
Runtime error
Runtime error
Add sentiment scoring to complete sonification.
Browse files
app.py
CHANGED
|
@@ -33,7 +33,9 @@ from huggingface_hub import hf_hub_download
|
|
| 33 |
print('Downloading model.')
|
| 34 |
model_cache_path = hf_hub_download(repo_id="psistolar/musicautobot-fine1", filename="model.pth")
|
| 35 |
|
|
|
|
| 36 |
|
|
|
|
| 37 |
|
| 38 |
# Default config options
|
| 39 |
config = default_config()
|
|
@@ -62,6 +64,8 @@ def sonify_text(text, sentiment):
|
|
| 62 |
|
| 63 |
note_names = [f"{letter.upper()}4" for letter in text.lower() if letter in musical_letters]
|
| 64 |
|
|
|
|
|
|
|
| 65 |
p = music21.stream.Part()
|
| 66 |
if sentiment == 'NEGATIVE':
|
| 67 |
# If negative, use TODO
|
|
@@ -99,13 +103,18 @@ def process_midi(MIDI_File, Text_to_Sonify, Randomness, Amount_of_Music_to_Add):
|
|
| 99 |
|
| 100 |
# create the model input object
|
| 101 |
if sonification:
|
| 102 |
-
|
|
|
|
|
|
|
| 103 |
item = sonify_text(Text_to_Sonify, sentiment)
|
|
|
|
|
|
|
|
|
|
| 104 |
else:
|
| 105 |
item = MusicItem.from_file(name, data.vocab)
|
|
|
|
| 106 |
|
| 107 |
# full is the prediction appended to the input
|
| 108 |
-
temp = Randomness / 100
|
| 109 |
pred, full = learner.predict(
|
| 110 |
item,
|
| 111 |
n_words=Amount_of_Music_to_Add,
|
|
|
|
| 33 |
print('Downloading model.')
|
| 34 |
model_cache_path = hf_hub_download(repo_id="psistolar/musicautobot-fine1", filename="model.pth")
|
| 35 |
|
| 36 |
+
from transformers import pipeline
|
| 37 |
|
| 38 |
+
classifier = pipeline("sentiment-analysis")
|
| 39 |
|
| 40 |
# Default config options
|
| 41 |
config = default_config()
|
|
|
|
| 64 |
|
| 65 |
note_names = [f"{letter.upper()}4" for letter in text.lower() if letter in musical_letters]
|
| 66 |
|
| 67 |
+
|
| 68 |
+
|
| 69 |
p = music21.stream.Part()
|
| 70 |
if sentiment == 'NEGATIVE':
|
| 71 |
# If negative, use TODO
|
|
|
|
| 103 |
|
| 104 |
# create the model input object
|
| 105 |
if sonification:
|
| 106 |
+
sentiment_analysis = classifier(Text_to_Sonify)[0]
|
| 107 |
+
sentiment = sentiment_analysis['label']
|
| 108 |
+
score = sentiment_analysis['score']
|
| 109 |
item = sonify_text(Text_to_Sonify, sentiment)
|
| 110 |
+
# the lower our confidence in the sentiment, the more randomness we inject
|
| 111 |
+
score = max(0.25, score)
|
| 112 |
+
temp = Randomness / (100 * score)
|
| 113 |
else:
|
| 114 |
item = MusicItem.from_file(name, data.vocab)
|
| 115 |
+
temp = Randomness / 100
|
| 116 |
|
| 117 |
# full is the prediction appended to the input
|
|
|
|
| 118 |
pred, full = learner.predict(
|
| 119 |
item,
|
| 120 |
n_words=Amount_of_Music_to_Add,
|