当前位置: 首页 > news >正文

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

英语听力是英语学习中的一个重要组成部分,它对于提高语言理解和交流能力至关重要。可理解性学习(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生成一批稍微超出当前英语语言水平的听力材料。一直执行,就会像爬山一样,一步步提升,直到顶峰。

相关文章:

  • Python爬虫介绍
  • 2024 年值得推荐的 10 款 iPhone 数据恢复软件
  • Less与Sass的区别
  • Mac数据如何恢复?3 款最佳 Mac 恢复软件
  • 汽车网络安全 -- 漏洞该如何管理
  • 面试题2:从浏览器输入一个URL,到最终展示前端页面这一过程,会发生什么?
  • 基于SpringBoot+大数据城市景观画像可视化设计和实现
  • transformer中的build_attention_mask
  • HTTP 请求中的 Content-Type 类型详解
  • [15] 使用Opencv_CUDA 模块实现基本计算机视觉程序
  • Uniapp在屏幕尺寸低于960出现样式错乱(开箱即用)
  • setInterval 定时任务执行时间不准验证
  • Redis晋级之路!!
  • 阅读笔记:明朝那些事儿妖孽横行的宫廷
  • 基于Vue-cli脚手架搭建项目使用ElementUI组件
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • Cookie 在前端中的实践
  • IDEA常用插件整理
  • Java比较器对数组,集合排序
  • Java面向对象及其三大特征
  • leetcode98. Validate Binary Search Tree
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • Redis中的lru算法实现
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 软件开发学习的5大技巧,你知道吗?
  • 为视图添加丝滑的水波纹
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • python最赚钱的4个方向,你最心动的是哪个?
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • ###C语言程序设计-----C语言学习(6)#
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (1)Jupyter Notebook 下载及安装
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (第30天)二叉树阶段总结
  • (简单) HDU 2612 Find a way,BFS。
  • (力扣)1314.矩阵区域和
  • (三)docker:Dockerfile构建容器运行jar包
  • (实测可用)(3)Git的使用——RT Thread Stdio添加的软件包,github与gitee冲突造成无法上传文件到gitee
  • (五)关系数据库标准语言SQL
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)mysql使用Navicat 导出和导入数据库
  • .NET Framework 4.6.2改进了WPF和安全性
  • .NET gRPC 和RESTful简单对比
  • .NET 使用 XPath 来读写 XML 文件
  • .NET 中创建支持集合初始化器的类型
  • .net程序集学习心得