Spaces:
Running
on
Zero
Running
on
Zero
| import pandas as pd | |
| import requests | |
| import traceback | |
| openai_key = 'your openai key here' | |
| def get_natural(caplist): | |
| headers = { | |
| 'Content-Type': 'application/json', | |
| 'Authorization': f'{openai_key}', | |
| } | |
| json_data = { | |
| 'model': 'gpt-3.5-turbo', | |
| 'messages': [ | |
| { | |
| 'role': 'user', | |
| 'content':f'I want you to generate the text discribing the sound scene based on the structed input:\ | |
| Question: <running water& all>@<birds chriping& start>@<cow footsteps& mid>@<birds flying away& end>\ | |
| Answer: A bird sings on the river, a cow passes by then the bird flies away \ | |
| Question: <variety cellphone ringing tones& start>@<loud explosion& end>@<fire crackling& end>@<truck engine idle& end>\ | |
| Answer: cellphone ringing a variety of tones followed by a loud explosion and fire crackling as a truck engine runs idle\ | |
| Question: <train passing& all>@<short honks three times& end> \ | |
| Answer: Train passing before short honks three times\ | |
| Question: <Applause Clapping& all>@<Gong& start>@<Steel guitar and slide guitar& mid>\ | |
| Answer: Gong sounds start followed by steel guitar and slide guitar with applause and clapping in the background.\ | |
| Question: <Basketball bounce& all>@<Whoop& all>\ | |
| Answer: Whoop and basketball bounce\ | |
| All indicates that sound exists in the whole scene. Start, mid, end indicates the time period the sound appear.\ | |
| Please answer the following questions, each answer should be start from a newline: \ | |
| 0. {caplist[0]} \ | |
| 1. {caplist[1]} \ | |
| 2. {caplist[2]} \ | |
| 3. {caplist[3]} \ | |
| 4. {caplist[4]} \ | |
| 5. {caplist[5]} \ | |
| 6. {caplist[6]} \ | |
| 7. {caplist[7]} \ | |
| Answer:', | |
| }, | |
| ], | |
| 'temperature': 0.3, | |
| } | |
| # 8. {caplist[8]} \ | |
| # 9. {caplist[9]} \ | |
| response = requests.post('https://api.openai.com/v1/chat/completions', headers=headers, json=json_data) | |
| return eval(response.content)['choices'][0]["message"]["content"] | |
| if __name__ == '__main__': | |
| cap_list_num = 8 | |
| cap_list = [] | |
| tsv_path = './bad_df.tsv' | |
| ori_df = pd.read_csv(tsv_path,sep='\t') | |
| index = 0 | |
| end = len(ori_df) | |
| f = open('gen_natural.txt','w') | |
| while index < end - 1: | |
| try: | |
| df = ori_df.iloc[index:end] | |
| for t in df.itertuples(): | |
| index = t[0] | |
| strcut_cap = getattr(t,'caption') | |
| cap_list.append(strcut_cap) | |
| if len(cap_list) == cap_list_num: | |
| gen_captions = get_natural(cap_list) | |
| gen_captions = gen_captions.split('\n') | |
| print(gen_captions) | |
| for i in range(cap_list_num): | |
| f.write(f'{index - cap_list_num + 1 + i}\t{gen_captions[i]}\n') | |
| f.flush() | |
| cap_list = [] | |
| except Exception as e: | |
| print(e)# 报错信息 | |
| print(traceback.format_exc()) | |
| f.flush() | |
| cap_list = [] | |
| f.close() |