feat: 完善听力口语辅助状态记录、练习分块与复习抽查间隔机制

This commit is contained in:
shen
2026-09-23 18:33:22 -07:00
parent 6b42b7abc3
commit d740a9e19c
106 changed files with 2933 additions and 845 deletions
+33 -6
View File
@@ -830,11 +830,20 @@
"沿着路走",
"等公交车",
"在饭店吃饭"
]
],
"itemIds": []
},
"speaking": [
{
"text": "It all started when we missed the last bus."
"text": "It all started when we missed the last bus.",
"chunks": [
"It all started",
"when we missed",
"the last bus."
],
"itemIds": [
"B1-U01-P01"
]
},
{
"text": "We were walking along the beach when it started to rain.",
@@ -891,11 +900,20 @@
"酒店老板",
"餐厅厨师",
"公交车司机"
]
],
"itemIds": []
},
"speaking": [
{
"text": "After a while, a car stopped next to us."
"text": "After a while, a car stopped next to us.",
"chunks": [
"After a while,",
"a car stopped",
"next to us."
],
"itemIds": [
"B1-U01-P04"
]
},
{
"text": "By the time we got there, the restaurant had closed.",
@@ -957,11 +975,20 @@
"第二天早上的日出",
"司机做的晚饭",
"坐车的经历"
]
],
"itemIds": []
},
"speaking": [
{
"text": "In the end, we had a great time."
"text": "In the end, we had a great time.",
"chunks": [
"In the end,",
"we had",
"a great time."
],
"itemIds": [
"B1-U01-P08"
]
},
{
"text": "The best part was the sunrise."
+23 -6
View File
@@ -809,11 +809,15 @@
"坐夜车",
"坐大巴",
"自己开车"
]
],
"itemIds": []
},
"speaking": [
{
"text": "What's the cheapest way to get there?"
"text": "What's the cheapest way to get there?",
"itemIds": [
"B1-U02-P01"
]
},
{
"text": "The train is faster, but the bus is much cheaper.",
@@ -879,11 +883,20 @@
"每天都要坐火车",
"那里最便宜",
"那里有早餐"
]
],
"itemIds": []
},
"speaking": [
{
"text": "We have a budget of about 500 dollars each."
"text": "We have a budget of about 500 dollars each.",
"chunks": [
"We have a budget",
"of about 500 dollars",
"each."
],
"itemIds": [
"B1-U02-P05"
]
},
{
"text": "Does that include accommodation?",
@@ -942,11 +955,15 @@
"票价会涨",
"夜车快满了",
"车要还了"
]
],
"itemIds": []
},
"speaking": [
{
"text": "It's not worth the extra money."
"text": "It's not worth the extra money.",
"itemIds": [
"B1-U02-P04"
]
},
{
"text": "We should book it in advance.",
+24 -8
View File
@@ -768,11 +768,15 @@
"旅游签证",
"工作签证",
"学生签证"
]
],
"itemIds": []
},
"speaking": [
{
"text": "I'm here on holiday."
"text": "I'm here on holiday.",
"itemIds": [
"B1-U03-P01"
]
},
{
"text": "I'm staying for ten days."
@@ -826,11 +830,15 @@
"自己用的",
"送人的",
"卖的"
]
],
"itemIds": []
},
"speaking": [
{
"text": "I have nothing to declare."
"text": "I have nothing to declare.",
"itemIds": [
"B1-U03-P04"
]
},
{
"text": "It's for my own use."
@@ -881,11 +889,15 @@
"银色大箱子,上面有名字",
"黑色小包",
"红色箱子,两个轮子"
]
],
"itemIds": []
},
"speaking": [
{
"text": "My suitcase didn't arrive."
"text": "My suitcase didn't arrive.",
"itemIds": [
"B1-U03-P06"
]
},
{
"text": "I was on flight CA173 from Beijing."
@@ -940,11 +952,15 @@
"一两天",
"一周",
"当天晚上"
]
],
"itemIds": []
},
"speaking": [
{
"text": "My suitcase is damaged."
"text": "My suitcase is damaged.",
"itemIds": [
"B1-U03-P09"
]
},
{
"text": "One of the wheels is broken."
+29 -8
View File
@@ -821,11 +821,15 @@
"10:30 从 4 站台出发的车",
"9:40 去约克的车",
"10:05 从 2 站台出发的车"
]
],
"itemIds": []
},
"speaking": [
{
"text": "The train is delayed."
"text": "The train is delayed.",
"itemIds": [
"B1-U04-P01"
]
},
{
"text": "The train has been cancelled.",
@@ -879,11 +883,20 @@
"旅客 Tom Hughes",
"去巴黎的所有旅客",
"带小孩的旅客"
]
],
"itemIds": []
},
"speaking": [
{
"text": "Flight EZ482 is now boarding at gate 18."
"text": "Flight EZ482 is now boarding at gate 18.",
"chunks": [
"Flight EZ482",
"is now boarding",
"at gate 18."
],
"itemIds": [
"B1-U04-P04"
]
},
{
"text": "This is the final call.",
@@ -932,11 +945,15 @@
"20 号",
"12 号",
"8 号"
]
],
"itemIds": []
},
"speaking": [
{
"text": "Sorry, I didn't catch that."
"text": "Sorry, I didn't catch that.",
"itemIds": [
"B1-U04-P07"
]
},
{
"text": "Did they say gate 12?"
@@ -990,11 +1007,15 @@
"三点",
"两点",
"四点"
]
],
"itemIds": []
},
"speaking": [
{
"text": "Please stay together."
"text": "Please stay together.",
"itemIds": [
"B1-U04-P10"
]
},
{
"text": "On your left, you can see the old town hall."
+24 -8
View File
@@ -736,11 +736,15 @@
"在公交车上",
"在酒店里",
"在餐馆里"
]
],
"itemIds": []
},
"speaking": [
{
"text": "I'd like to report a theft."
"text": "I'd like to report a theft.",
"itemIds": [
"B1-U05-P01"
]
},
{
"text": "Someone stole my wallet.",
@@ -798,11 +802,15 @@
"拿一份报案证明办保险",
"马上换一个钱包",
"去机场问问"
]
],
"itemIds": []
},
"speaking": [
{
"text": "I need a police report."
"text": "I need a police report.",
"itemIds": [
"B1-U05-P05"
]
},
{
"text": "I need to block my card."
@@ -852,11 +860,15 @@
"两张照片和报案证明",
"机票和银行卡",
"酒店的房卡"
]
],
"itemIds": []
},
"speaking": [
{
"text": "I've lost my passport."
"text": "I've lost my passport.",
"itemIds": [
"B1-U05-P07"
]
},
{
"text": "Where is the embassy?",
@@ -907,11 +919,15 @@
"一个骑车的男人",
"一个开车的女人",
"一个小孩"
]
],
"itemIds": []
},
"speaking": [
{
"text": "There's been an accident."
"text": "There's been an accident.",
"itemIds": [
"B1-U05-P09"
]
},
{
"text": "Someone is hurt."
+24 -8
View File
@@ -735,11 +735,15 @@
"发烧",
"咳嗽",
"胸口疼"
]
],
"itemIds": []
},
"speaking": [
{
"text": "It's not getting any better."
"text": "It's not getting any better.",
"itemIds": [
"B1-U06-P01"
]
},
{
"text": "The pain comes and goes."
@@ -795,11 +799,15 @@
"膝盖手术",
"心脏手术",
"眼睛手术"
]
],
"itemIds": []
},
"speaking": [
{
"text": "I've had this problem before."
"text": "I've had this problem before.",
"itemIds": [
"B1-U06-P03"
]
},
{
"text": "I'm allergic to some medicines.",
@@ -853,11 +861,15 @@
"大约一周",
"两三天",
"一个月"
]
],
"itemIds": []
},
"speaking": [
{
"text": "Is it serious?"
"text": "Is it serious?",
"itemIds": [
"B1-U06-P07"
]
},
{
"text": "How long will it take to get better?"
@@ -908,11 +920,15 @@
"每天两次,随餐服用",
"每天一次,睡前服用",
"每天三次,饭前服用"
]
],
"itemIds": []
},
"speaking": [
{
"text": "Take it with food."
"text": "Take it with food.",
"itemIds": [
"B1-U06-P10"
]
},
{
"text": "Don't drink alcohol while you're taking it."
+24 -8
View File
@@ -729,12 +729,16 @@
"房间和网站上说的不一样",
"房费太贵",
"前台态度不好"
]
],
"itemIds": []
},
"speaking": [
{
"text": "I'd like to make a complaint.",
"tip": "complaint 读 /kəmˈpleɪnt/"
"tip": "complaint 读 /kəmˈpleɪnt/",
"itemIds": [
"B1-U07-P01"
]
},
{
"text": "I'm not satisfied with the room."
@@ -784,11 +788,15 @@
"和负责人谈",
"免费喝一杯",
"马上退房"
]
],
"itemIds": []
},
"speaking": [
{
"text": "That doesn't seem fair."
"text": "That doesn't seem fair.",
"itemIds": [
"B1-U07-P04"
]
},
{
"text": "I'm afraid that's not good enough.",
@@ -844,11 +852,15 @@
"今晚打八折,明天换房",
"马上换海景房",
"全额退款"
]
],
"itemIds": []
},
"speaking": [
{
"text": "What can you offer me?"
"text": "What can you offer me?",
"itemIds": [
"B1-U07-P05"
]
},
{
"text": "Could you at least give us a discount?"
@@ -902,11 +914,15 @@
"30%",
"20%",
"全额"
]
],
"itemIds": []
},
"speaking": [
{
"text": "That sounds reasonable."
"text": "That sounds reasonable.",
"itemIds": [
"B1-U07-P10"
]
},
{
"text": "Could I have that in writing?"
+24 -8
View File
@@ -736,11 +736,15 @@
"周六十点",
"周日十点",
"周六下午"
]
],
"itemIds": []
},
"speaking": [
{
"text": "I'm looking for a place to rent."
"text": "I'm looking for a place to rent.",
"itemIds": [
"B1-U08-P01"
]
},
{
"text": "Is it furnished?",
@@ -795,11 +799,15 @@
"水费和网费",
"燃气费",
"所有费用"
]
],
"itemIds": []
},
"speaking": [
{
"text": "How much is the rent a month?"
"text": "How much is the rent a month?",
"itemIds": [
"B1-U08-P02"
]
},
{
"text": "Are bills included?",
@@ -850,11 +858,15 @@
"一个月",
"一周",
"三个月"
]
],
"itemIds": []
},
"speaking": [
{
"text": "When can I move in?"
"text": "When can I move in?",
"itemIds": [
"B1-U08-P06"
]
},
{
"text": "Who do I call if something breaks?"
@@ -905,11 +917,15 @@
"绿色垃圾桶",
"楼门口",
"厨房里"
]
],
"itemIds": []
},
"speaking": [
{
"text": "Are pets allowed?"
"text": "Are pets allowed?",
"itemIds": [
"B1-U08-P08"
]
},
{
"text": "The rubbish goes out on Mondays.",
+29 -8
View File
@@ -702,11 +702,15 @@
"没有,学生免费",
"每月五英镑",
"第一年免费"
]
],
"itemIds": []
},
"speaking": [
{
"text": "I'd like to open a bank account."
"text": "I'd like to open a bank account.",
"itemIds": [
"B1-U09-P01"
]
},
{
"text": "What do I need to bring?"
@@ -760,11 +764,15 @@
"商店里",
"银行柜台",
"邮局"
]
],
"itemIds": []
},
"speaking": [
{
"text": "I'd like to send money to China."
"text": "I'd like to send money to China.",
"itemIds": [
"B1-U09-P04"
]
},
{
"text": "I'd like to top up my phone.",
@@ -815,11 +823,20 @@
"十天左右",
"三天左右",
"一个月左右"
]
],
"itemIds": []
},
"speaking": [
{
"text": "I'd like to send this parcel to China."
"text": "I'd like to send this parcel to China.",
"chunks": [
"I'd like to send",
"this parcel",
"to China."
],
"itemIds": [
"B1-U09-P06"
]
},
{
"text": "When will it arrive?"
@@ -878,11 +895,15 @@
"周四上午",
"周四下午",
"周五上午"
]
],
"itemIds": []
},
"speaking": [
{
"text": "I'd like to book a repair."
"text": "I'd like to book a repair.",
"itemIds": [
"B1-U09-P10"
]
},
{
"text": "Is anyone free on Thursday?"
+32 -8
View File
@@ -719,12 +719,16 @@
"车站",
"学校",
"海滩"
]
],
"itemIds": []
},
"speaking": [
{
"text": "I'd highly recommend it.",
"tip": "highly 读 /ˈhaɪli/"
"tip": "highly 读 /ˈhaɪli/",
"itemIds": [
"B1-U10-P01"
]
},
{
"text": "For one thing, it's close to the station."
@@ -780,12 +784,20 @@
"没什么特别的",
"非常安静",
"音乐很好听"
]
],
"itemIds": []
},
"speaking": [
{
"text": "The reason I like it is the atmosphere.",
"tip": "atmosphere 读 /ˈætməsfɪə/"
"tip": "atmosphere 读 /ˈætməsfɪə/",
"chunks": [
"The reason I like it",
"is the atmosphere."
],
"itemIds": [
"B1-U10-P02"
]
},
{
"text": "Personally, I prefer the smaller one.",
@@ -842,12 +854,20 @@
"去问山姆",
"住在海边",
"住在镇上"
]
],
"itemIds": []
},
"speaking": [
{
"text": "I see what you mean, but it's too far.",
"tip": "see what you mean 连读"
"tip": "see what you mean 连读",
"chunks": [
"I see what you mean,",
"but it's too far."
],
"itemIds": [
"B1-U10-P06"
]
},
{
"text": "That's a fair point."
@@ -901,12 +921,16 @@
"他的弟弟",
"他的朋友",
"他的妈妈"
]
],
"itemIds": []
},
"speaking": [
{
"text": "It depends on what you're looking for.",
"tip": "depends on 连读"
"tip": "depends on 连读",
"itemIds": [
"B1-U10-P09"
]
},
{
"text": "Have you thought about going by bike?"
+26 -6
View File
@@ -774,11 +774,15 @@
"百分之十",
"百分之二十",
"不给小费"
]
],
"itemIds": []
},
"speaking": [
{
"text": "Do people tip in restaurants here?"
"text": "Do people tip in restaurants here?",
"itemIds": [
"B1-U11-P01"
]
},
{
"text": "It's common to leave ten percent.",
@@ -840,11 +844,19 @@
"脱鞋",
"带花",
"鞠躬"
]
],
"itemIds": []
},
"speaking": [
{
"text": "Is it rude to eat on the train?"
"text": "Is it rude to eat on the train?",
"chunks": [
"Is it rude",
"to eat on the train?"
],
"itemIds": [
"B1-U11-P03"
]
},
{
"text": "You're supposed to take your shoes off.",
@@ -909,11 +921,19 @@
"装钱的红包",
"新衣服",
"蛋糕"
]
],
"itemIds": []
},
"speaking": [
{
"text": "What do people usually do at New Year?"
"text": "What do people usually do at New Year?",
"chunks": [
"What do people usually do",
"at New Year?"
],
"itemIds": [
"B1-U11-P08"
]
},
{
"text": "It's a tradition to give red envelopes.",
+18 -6
View File
@@ -767,12 +767,16 @@
"比想象的难",
"非常轻松",
"没有跑完"
]
],
"itemIds": []
},
"speaking": [
{
"text": "What have you been up to lately?",
"tip": "been up to 连读,lately 重音在第一个音节"
"tip": "been up to 连读,lately 重音在第一个音节",
"itemIds": [
"B1-U12-P01"
]
},
{
"text": "How did it go?"
@@ -834,12 +838,16 @@
"喜欢周末做的志愿工作",
"工资太低",
"想搬家"
]
],
"itemIds": []
},
"speaking": [
{
"text": "I'm thinking of changing jobs.",
"tip": "thinking of 连读"
"tip": "thinking of 连读",
"itemIds": [
"B1-U12-P06"
]
},
{
"text": "What made you decide to do that?"
@@ -901,11 +909,15 @@
"孤单",
"兴奋",
"很累"
]
],
"itemIds": []
},
"speaking": [
{
"text": "How did you feel about it?"
"text": "How did you feel about it?",
"itemIds": [
"B1-U12-P08"
]
},
{
"text": "That must have been hard.",
+29 -7
View File
@@ -890,12 +890,20 @@
"很吵",
"很贵",
"很远"
]
],
"itemIds": []
},
"speaking": [
{
"text": "According to the reviews, the food is great.",
"tip": "according to 连读"
"tip": "according to 连读",
"chunks": [
"According to the reviews,",
"the food is great."
],
"itemIds": [
"B1-U13-P01"
]
},
{
"text": "It says here that breakfast is included."
@@ -950,11 +958,15 @@
"五月底",
"两周后",
"三月初"
]
],
"itemIds": []
},
"speaking": [
{
"text": "Read the instructions first."
"text": "Read the instructions first.",
"itemIds": [
"B1-U13-P05"
]
},
{
"text": "Keep it in a cool, dry place.",
@@ -1004,11 +1016,17 @@
"儿童必须有成人陪同",
"狗必须拴绳",
"禁止游泳"
],
"itemIds": [
"B1-U13-P10"
]
},
"speaking": [
{
"text": "What does this sign mean?"
"text": "What does this sign mean?",
"itemIds": [
"B1-U13-P07"
]
},
{
"text": "Dogs must be kept on a lead.",
@@ -1060,12 +1078,16 @@
"填一份简短的问卷",
"买两件以上",
"办会员卡"
]
],
"itemIds": []
},
"speaking": [
{
"text": "It's closed until further notice.",
"tip": "further 读 /ˈfɜːðə/"
"tip": "further 读 /ˈfɜːðə/",
"itemIds": [
"B1-U13-P08"
]
},
{
"text": "The offer ends on Sunday."
+33 -6
View File
@@ -721,12 +721,21 @@
"外套晚到且尺码不对",
"外套颜色不对",
"外套价格太贵"
]
],
"itemIds": []
},
"speaking": [
{
"text": "I am writing to complain about my order.",
"tip": "writing to 连读"
"tip": "writing to 连读",
"chunks": [
"I am writing",
"to complain",
"about my order."
],
"itemIds": [
"B1-U14-P01"
]
},
{
"text": "I am writing to let you know about a problem."
@@ -783,12 +792,21 @@
"找了另一家酒店",
"自己打扫房间",
"回家了"
]
],
"itemIds": []
},
"speaking": [
{
"text": "On arrival, we found that the room was dirty.",
"tip": "arrival 重音在第二个音节"
"tip": "arrival 重音在第二个音节",
"chunks": [
"On arrival,",
"we found that",
"the room was dirty."
],
"itemIds": [
"B1-U14-P03"
]
},
{
"text": "To make matters worse, nobody helped us."
@@ -851,12 +869,21 @@
"更正名字",
"换一个房间",
"寄一个新的"
]
],
"itemIds": []
},
"speaking": [
{
"text": "I would be grateful if you could reply soon.",
"tip": "grateful 读 /ˈɡreɪtfl/"
"tip": "grateful 读 /ˈɡreɪtfl/",
"chunks": [
"I would be grateful",
"if you could",
"reply soon."
],
"itemIds": [
"B1-U14-P07"
]
},
{
"text": "I would like to request a full refund.",