From 73bdba7440c8a852892e901c579556c729ead11c Mon Sep 17 00:00:00 2001 From: lostecho Date: Sat, 14 Jun 2025 08:14:15 +0800 Subject: [PATCH] update --- config.ini | 3 +- course_content_parser.py | 37 ++++++++----- courses.db | Bin 2777088 -> 2965504 bytes transcribe_media.py | 117 ++++++++++++++++++++++++++++++++++----- 4 files changed, 128 insertions(+), 29 deletions(-) diff --git a/config.ini b/config.ini index 90861f0..8ec2477 100755 --- a/config.ini +++ b/config.ini @@ -6,8 +6,7 @@ download_id = 663 max_download_threads = 5 max_retry_attempts = 3 -authorization_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiIxMDAwMDgzNDciLCJleHAiOjE3NDc5MTAyNjgsImp0aSI6IjA2MTNjN2NhLWMxYjUtNGYwZi1iMDZhLTJiZGE5YzAyNDBmZCIsImlhdCI6MTc0NTMxODI2OCwiaXNzIjoiYXBwdXNlciIsInVpZCI6ImJlMmViOGIyLTFhOTItNGVmMC05ZDAwLTA1YTlkN2E2OWRiMiIsInNjaGVtZSI6Imp3dGhzIiwic2lkIjoiZDBlMjZkNzItYjg0Yi00Y2IxLWJkYWQtN2ZhYWZlZTIxZTFjIn0.aWAc71N1gDqw_QPZAJRe9Tn0EAcTvDgVXBSZAUGM0Z8 - +authorization_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiIxMDAwMDgzNDciLCJleHAiOjE3NjI4NTg3NzIsImp0aSI6ImNjZDU2MTAyLTY1NmQtNDFlMS1iNDhjLWQ3OThlMjBiYjViNiIsImlhdCI6MTc0NzMwNjc3MiwiaXNzIjoiYXBwdXNlciIsInVpZCI6ImJlMmViOGIyLTFhOTItNGVmMC05ZDAwLTA1YTlkN2E2OWRiMiIsInNjaGVtZSI6Imp3dGhzIiwic2lkIjoiMzZmOWNiNjctYjIzZi00Y2VhLTgwYWMtMDY1MWY4Mzc3NzZjIn0.qUbPigGOsS399BfDnsPedNLpxwjJtY71TKBzSV1oPVw voice2txt_url=https://api.siliconflow.cn/v1/audio/transcriptions voice_token=sk-vksrlpckcpttnpjgftpgwytmiipjmvhyzmnffhbhjpahbfiq diff --git a/course_content_parser.py b/course_content_parser.py index 0b44510..065390a 100755 --- a/course_content_parser.py +++ b/course_content_parser.py @@ -76,7 +76,7 @@ def worker(queue, course_id_folder, course_audio_filename, max_retries): queue.task_done() -def fetch_course(): +def fetch_course(courseIds): conn = sqlite3.connect('courses.db') cursor = conn.cursor() max_course_id = cursor.execute('SELECT id FROM courses ORDER BY id DESC LIMIT 1') @@ -88,8 +88,10 @@ def fetch_course(): max_course_id = 11 start_course_id = download_id if max_course_id - 5 < download_id else max_course_id - 5 - - cursor.execute('SELECT id, title FROM courses where id >= ?', (start_course_id,)) + if courseIds is None: + cursor.execute('SELECT id, title FROM courses where id >= ?', (start_course_id,)) + else: + cursor.execute('SELECT id, title FROM courses WHERE id IN ({})'.format(','.join('?' * len(courseIds))), courseIds) course_ids_data = cursor.fetchall() course_ids = [row[0] for row in course_ids_data] course_ids_dict = dict(course_ids_data) @@ -116,12 +118,12 @@ def fetch_course(): for item in contents_data['data']: cursor.execute(''' - INSERT INTO contents (id, course_id, content, category, audio_order, attachment_url, mime_type) - VALUES (?, ?, ?, ?, ?, ?, ?) - ON CONFLICT(id) DO NOTHING - ''', (item['id'], course_id, item['content'], item['category'], item['order'], - item['attachment']['url'] if item['attachment'] else None, - item['attachment']['mime_type'] if item['attachment'] else None)) + INSERT INTO contents (id, course_id, content, category, audio_order, attachment_url, + mime_type) + VALUES (?, ?, ?, ?, ?, ?, ?) ON CONFLICT(id) DO NOTHING + ''', (item['id'], course_id, item['content'], item['category'], item['order'], + item['attachment']['url'] if item['attachment'] else None, + item['attachment']['mime_type'] if item['attachment'] else None)) return course_ids, course_ids_dict @@ -151,7 +153,7 @@ def download_course_contents(course_ids, course_ids_dict): threads = [] for _ in range(max_download_threads): t = Thread(target=worker, - args=(attachment_queue, course_id_folder, course_audio_filename, max_retry_attempts)) + args=(attachment_queue, course_id_folder, course_audio_filename, max_retry_attempts)) t.start() threads.append(t) @@ -225,10 +227,19 @@ def download_course_contents(course_ids, course_ids_dict): convert_media(mp4_file) -def get_course(): - course_ids, course_ids_dict = fetch_course() +def get_course(course_list=None): + course_ids, course_ids_dict = fetch_course(course_list) download_course_contents(course_ids, course_ids_dict) if __name__ == '__main__': - get_course() + # 多语的真相 381, 380, 382, 384, 385, 386, 387, 388, 391, 392, 393, 394, 399, 400, 402, 408, 409, 413, 414, 415, 423, 424, 534, 554 + # 写作课 225, 226, 228, 230, 231, 232, 238, 240, 564, 565, 566, 567, 568, 569, 243 + # 茶话会 87, 88, 89, 90, 91, 92, 93, 94, 97, 147, 177, 186, 190, 213, 219, 224, 235, 242, 263, 278, 289, 297, 305, 383, 398, 410, 418, 433, 505, 545, 582, 620, 638, 651, 664, 676, 686 + # 学员故事 364, 367, 368, 370, 371, 372, 373, 374, 375, 376, 377, 378, 313, 320, 319, 406, 405, 404, 401, 403, 411, 416, 417, 421, 422, 427, 430, 447, 438, 444, 446, 485, 487, 489, 493, 496, 498, 502, 507, 509, 513, 515, 518, 519, 529, 537, 544, 557, 575, 584, 590, 595, 598, 599, 606, 608, 611, 613, 618, 621, 624, 628, 633, 635, 637, 653, 642, 645, 648, 652, 655, 657, 662, 665, 671, 673, 674, 677, 680, 682, 685, 687 + # 相约七年后 484, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 60, 61, 86, 95, 148, 233, 246, 273, 291, 317, 396, 412, 426, 442, 492, 506, 552, 589, 607, 619, 644, 656, 672, 683 + # 笑来分享合集 191, 192, 193, 194, 195, 196, 214, 215, 216, 217, 220, 221, 222, 227, 229, 234, 236, 237, 239, 241, 243, 244, 245, 247, 248, 249, 253, 290, 292, 390, 395, 397, 399, 400, 402, 409, 408, 414, 419, 423, 428, 429, 435, 436, 439, 440, 443, 445, 479, 488, 490, 491, 495, 497, 499, 500, 503, 508, 510, 514, 516, 517, 520, 521, 530, 532, 534, 538, 543, 547, 549, 554, 558, 562, 563, 570, 573, 578, 597, 609, 610, 612, 615, 616, 617, 622, 623, 626, 631, 634, 641, 640, 643, 647, 650, 654, 661, 668, 675, 679 + # 人工智能 585, 586, 587, 588, 591, 592, 593, 594, 601, 602, 604, 605 + # course_list = [585, 586, 587, 588, 591, 592, 593, 594, 601, 602, 604, 605] + course_list = None + get_course(course_list) diff --git a/courses.db b/courses.db index 709b556a8ecb5155dc6d2cec00ce0dc31070de85..e6512f0723f9ee12492d71e058ace9e102cce3cf 100755 GIT binary patch delta 177116 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%0DnYNZMTV^^BTVo+{)~KO}x%ZyT<6ggxA86Oo*W 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 max_length: + if (i + 1 < len(sentence) and sentence[i + 1] in SENTENCE_ENDINGS) or char == ' ': + processed_lines.append(current_line.strip()) + current_line = "" + # 添加最后一个片段 + if current_line.strip(): + processed_lines.append(current_line.strip()) + + # 用换行符连接所有处理后的行 + return "\n".join(processed_lines) def convert_media(file_path, is_batch=False, save_to_disk=True): try: audio_file = extract_or_convert_audio(file_path) + if audio_file is None: + return None + if is_batch: transcript = transcribe_audio_funasr_batch(audio_file) else: transcript = transcribe_audio_funasr(audio_file) + logger.info("\n📜 Transcript:") logger.info(transcript) - # ✅ Save transcript to disk + # ✅ Save transcript to disk as .txt file if save_to_disk: - output_path = os.path.splitext(file_path)[0] + ".md" + output_path = os.path.splitext(file_path)[0] + ".txt" with open(output_path, "w", encoding="utf-8") as f: f.write(transcript) logger.info(f"✅ Transcript saved to: {output_path}") @@ -90,19 +154,44 @@ def convert_media(file_path, is_batch=False, save_to_disk=True): os.remove("processed_audio.wav") +def process_input(path, recursive=False): + if not os.path.exists(path): + logger.error(f"❌ Path does not exist: {path}") + return + + supported_exts = {".mp4", ".mov", ".avi", ".mkv", ".mp3", ".wav", ".flac", ".m4a", ".aac"} + + if os.path.isfile(path): + ext = os.path.splitext(path)[1].lower() + if ext in supported_exts: + convert_media(path) + else: + logger.warning(f"🚫 Unsupported file skipped: {path}") + elif os.path.isdir(path): + for root, dirs, files in os.walk(path): + for file in files: + file_path = os.path.join(root, file) + ext = os.path.splitext(file)[1].lower() + if ext in supported_exts: + try: + convert_media(file_path, False) + except Exception as e: + logger.error(f"Error processing {file_path}: {e}") + else: + logger.debug(f"Skipping non-media file: {file_path}") + if not recursive: + break def main(): - audio_files = [] - for root, dirs, files in os.walk('media'): - for file in files: - audio_files.append(os.path.join(root, file)) - logger.info("scan files: " + audio_files) + parser = argparse.ArgumentParser(description="Convert audio/video to text using FunASR.") + parser.add_argument("input_path", nargs='?', default="./media", help="Path to a file or folder containing media files. Defaults to './media'.") + parser.add_argument("--recursive", "-r", action="store_true", help="Process subdirectories recursively.") + args = parser.parse_args() - for audio_file in audio_files: - audio_file_path = os.path.join(audio_file) - convert_media(audio_file_path) + input_path = args.input_path + process_input(input_path, recursive=args.recursive) if __name__ == '__main__': - main() + main() \ No newline at end of file