Views
No views yet
1import nlp2
2import json
3from datasets import load_dataset
4from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
5from asrp.code2voice_model.hubert import hifigan_hubert_layer6_code100
6import IPython.display as ipd
7
8tokenizer = AutoTokenizer.from_pretrained("Oscarshih/long-t5-base-SQA-15ep")
9model = AutoModelForSeq2SeqLM.from_pretrained("Oscarshih/long-t5-base-SQA-15ep")
10dataset = load_dataset("voidful/NMSQA-CODE")
11cs = hifigan_hubert_layer6_code100()
12
13qa_item = dataset['dev'][0]
14question_unit = json.loads(qa_item['hubert_100_question_unit'])[0]["merged_code"]
15context_unit = json.loads(qa_item['hubert_100_context_unit'])[0]["merged_code"]
16answer_unit = json.loads(qa_item['hubert_100_answer_unit'])[0]["merged_code"]
17
18# groundtruth answer
19ipd.Audio(data=cs(answer_unit), autoplay=False, rate=cs.sample_rate)
20
21# predict answer
22inputs = tokenizer("".join([f"v_tok_{i}" for i in question_unit]) + "".join([f"v_tok_{i}" for i in context_unit]), return_tensors="pt")
23code = tokenizer.batch_decode(model.generate(**inputs,max_length=1024))[0]
24code = [int(i) for i in code.replace("</s>","").replace("<s>","").split("v_tok_")[1:]]
25ipd.Audio(data=cs(code), autoplay=False, rate=cs.sample_rate)