File size: 1,214 Bytes
a197664
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Usage:
```
import nlp2
import json
from datasets import load_dataset
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
from asrp.code2voice_model.hubert import hifigan_hubert_layer6_code100
import IPython.display as ipd

tokenizer = AutoTokenizer.from_pretrained("Oscarshih/long-t5-base-SQA-15ep")
model = AutoModelForSeq2SeqLM.from_pretrained("Oscarshih/long-t5-base-SQA-15ep")
dataset = load_dataset("voidful/NMSQA-CODE")
cs = hifigan_hubert_layer6_code100()

qa_item = dataset['dev'][0]
question_unit = json.loads(qa_item['hubert_100_question_unit'])[0]["merged_code"]
context_unit = json.loads(qa_item['hubert_100_context_unit'])[0]["merged_code"]
answer_unit = json.loads(qa_item['hubert_100_answer_unit'])[0]["merged_code"]

# groundtruth answer
ipd.Audio(data=cs(answer_unit), autoplay=False, rate=cs.sample_rate)

# predict answer
inputs = tokenizer("".join([f"v_tok_{i}" for i in question_unit]) + "".join([f"v_tok_{i}" for i in context_unit]), return_tensors="pt")
code = tokenizer.batch_decode(model.generate(**inputs,max_length=1024))[0]
code = [int(i) for i in code.replace("</s>","").replace("<s>","").split("v_tok_")[1:]]
ipd.Audio(data=cs(code), autoplay=False, rate=cs.sample_rate)
```