def compose_async(song_key):
model = get_model()
while True:
diversity = random.uniform(0.7, 1.0)
sentence = '#' * MEMORY_LENGTH + 'X:'
sentence = sentence[-MEMORY_LENGTH:]
generated = 'X:'
while True:
x = np.zeros((1, MEMORY_LENGTH, len(model.chars)))
for t, char in enumerate(sentence):
x[0, t, model.char_indices[char]] = 1.
preds = model.predict(x, verbose=0)[0]
next_index = utils.sample(preds, diversity)
next_char = model.indices_char[next_index]
sentence = sentence[-MEMORY_LENGTH + 1:] + next_char
generated += next_char
if generated.endswith('$$$'):
try:
song = Song.objects.get(key=song_key)
song.song = generated.rstrip('$')
song.save()
writer.write(song_key)
except WriterException:
break
else:
return
if len(generated) > MAX_SONG_LENGTH:
break
评论列表
文章目录