Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import tensorflow as tf | |
| import keras_nlp | |
| MAX_SEQUENCE_LENGTH = 64 | |
| model = tf.keras.models.load_model('saved_model/mtr-model') | |
| eng_tokenizer = keras_nlp.tokenizers.SentencePieceTokenizer( | |
| 'saved_model/spmodel/en.model') | |
| tha_tokenizer = keras_nlp.tokenizers.SentencePieceTokenizer( | |
| 'saved_model/spmodel/th.model') | |
| def decode_sequences(input_sentences): | |
| batch_size = tf.shape(input_sentences)[0] | |
| encoder_input_tokens = eng_tokenizer(input_sentences).to_tensor( | |
| shape=(None, MAX_SEQUENCE_LENGTH) | |
| ) | |
| def token_probability_fn(decoder_input_tokens): | |
| return model([encoder_input_tokens, decoder_input_tokens])[:, -1, :] | |
| prompt = tf.fill((batch_size, 1), tha_tokenizer.token_to_id("<s>")) | |
| generated_tokens = keras_nlp.utils.top_p_search( | |
| token_probability_fn, | |
| prompt, | |
| p=0.1, | |
| max_length=40, | |
| end_token_id=tha_tokenizer.token_to_id("</s>"), | |
| ) | |
| generated_sentences = tha_tokenizer.detokenize(generated_tokens) | |
| return generated_sentences | |
| def greet(english_lyrics): | |
| translated = decode_sequences(tf.constant([english_lyrics])) | |
| translated = translated.numpy()[0].decode("utf-8") | |
| translated = ( | |
| translated | |
| .replace("<pad>", "") | |
| .replace("<s>", "") | |
| .replace("</s>", "") | |
| .replace("β", "") | |
| .strip() | |
| ) | |
| return translated | |
| iface = gr.Interface(fn=greet, inputs="text", outputs="text") | |
| iface.launch() |