import re
import os
import requests
from aip import AipSpeech
from pydub import AudioSegment APP_ID = ''
API_KEY = ''
SECRET_KEY = '' def save_mp4(filename, url):
response = requests.get(url)
data = response.text mp4_url = re.findall('"playurl":"(.*?)"', data) mp4_response = requests.get(mp4_url[0])
mp4_data = mp4_response.content with open(filename, 'wb') as fw:
fw.write(mp4_data) def cut_speech(filename):
file_name = filename
sound = AudioSegment.from_wav(filename)
start_time = "0:00"
stop_time = "0:42"
print("time:", start_time, "~", stop_time)
start_time = (int(start_time.split(':')[0]) * 60 + int(start_time.split(':')[1])) * 1000
stop_time = (int(stop_time.split(':')[0]) * 60 + int(stop_time.split(':')[1])) * 1000
print("ms:", start_time, "~", stop_time)
word = sound[start_time:stop_time]
save_name = "word" + file_name[6:]
print(save_name) word.export(save_name, format="mp3", tags={'artist': 'AppLeU0', 'album': save_name[:-4]}) def automatic_speech_recognition(filename):
"""语音识别"""
# 调用语音识别接口
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) # 把.m4a格式的文本转换成.pcm的二进制音频序列文本
# f''是f-string格式化字符串
os.system(f'ffmpeg -y -i {filename} -acodec pcm_s16le -f s16le -ac 1 -ar 16000 {filename}.pcm') # 打开.pcm格式的二进制音频序列文本
with open(f'{filename}.pcm', 'rb') as f:
data = f.read() # 语音识别。参数为:音频流,音频格式/pcm格式/wav格式,音频采样率支持8000-16000,{语言id,1536可以识别简单英文、1537不能识别简单英文}
asr_result = client.asr(data, 'pcm', 16000, {'dev_pid': 1536})
print('\nasr_result:{}'.format(asr_result)) if asr_result.get('result') is None:
return '', False
else:
return asr_result, True if __name__ == '__main__':
name = 'test'
url = 'https://kg2.qq.com/node/play?s=GJH9sHGzgexrKGh-&shareuid=6a9a958c252a378836&topsource=a0_pn201001006_z1_u878907032_l1_t1558015859__'
filename = f'{name}.m4a'
save_mp4(filename, url)
os.system(f'ffmpeg -y -i {filename} -acodec pcm_s16le -f s16le -ac 1 -ar 16000 {filename}.pcm')
filename = f'{filename}.pcm'
cut_speech(filename)
# print('done...')
# asr_result = automatic_speech_recognition(filename)
# print(asr_result)

Python之爬虫-全民k歌的更多相关文章

  1. 【收藏】轻松导出全民K歌里任何人录制的短视频(MV)、歌曲的方法

    有一次想把她在全民K歌里唱过的所有歌下载到电脑上,然后合成一个视频.但不知道怎么导出全民K歌里的歌曲,经过各种百度Google终于找到了一个用起来很简单的工具.不仅可以下载保存任何人录制的歌曲,还可以 ...

  2. python3爬取全民K歌

    Python3爬取全民k歌 环境 python3.5 + requests 1.通过歌曲主页链接爬取 首先打开歌曲主页,打开开发者工具(F12). 选择Network,点击播放,会发现有一个请求返回的 ...

  3. 推荐系统[八]算法实践总结V0:腾讯音乐全民K歌推荐系统架构及粗排设计

    1.前言:召回排序流程策略算法简介 推荐可分为以下四个流程,分别是召回.粗排.精排以及重排: 召回是源头,在某种意义上决定着整个推荐的天花板: 粗排是初筛,一般不会上复杂模型: 精排是整个推荐环节的重 ...

  4. python爬取全名k歌

    python3 爬取全名k歌 代码: import re import requests import ssl ssl._create_default_https_context=ssl._creat ...

  5. anyRTC 重磅推出在线实时 K 歌解决方案

    在线音乐领域一直是各大资本巨头投资的热点,从抢占版权到现在的"云上之争", 主流平台的战火从版权资源转向创新领域扩延.而如今,在线K歌正在成为抢占"云音乐"市场 ...

  6. [Python] 网络爬虫和正则表达式学习总结

    以前在学校做科研都是直接利用网上共享的一些数据,就像我们经常说的dataset.beachmark等等.但是,对于实际的工业需求来说,爬取网络的数据是必须的并且是首要的.最近在国内一家互联网公司实习, ...

  7. python简易爬虫来实现自动图片下载

    菜鸟新人刚刚入住博客园,先发个之前写的简易爬虫的实现吧,水平有限请轻喷. 估计利用python实现爬虫的程序网上已经有太多了,不过新人用来练手学习python确实是个不错的选择.本人借鉴网上的部分实现 ...

  8. python 网络爬虫(二) BFS不断抓URL并放到文件中

    上一篇的python 网络爬虫(一) 简单demo 还不能叫爬虫,只能说基础吧,因为它没有自动化抓链接的功能. 本篇追加如下功能: [1]广度优先搜索不断抓URL,直到队列为空 [2]把所有的URL写 ...

  9. 在香港用什么软件可以唱歌?香港K歌app推荐

    KTV的源头来自于日本,KTV是Karaok TV的缩写.随着互联网时代越来越发达,手机K歌成了很多人会选择的方式,那么在香港有什么好用的K歌软件呢?这里qt6小编给大家推荐几款好用的,让你足不出户即 ...

  10. 第三百五十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—将bloomfilter(布隆过滤器)集成到scrapy-redis中

    第三百五十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—将bloomfilter(布隆过滤器)集成到scrapy-redis中,判断URL是否重复 布隆过滤器(Bloom Filter)详 ...

随机推荐

  1. 【JS】04 DOM 文档对象模型 P1 查找元素、改变内容、绑定事件

    什么是DOM? Document Object Model 文档指的是HTML文档 当浏览器打开一个网页的时候,实际上把HTML文档读取到内存中进行解析 整个HTML文档被封装为document文档对 ...

  2. 【Vue】Re15 Router 第二部分(缺省路由、动态路由)

    一.设置首页重定向: import Vue from 'vue'; import Router from 'vue-router'; import Home from "../compone ...

  3. 内网穿透之实践记录,使用花生壳进行内外穿透,场景:在家远程ssh连接到公司电脑或学校服务器

    今天在网上闲逛的时候看到这样一个内网穿透的软件,ngrok, https://gitee.com/kxwinxp/ngrok 记得10多年前自己在读大学的时候曾经好一段时间在研究内网穿透技术,最后发现 ...

  4. python版本的“共轭梯度法”算法代码

    在看代码的过程中遇到了共轭梯度法这个概念,对这个算法的数学解释看过几遍,推导看过了,感觉懂了,然后过上一些日子就又忘记了,然后又看了一遍推导,然后过了一些日子也就又忘记了,最后想想这个算法的数学解释就 ...

  5. Spring Boot Admin对Springboot服务进行监控

    1.背景 大纲 Spring Boot Admin 是一个管理和监控Spring Boot 应用程序的开源软件.每个应用都认为是一个客户端,通过HTTP或者使用 Eureka注册到admin serv ...

  6. 手把手教你实现Scrapy-Redis分布式爬虫:从配置到最终运行的实战指南

    ## 1.scrapy-redis的环境准备 pip install scrapy-redis 安装完毕之后确保其可以正常导入使用即可. 2. 实现 接下来我们只需要简单的几步操作就可以实现分布式爬虫 ...

  7. SMU 2024 spring 天梯赛3

    SMU 2024 spring 天梯赛3 7-1 重要的话说三遍 - SMU 2024 spring 天梯赛3 (pintia.cn) I'm gonna WIN! I'm gonna WIN! I' ...

  8. Go 链路追踪入门 Opentelemetry

    前言 Opentelemetry 分布式链路跟踪( Distributed Tracing )的概念最早是由 Google 提出来的,发展至今技术已经比较成熟,也是有一些协议标准可以参考.目前在 Tr ...

  9. 10W数据量导入与现有表数据去重

    使用的是PostgreSQL 在做大数据量(十万级)导入时,某些字段和数据库表里数据(千万级)重复的需要排除掉,把表数据查询出来用程序的方式判断去重效率很低,于是考虑用临时表. 先把新数据插入到临时表 ...

  10. 【Python】之pip安装第三方库失败

    一直报错:Could not fetch URL https://pypi.org/simple/pygame/: There was a problem confirming the ssl cer ...