借助AI快速提高英语听力:如何获得适合自己的听力材料?

部落人有文化 2024-06-27 03:14:56

英语听力是英语学习中的一个重要组成部分,它对于提高语言理解和交流能力至关重要。可理解性学习(comprehensible input)是语言习得理论中的一个概念,由语言学家Stephen Krashen提出,指的是学习者在理解语言输入的同时,自然而然地习得语言。

Krashen认为,当学习者接触到稍微超出他们当前语言水平的输入时,他们会自然地习得语言。这个稍微超出的部分被称为“i+1”,其中“i”代表学习者当前的语言水平,“1”代表略高于当前水平的输入。

选择适合自己当前水平的听力材料,确保大部分内容可以理解,同时包含一些新的词汇和表达。多次听同一段材料,可以帮助巩固理解,并逐渐提高对语言细节的敏感度。在听的过程中,尝试预测内容、总结大意或复述听到的信息,这样可以提高注意力和理解力。听不同类型的材料,如新闻、播客、电影、歌曲等,可以增加学习的趣味性,同时接触不同的语言使用场景。记录下听到的生词和短语,定期复习,可以帮助记忆和理解。

通过这些方法和技巧,学习者可以快速有效地提高英语听力能力,同时增强语言习得的效率。

那么,提高英语听力的关键就是找到和自己目前听力水平相匹配的分级听力材料。现在有了AI技术,完成可以针对每个人的情况定制化生成分级英语听力材料。

首先,找到自己感兴趣的英语学习文本,比如有些人对游戏感兴趣,有些人对旅游感兴趣,就去找这方面的文章、书本等自己感兴趣、喜欢的英语材料。因为有了兴趣,才能坚持学习下去。

然后,可以用腾讯云语音合成(TTS)的语速功能来生成分级英语听力材料。

打开腾讯云语音合成产品的试用页面:

https://cloud.tencent.com/product/tts?from_column=20421&from=20421

Speed: 语速,范围:[-2,6],分别对应不同语速:

-2代表0.6倍

-1代表0.8倍

0代表1.0倍(默认)

1代表1.2倍

2代表1.5倍

6代表2.5倍

若需要更细化的语速档次,可以保留小数点一位,如-1.1, 0.5, 1.7等。

调整不同的语速,确定一个语速在自己能听懂大概80%以上内容。然后就用这个语速生成学习材料的英语听力音频文件。

最后,在deepseek输入框中输入提示词:

你是一个Python编程专家,要写一个通过腾讯云的语音合成API进行英语语音合成的Python脚本,具体步骤如下:

腾讯云SecretId:XXX,SecretKey:XXX

读取word文档"F:\aivideo\AI 2041.docx", 提取出全部的文本内容;

创建一个TextToVoice基础语音合成任务(语言为英语,音色id:1051,语速Speed:-1 ,音频采样率:16k),然后定期检查任务状态,直到任务完成或失败。完成后,将语音合成结果保存到本地文件。识别结果保存到文件夹:F:\aivideo\AI 2041 , 格式为mp3,采样率为16000 Hz

注意:

一次请求有字数限制:英文最大支持400个字母,包括标点符号在内。如果文本中字母超过400个,要对文本进行拆分,然后进行语音合成,分成多个mp3音频文件。

在保存音频文件时,需要确保传入的是字节对象而不是字符串。

如果创建任务或查询状态时发生错误,应该打印错误信息;

每一步都要输出信息到屏幕上;

返回的数据是Base64编码的字符串,要将Base64编码的音频数据解码成mp3文件;

部分示例代码:

def create_tts_task(client, text):

try:

req = models.TextToVoiceRequest()

params = {

"Text": text,

"SessionId": str(int(time.time())),

"ModelType": 1,

"VoiceType": 101001, # 英语女声

"SampleRate": 16000

}

req.from_json_string(json.dumps(params))

resp = client.TextToVoice(req)

return resp.Audio

except TencentCloudSDKException as err:

print(f"Error creating TTS task: {err}")

return None

Deepseek生成的Python源代码:

import os

import time

import json

import base64

import docx

from tencentcloud.common import credential

from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException

from tencentcloud.tts.v20190823 import tts_client, models

# 腾讯云API密钥

SECRET_ID = "XXX"

SECRET_KEY = "XXX"

# 读取word文档并提取文本

def read_docx(file_path):

doc = docx.Document(file_path)

full_text = []

for para in doc.paragraphs:

full_text.append(para.text)

return ' '.join(full_text)

# 创建语音合成任务

def create_tts_task(client, text, session_id):

try:

req = models.TextToVoiceRequest()

params = {

"Text": text,

"SessionId": session_id,

"ModelType": 1,

"VoiceType": 1051, # 英语音色id

"Speed": -1, # 语速

"SampleRate": 16000

}

req.from_json_string(json.dumps(params))

resp = client.TextToVoice(req)

return resp.Audio, resp.SessionId

except TencentCloudSDKException as err:

print(f"Error creating TTS task: {err}")

return None, None

# 保存音频文件

def save_audio(audio_data, file_path):

with open(file_path, "wb") as f:

f.write(base64.b64decode(audio_data))

# 主函数

def main():

text = read_docx("F:\\aivideo\\AI 2041.docx")

print("Text extracted from document.")

cred = credential.Credential(SECRET_ID, SECRET_KEY)

client = tts_client.TtsClient(cred, "ap-guangzhou")

text_chunks = [text[i:i+400] for i in range(0, len(text), 400)]

output_folder = "F:\\aivideo\\AI 2041"

os.makedirs(output_folder, exist_ok=True)

for i, chunk in enumerate(text_chunks):

session_id = str(int(time.time()))

audio_data, session_id = create_tts_task(client, chunk, session_id)

if audio_data:

file_path = os.path.join(output_folder, f"output_{i}.mp3")

save_audio(audio_data, file_path)

print(f"Audio saved to {file_path}")

else:

print(f"Failed to create TTS task for chunk {i}")

if __name__ == "__main__":

main()

源代码复制到vscode中,运行成功:

这些听力材料完全听懂了后,可以继续之前的步骤,再用AI生成一批稍微超出当前英语语言水平的听力材料。一直执行,就会像爬山一样,一步步提升,直到顶峰。

0 阅读:0

部落人有文化

简介:感谢大家的关注