feat: first commit
This commit is contained in:
183
ttttt1.py
Normal file
183
ttttt1.py
Normal file
@@ -0,0 +1,183 @@
|
||||
# import requests
|
||||
#
|
||||
# url = "https://ranking.rakuten.co.jp/search?stx=GBAmarket&smd=0&prl=&pru=&rvf=&arf=&vmd=0&ptn=1&srt=1&sgid="
|
||||
#
|
||||
# headers = {
|
||||
# "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
|
||||
# "accept-language": "zh-CN,zh;q=0.9",
|
||||
# "priority": "u=0, i",
|
||||
# "referer": "https://ranking.rakuten.co.jp/search?stx=GBAmarket&smd=0&prl=&pru=&rvf=&arf=&vmd=0&ptn=1&srt=1&sgid=",
|
||||
# "sec-ch-ua": "\"Not)A;Brand\";v=\"8\", \"Chromium\";v=\"138\", \"Google Chrome\";v=\"138\"",
|
||||
# "sec-ch-ua-mobile": "?0",
|
||||
# "sec-ch-ua-platform": "\"macOS\"",
|
||||
# "sec-fetch-dest": "document",
|
||||
# "sec-fetch-mode": "navigate",
|
||||
# "sec-fetch-site": "same-origin",
|
||||
# "sec-fetch-user": "?1",
|
||||
# "upgrade-insecure-requests": "1",
|
||||
# "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"
|
||||
# }
|
||||
#
|
||||
# cookies = {
|
||||
# "_ra": "1752116555230|376efdb7-8d68-468f-ab3b-b236a7fee8ab",
|
||||
# "Rp": "afb2f0411bbbb8f596a7324d3bf686f2d4d8c42e",
|
||||
# "rcxGlobal": "6ab617f6-e89a-4849-a17d-39346ceab779",
|
||||
# "_fbp": "fb.2.1752116561306.554477302923466861",
|
||||
# "__lt__cid.3df24f5b": "b28a713c-0c65-415e-a885-5de2abc1947d",
|
||||
# "_gcl_au": "1.1.852913923.1752116563",
|
||||
# "_tt_enable_cookie": "1",
|
||||
# "_ttp": "01JZS4J2SDCX5FARA1FBNTRQQX_.tt.2",
|
||||
# "s_pers": " s_mrcr=1100400000000000%7C4000000000000%7C4000000000000%7C4000000000000|1909796626962;",
|
||||
# "rcx": "ad34370f-13d0-4131-82c8-6edb6f41e8f8",
|
||||
# "_cc_id": "c13444ea89c20325d7c9f7a3cc7f1ffc",
|
||||
# "Re": "11.3.18.2.0.212416.1:35.4.5.3.0.564023.2-11.3.18.2.0.212416.1:35.4.5.3.0.564023.2",
|
||||
# "_uetvid": "58ee65a05d3a11f09ed13da392f5e26d",
|
||||
# "ttcsid_COAFPAJC77U4F0RAECNG": "1752128671110::neArZJuye17ZAl_sOSSX.2.1752128671110",
|
||||
# "ttcsid": "1752128671112::4tJK9XFbWPZlM0luW3dG.2.1752128671191",
|
||||
# "ttcsid_COAECTBC77U6F5DVOFS0": "1752128671186::Kc-BUymsV6Mgnf8-9p4j.2.1752128672359",
|
||||
# "rat_v": "e173160a11ee7f9bc722413162268762dff46f33",
|
||||
# "__gads": "ID=bc3203bc3f1cac41:T=1752116635:RT=1752575488:S=ALNI_MbfuXQosJcKAJqdmor0IpqLU52sAA",
|
||||
# "__gpi": "UID=00001158e9c20516:T=1752116635:RT=1752575488:S=ALNI_MZPOIso8ayWwZVhscaaB7rk4eERug",
|
||||
# "__eoi": "ID=411c6fdd85018b70:T=1752116635:RT=1752575488:S=AA-AfjbICu9yvBwUOq3Ua87yCQaw",
|
||||
# "panoramaId_expiry": "1752661888761",
|
||||
# "panoramaId": "c659c5f420e4e9748ea29913dff3a9fb927a13802d967d06ed67bdf7141ff3fc",
|
||||
# "panoramaIdType": "panoDevice",
|
||||
# "FCNEC": "[[\"AKsRol8ePxhzalKVzFIUlIuF-TIoX_n5Q0EORVJZ_-XTM6sIG2BpLffroHzKJWD2XpfVzXZK5Ez4dqmM3jq-x6jrQbUk1Ulvgmhvs_Nhg2mXWUEW1Ha9UXuCU7JjpeHsgDue7rWSvZYW_QcBeavPux3Qk5OOykBrwg==\"]]",
|
||||
# "cto_bundle": "cOve5191cElKb3EyM3Z1Y3p0WTBDb3FlUkhzWUJPcTVTOFVQRGxaTWZUaEFOYiUyQmIwR1REaTJIcUtiNlNUVW9mYmYwekZMNWZxZ3FKU2NiMDZtMTFBaDZSJTJGdFRGaFdtTGpZQkx0WE51d3BiT1p2c2pXeDZGdXZRekNVVlIlMkJnSG11amtxQWJydiUyRnlsdTMlMkJ5Z01XRURQTFhpT2ZBJTNEJTNE"
|
||||
# }
|
||||
#
|
||||
# response = requests.get(url)
|
||||
# response1 = requests.get(url, headers={
|
||||
# "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
|
||||
# "accept-language": "zh-CN,zh;q=0.9",
|
||||
# "priority": "u=0, i",
|
||||
# "referer": "https://ranking.rakuten.co.jp/search?stx=GBAmarket&smd=0&prl=&pru=&rvf=&arf=&vmd=0&ptn=1&srt=1&sgid=",
|
||||
# "sec-ch-ua": "\"Not)A;Brand\";v=\"8\", \"Chromium\";v=\"138\", \"Google Chrome\";v=\"138\"",
|
||||
# "sec-ch-ua-mobile": "?0",
|
||||
# "sec-ch-ua-platform": "\"macOS\"",
|
||||
# "sec-fetch-dest": "document",
|
||||
# "sec-fetch-mode": "navigate",
|
||||
# "sec-fetch-site": "same-origin",
|
||||
# "sec-fetch-user": "?1",
|
||||
# "upgrade-insecure-requests": "1",
|
||||
# "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"
|
||||
# })
|
||||
# print()
|
||||
import os
|
||||
import shutil
|
||||
import tempfile
|
||||
import tensorflow_hub as hub
|
||||
|
||||
|
||||
# def fix_yamnet_cache():
|
||||
# """清理并重新下载YAMNet模型"""
|
||||
#
|
||||
# # 1. 清理TensorFlow Hub缓存
|
||||
# cache_dir = os.path.join(tempfile.gettempdir(), 'tfhub_modules')
|
||||
# if os.path.exists(cache_dir):
|
||||
# print(f"🗑️ 清理缓存目录: {cache_dir}")
|
||||
# shutil.rmtree(cache_dir)
|
||||
# print("✅ 缓存清理完成")
|
||||
#
|
||||
# # 2. 设置新的缓存目录
|
||||
# new_cache_dir = os.path.expanduser("~/tfhub_cache")
|
||||
# os.makedirs(new_cache_dir, exist_ok=True)
|
||||
# os.environ['TFHUB_CACHE_DIR'] = new_cache_dir
|
||||
#
|
||||
# print(f"📁 设置新缓存目录: {new_cache_dir}")
|
||||
#
|
||||
# # 3. 重新下载YAMNet模型
|
||||
# try:
|
||||
# print("🔄 重新下载YAMNet模型...")
|
||||
# yamnet_model = hub.load('https://tfhub.dev/google/yamnet/1')
|
||||
# print("✅ YAMNet模型加载成功!")
|
||||
# return yamnet_model
|
||||
# except Exception as e:
|
||||
# print(f"❌ 模型加载仍然失败: {e}")
|
||||
# return None
|
||||
#
|
||||
#
|
||||
import os
|
||||
import mutagen
|
||||
from mutagen.mp3 import MP3
|
||||
from mutagen.wavpack import WavPack
|
||||
from mutagen.flac import FLAC
|
||||
from mutagen.wave import WAVE
|
||||
from mutagen.oggvorbis import OggVorbis
|
||||
|
||||
|
||||
def get_audio_duration(file_path):
|
||||
"""
|
||||
获取音频文件的时长(秒)
|
||||
|
||||
参数:
|
||||
file_path (str): 音频文件路径
|
||||
|
||||
返回:
|
||||
float: 音频时长(秒),如果无法解析则返回None
|
||||
"""
|
||||
try:
|
||||
# 根据文件扩展名选择合适的解析器
|
||||
ext = os.path.splitext(file_path)[1].lower()
|
||||
|
||||
if ext == '.mp3':
|
||||
audio = MP3(file_path)
|
||||
elif ext == '.wav':
|
||||
audio = WAVE(file_path)
|
||||
elif ext == '.flac':
|
||||
audio = FLAC(file_path)
|
||||
elif ext == '.wv':
|
||||
audio = WavPack(file_path)
|
||||
elif ext == '.ogg':
|
||||
audio = OggVorbis(file_path)
|
||||
else:
|
||||
# 尝试通用解析器
|
||||
audio = mutagen.File(file_path)
|
||||
if not audio:
|
||||
print(f"不支持的文件格式: {file_path}")
|
||||
return None
|
||||
|
||||
# 获取时长(秒)
|
||||
duration = audio.info.length
|
||||
return duration
|
||||
|
||||
except Exception as e:
|
||||
print(f"处理文件 {file_path} 时出错: {str(e)}")
|
||||
return None
|
||||
|
||||
|
||||
def format_duration(seconds):
|
||||
"""将秒数格式化为时:分:秒"""
|
||||
if seconds is None:
|
||||
return "未知"
|
||||
|
||||
hours = int(seconds // 3600)
|
||||
minutes = int((seconds % 3600) // 60)
|
||||
secs = int(seconds % 60)
|
||||
|
||||
if hours > 0:
|
||||
return f"{hours}:{minutes:02d}:{secs:02d}"
|
||||
else:
|
||||
return f"{minutes}:{secs:02d}"
|
||||
|
||||
|
||||
def process_audio_files(directory):
|
||||
"""处理目录中的所有音频文件并显示时长"""
|
||||
# 支持的音频文件扩展名
|
||||
audio_extensions = ['.mp3', '.wav', '.flac', '.wv', '.ogg', '.m4a', '.aac']
|
||||
|
||||
# 遍历目录中的所有文件
|
||||
for filename in os.listdir(directory):
|
||||
file_path = os.path.join(directory, filename)
|
||||
|
||||
# 只处理文件,不处理目录
|
||||
if os.path.isfile(file_path):
|
||||
ext = os.path.splitext(filename)[1].lower()
|
||||
if ext in audio_extensions:
|
||||
duration_sec = get_audio_duration(file_path)
|
||||
duration_str = format_duration(duration_sec)
|
||||
print(f"{filename}: {duration_str}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
process_audio_files("data/cat_sounds_4")
|
||||
Reference in New Issue
Block a user