[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-shibing624--parrots":3,"tool-shibing624--parrots":65},[4,23,32,40,48,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":22},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85052,2,"2026-04-08T11:03:08",[13,14,15,16,17,18,19,20,21],"图像","数据工具","视频","插件","Agent","其他","语言模型","开发框架","音频","ready",{"id":24,"name":25,"github_repo":26,"description_zh":27,"stars":28,"difficulty_score":29,"last_commit_at":30,"category_tags":31,"status":22},4128,"GPT-SoVITS","RVC-Boss\u002FGPT-SoVITS","GPT-SoVITS 是一款强大的开源语音合成与声音克隆工具，旨在让用户仅需极少量的音频数据即可训练出高质量的个性化语音模型。它核心解决了传统语音合成技术依赖海量录音数据、门槛高且成本大的痛点，实现了“零样本”和“少样本”的快速建模：用户只需提供 5 秒参考音频即可即时生成语音，或使用 1 分钟数据进行微调，从而获得高度逼真且相似度极佳的声音效果。\n\n该工具特别适合内容创作者、独立开发者、研究人员以及希望为角色配音的普通用户使用。其内置的友好 WebUI 界面集成了人声伴奏分离、自动数据集切片、中文语音识别及文本标注等辅助功能，极大地降低了数据准备和模型训练的技术门槛，让非专业人士也能轻松上手。\n\n在技术亮点方面，GPT-SoVITS 不仅支持中、英、日、韩、粤语等多语言跨语种合成，还具备卓越的推理速度，在主流显卡上可实现实时甚至超实时的生成效率。无论是需要快速制作视频配音，还是进行多语言语音交互研究，GPT-SoVITS 都能以极低的数据成本提供专业级的语音合成体验。",56375,3,"2026-04-05T22:15:46",[21],{"id":33,"name":34,"github_repo":35,"description_zh":36,"stars":37,"difficulty_score":29,"last_commit_at":38,"category_tags":39,"status":22},2863,"TTS","coqui-ai\u002FTTS","🐸TTS 是一款功能强大的深度学习文本转语音（Text-to-Speech）开源库，旨在将文字自然流畅地转化为逼真的人声。它解决了传统语音合成技术中声音机械生硬、多语言支持不足以及定制门槛高等痛点，让高质量的语音生成变得触手可及。\n\n无论是希望快速集成语音功能的开发者，还是致力于探索前沿算法的研究人员，亦或是需要定制专属声音的数据科学家，🐸TTS 都能提供得力支持。它不仅预置了覆盖全球 1100 多种语言的训练模型，让用户能够即刻上手，还提供了完善的工具链，支持用户利用自有数据训练新模型或对现有模型进行微调，轻松实现特定风格的声音克隆。\n\n在技术亮点方面，🐸TTS 表现卓越。其最新的 ⓍTTSv2 模型支持 16 种语言，并在整体性能上大幅提升，实现了低于 200 毫秒的超低延迟流式输出，极大提升了实时交互体验。此外，它还无缝集成了 🐶Bark、🐢Tortoise 等社区热门模型，并支持调用上千个 Fairseq 模型，展现了极强的兼容性与扩展性。配合丰富的数据集分析与整理工具，🐸TTS 已成为科研与生产环境中备受信赖的语音合成解决方案。",44971,"2026-04-03T14:47:02",[21,20,13],{"id":41,"name":42,"github_repo":43,"description_zh":44,"stars":45,"difficulty_score":29,"last_commit_at":46,"category_tags":47,"status":22},2375,"LocalAI","mudler\u002FLocalAI","LocalAI 是一款开源的本地人工智能引擎，旨在让用户在任意硬件上轻松运行各类 AI 模型，包括大语言模型、图像生成、语音识别及视频处理等。它的核心优势在于彻底打破了高性能计算的门槛，无需昂贵的专用 GPU，仅凭普通 CPU 或常见的消费级显卡（如 NVIDIA、AMD、Intel 及 Apple Silicon）即可部署和运行复杂的 AI 任务。\n\n对于担心数据隐私的用户而言，LocalAI 提供了“隐私优先”的解决方案，确保所有数据处理均在本地基础设施内完成，无需上传至云端。同时，它完美兼容 OpenAI、Anthropic 等主流 API 接口，这意味着开发者可以无缝迁移现有应用，直接利用本地资源替代云服务，既降低了成本又提升了可控性。\n\nLocalAI 内置了超过 35 种后端支持（如 llama.cpp、vLLM、Whisper 等），并集成了自主 AI 代理、工具调用及检索增强生成（RAG）等高级功能，且具备多用户管理与权限控制能力。无论是希望保护敏感数据的企业开发者、进行算法实验的研究人员，还是想要在个人电脑上体验最新 AI 技术的极客玩家，都能通过 LocalAI 获",44782,"2026-04-02T22:14:26",[13,21,19,17,20,14,16],{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":29,"last_commit_at":54,"category_tags":55,"status":22},3108,"bark","suno-ai\u002Fbark","Bark 是由 Suno 推出的开源生成式音频模型，能够根据文本提示创造出高度逼真的多语言语音、音乐、背景噪音及简单音效。与传统仅能朗读文字的语音合成工具不同，Bark 基于 Transformer 架构，不仅能模拟说话，还能生成笑声、叹息、哭泣等非语言声音，甚至能处理带有情感色彩和语气停顿的复杂文本，极大地丰富了音频表达的可能性。\n\n它主要解决了传统语音合成声音机械、缺乏情感以及无法生成非语音类音效的痛点，让创作者能通过简单的文字描述获得生动自然的音频素材。无论是需要为视频配音的内容创作者、探索多模态生成的研究人员，还是希望快速原型设计的开发者，都能从中受益。普通用户也可通过集成的演示页面轻松体验其神奇效果。\n\n技术亮点方面，Bark 支持商业使用（MIT 许可），并在近期更新中实现了显著的推理速度提升，同时提供了适配低显存 GPU 的版本，降低了使用门槛。此外，社区还建立了丰富的提示词库，帮助用户更好地驾驭模型生成特定风格的声音。只需几行 Python 代码，即可将创意文本转化为高质量音频，是连接文字与声音世界的强大桥梁。",39067,"2026-04-04T03:33:35",[21],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":62,"last_commit_at":63,"category_tags":64,"status":22},3788,"airi","moeru-ai\u002Fairi","airi 是一款开源的本地化 AI 伴侣项目，旨在将虚拟角色（如“二次元老婆”或赛博生命）带入用户的现实世界。它的核心目标是复刻并超越知名 AI 主播 Neuro-sama 的能力，让用户能够拥有完全自主掌控、可私有化部署的智能伙伴。\n\nairi 主要解决了用户对高度定制化、具备情感交互能力且数据隐私安全的 AI 角色的需求。不同于依赖云端服务的通用助手，airi 允许用户在本地运行，不仅保护了对话隐私，还赋予了用户定义角色性格与灵魂的自由。它支持实时语音聊天，甚至能直接参与《我的世界》（Minecraft）和《异星工厂》（Factorio）等游戏，实现了从单纯对话到共同娱乐的跨越。\n\n这款工具非常适合喜爱虚拟角色的普通用户、希望搭建个性化 AI 陪伴的技术爱好者，以及研究多模态交互的开发者。其独特的技术亮点在于跨平台支持（涵盖 Web、macOS 和 Windows）以及强大的游戏交互能力，让 AI 不仅能“说”，还能“玩”。通过容器化的灵魂设计，airi 为每个人创造专属数字生命提供了可能，让虚拟陪伴变得更加真实且触手可及。",37086,1,"2026-04-05T10:54:25",[19,21,17],{"id":66,"github_repo":67,"name":68,"description_en":69,"description_zh":70,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":81,"owner_email":82,"owner_twitter":83,"owner_website":84,"owner_url":85,"languages":86,"stars":103,"forks":104,"last_commit_at":105,"license":106,"difficulty_score":29,"env_os":107,"env_gpu":108,"env_ram":109,"env_deps":110,"category_tags":120,"github_topics":121,"view_count":10,"oss_zip_url":83,"oss_zip_packed_at":83,"status":22,"created_at":129,"updated_at":130,"faqs":131,"releases":162},5526,"shibing624\u002Fparrots","parrots"," Automatic Speech Recognition(ASR), Text-To-Speech(TTS) engine. 中英语音识别、多角色语音合成，支持多语言，准确率高","Parrots 是一款开箱即用的语音智能工具箱，专注于提供高精度的自动语音识别（ASR）与文本转语音（TTS）服务。它有效解决了传统语音模型部署复杂、多语言支持不足以及情感表达单一的痛点，让用户能轻松实现中、英、日等多语言的语音互转。\n\n无论是希望快速集成语音功能的开发者，还是从事相关算法研究的研究人员，亦或是需要制作多角色配音的内容创作者，都能从中受益。Parrots 不仅支持一键调用预训练模型，更集成了多项前沿技术亮点：其识别模块基于 distilwhisper，确保了跨语言的准确率；合成模块则融合了 GPT-SoVITS 与先进的 IndexTTS2 模型，不仅能进行零样本声音克隆，还能将说话人音色与情感表达解耦。这意味着用户可以独立控制语音的情感色彩和时长，甚至通过文本描述精准定制语气。此外，Parrots 还具备流式合成能力，显著降低延迟，非常适合实时对话场景。只需几行代码，即可在本地或云端构建高质量的语音交互应用。","[**🇨🇳中文**](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fblob\u002Fmaster\u002FREADME.md) | [**🌐English**](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fblob\u002Fmaster\u002FREADME_EN.md) | [**📖文档\u002FDocs**](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fwiki) | [**🤖模型\u002FModels**](https:\u002F\u002Fhuggingface.co\u002Fshibing624) \n\n\u003Cdiv align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_parrots_readme_d50dd38bbf1e.png\" alt=\"Logo\" height=\"156\">\n    \u003C\u002Fa>\n    \u003Cbr\u002F>\n    \u003Cbr\u002F>\n    \u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fshibing624\u002Fparrots\" target=\"_blank\"> Online Demo \u003C\u002Fa>\n    \u003Cbr\u002F>\n    \u003Cimg width=\"100%\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_parrots_readme_f11af708397b.jpg\">\n\u003C\u002Fdiv>\n\n\n-----------------\n\n# Parrots: ASR and TTS toolkit\n[![PyPI version](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fparrots.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fparrots)\n[![Downloads](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_parrots_readme_8ea22d62bce6.png)](https:\u002F\u002Fpepy.tech\u002Fproject\u002Fparrots)\n[![Contributions welcome](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcontributions-welcome-brightgreen.svg)](CONTRIBUTING.md)\n[![GitHub contributors](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002Fshibing624\u002Fparrots.svg)](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fgraphs\u002Fcontributors)\n[![License Apache 2.0](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache%202.0-blue.svg)](LICENSE)\n[![python_vesion](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-3.7%2B-green.svg)](requirements.txt)\n[![GitHub issues](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Fshibing624\u002Fparrots.svg)](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fissues)\n[![Wechat Group](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fwechat-group-green.svg?logo=wechat)](#Contact)\n\n## Introduction\nParrots, Automatic Speech Recognition(**ASR**), Text-To-Speech(**TTS**) toolkit, support Chinese, English, Japanese, etc.\n\n**parrots**实现了语音识别和语音合成模型一键调用，开箱即用，支持中英文。\n\n## Features\n1. **ASR**：基于`distilwhisper`实现的中文语音识别（ASR）模型，支持中、英等多种语言\n2. **TTS**：基于`GPT-SoVITS`训练的语音合成（TTS）模型，支持中、英、日等多种语言\n3. **IndexTTS2**：集成了 IndexTTS2 模型，支持情感表达和时长控制的零样本语音合成\n   - 精确的语音时长控制\n   - 情感与说话人身份解耦，独立控制音色和情感\n   - 支持多种情感控制方式：音频参考、情感向量、文本描述\n   - 高度表现力的情感语音合成\n4. **流式TTS**：支持流式语音合成，实现低延迟的实时语音输出\n\n\n\n\n## Install\n```shell\npip install torch # or conda install pytorch\npip install -r requirements.txt\npip install parrots\n```\nor\n```shell\npip install torch # or conda install pytorch\ngit clone https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots.git\ncd parrots\npython setup.py install\n```\n\n## Demo\n- HuggingFace Demo: https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fshibing624\u002Fparrots\n\n\u003Cimg width=\"85%\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_parrots_readme_f5f58e2219c1.png\">\n\nrun example: [examples\u002Ftts_gradio_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fblob\u002Fmaster\u002Fexamples\u002Ftts_gradio_demo.py) to see the demo:\n```shell\npython examples\u002Ftts_gradio_demo.py\n```\n\n## Usage\n### ASR(Speech Recognition)\nexample: [examples\u002Fdemo_asr.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fblob\u002Fmaster\u002Fexamples\u002Fdemo_asr.py)\n```python\nimport os\nimport sys\n\nsys.path.append('..')\nfrom parrots import SpeechRecognition\n\npwd_path = os.path.abspath(os.path.dirname(__file__))\n\nif __name__ == '__main__':\n    m = SpeechRecognition()\n    r = m.recognize_speech_from_file(os.path.join(pwd_path, 'tushuguan.wav'))\n    print('[提示] 语音识别结果：', r)\n\n```\n\noutput:\n```\n{'text': '北京图书馆'}\n```\n\n### TTS(Speech Synthesis)\n\n#### GPT-SoVITS 基础用法\nexample: [examples\u002Fdemo_tts.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fblob\u002Fmaster\u002Fexamples\u002Fdemo_tts.py)\n```python\nfrom parrots import TextToSpeech\n\n# 初始化 TTS 模型（无需手动配置路径）\nm = TextToSpeech(\n    speaker_model_path=\"shibing624\u002Fparrots-gpt-sovits-speaker-maimai\",\n    speaker_name=\"MaiMai\",\n    device=\"cpu\",  # 或 \"cuda\" 使用 GPU\n    half=False     # 设置为 True 使用半精度加速\n)\n\n# 生成语音\nm.predict(\n    text=\"你好，欢迎来到北京。这是一个合成录音文件的演示。Welcome to Beijing!\",\n    text_language=\"auto\",  # 自动检测语言，也可指定 \"zh\", \"en\", \"ja\"\n    output_path=\"output_audio.wav\"\n)\n```\n\noutput:\n```\nSave audio to output_audio.wav\n```\n\n#### 流式 TTS（低延迟）\n\n支持流式语音合成，适用于实时对话场景：\n\n```python\nfrom parrots import TextToSpeech\nimport soundfile as sf\nimport numpy as np\n\nm = TextToSpeech(\n    speaker_model_path=\"shibing624\u002Fparrots-gpt-sovits-speaker-maimai\",\n    speaker_name=\"MaiMai\",\n)\n\n# 流式生成语音\naudio_chunks = []\nfor audio_chunk in m.predict_stream(\n    text=\"这是一段较长的文本，将会被流式合成为语音。\",\n    text_language=\"zh\",\n    stream_chunk_size=20  # 控制延迟，越小延迟越低\n):\n    audio_chunks.append(audio_chunk)\n    # 这里可以实时播放 audio_chunk\n\n# 保存完整音频\nfull_audio = np.concatenate(audio_chunks)\nsf.write(\"streaming_output.wav\", full_audio, m.sampling_rate)\n```\n\n#### 日志管理\n\n控制日志输出级别：\n\n```python\nfrom parrots import TextToSpeech\nfrom parrots.log import set_log_level, logger\n\n# 设置日志级别\nset_log_level(\"INFO\")  # 可选: DEBUG, INFO, WARNING, ERROR\n\nm = TextToSpeech(\n    speaker_model_path=\"shibing624\u002Fparrots-gpt-sovits-speaker-maimai\",\n    speaker_name=\"MaiMai\",\n)\n\n# 使用 logger\nlogger.info(\"开始语音合成...\")\nm.predict(\n    text=\"你好，世界！\",\n    text_language=\"zh\",\n    output_path=\"output.wav\"\n)\n```\n\n#### IndexTTS2 高级用法\n\nIndexTTS2 是一个突破性的情感表达和时长控制的自回归零样本语音合成模型。\n\nexample: [examples\u002Fdemo_indextts.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fblob\u002Fmaster\u002Fexamples\u002Fdemo_indextts.py)\n\n**1. 基础语音克隆（使用单个参考音频）**\n\n```python\nfrom parrots.indextts import IndexTTS2\n\ntts = IndexTTS2()\ntext = \"你好，欢迎来到北京。这是一个合成录音文件的演示。\"\ntts.infer(text=text, output_path=\"gen.wav\", verbose=True)\n```\n\n**2. 情感语音合成（使用情感参考音频）**\n\n使用单独的情感参考音频来控制语音合成的情感表达：\n\n```python\nfrom parrots.indextts import IndexTTS2\n\ntts = IndexTTS2()\ntext = \"酒楼丧尽天良，开始借机竞拍房间，哎，一群蠢货。\"\ntts.infer(\n   speak_reference_audio_path_or_name='examples\u002Fvoice_07.wav',  # 说话人音色参考\n   text=text,\n   output_path=\"gen.wav\",\n   emo_reference_audio_path=\"examples\u002Femo_sad.wav\",  # 情感参考音频\n   verbose=True\n)\n```\n\n**3. 调整情感强度**\n\n通过 `emo_alpha` 参数（范围 0.0-1.0）调整情感影响程度：\n\n```python\nfrom parrots.indextts import IndexTTS2\n\ntts = IndexTTS2()\ntext = \"酒楼丧尽天良，开始借机竞拍房间，哎，一群蠢货。\"\ntts.infer(\n   speak_reference_audio_path_or_name='examples\u002Fvoice_07.wav',\n   text=text,\n   output_path=\"gen.wav\",\n   emo_reference_audio_path=\"examples\u002Femo_sad.wav\",\n   emo_alpha=0.6,  # 情感强度 60%\n   verbose=True\n)\n```\n\n**4. 使用情感向量控制**\n\n直接提供 8 维情感向量来精确控制情感，顺序为：\n`[开心, 生气, 悲伤, 害怕, 厌恶, 忧郁, 惊讶, 平静]`\n\n```python\nfrom parrots.indextts import IndexTTS2\n\ntts = IndexTTS2()\ntext = \"哇塞！这个爆率也太高了！欧皇附体了！\"\ntts.infer(\n   speak_reference_audio_path_or_name='examples\u002Fvoice_10.wav',\n   text=text,\n   output_path=\"gen.wav\",\n   emo_vector=[0, 0, 0, 0, 0, 0, 0.45, 0],  # 惊讶情感\n   use_random=False,\n   verbose=True\n)\n```\n\n**5. 基于文本的情感控制**\n\n启用 `use_emo_text` 可以根据文本内容自动推断情感：\n\n```python\nfrom parrots.indextts import IndexTTS2\n\ntts = IndexTTS2()\ntext = \"快躲起来！是他要来了！他要来抓我们了！\"\ntts.infer(\n   speak_reference_audio_path_or_name='examples\u002Fvoice_12.wav',\n   text=text,\n   output_path=\"gen.wav\",\n   emo_alpha=0.6,\n   use_emo_text=True,  # 启用文本情感分析\n   use_random=False,\n   verbose=True\n)\n```\n\n**6. 独立的情感文本描述**\n\n通过 `emo_text` 参数单独指定情感描述文本：\n\n```python\nfrom parrots.indextts import IndexTTS2\n\ntts = IndexTTS2()\ntext = \"快躲起来！是他要来了！他要来抓我们了！\"\nemo_text = \"你吓死我了！你是鬼吗？\"  # 独立的情感描述\ntts.infer(\n   speak_reference_audio_path_or_name='examples\u002Fvoice_12.wav',\n   text=text,\n   output_path=\"gen.wav\",\n   emo_alpha=0.6,\n   use_emo_text=True,\n   emo_text=emo_text,\n   use_random=False,\n   verbose=True\n)\n```\n\n**拼音控制说明：**\n\nIndexTTS2 支持中文字符和拼音的混合建模。当需要精确的发音控制时，请提供带有特定拼音标注的文本。\n注意：拼音控制不支持所有可能的声母-韵母组合，仅支持有效的中文拼音。\n\n示例：\n```python\ntext = \"之前你做DE5很好，所以这一次也DEI3做DE2很好才XING2，如果这次目标完成得不错的话，我们就直接打DI1去银行取钱。\"\n```\n\n### 命令行模式（CLI）\n\n支持通过命令行方式执行ARS和TTS任务，代码：[cli.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fblob\u002Fmaster\u002Fparrots\u002Fcli.py)\n\n```\n> parrots -h                                    \n\nNAME\n    parrots\n\nSYNOPSIS\n    parrots COMMAND\n\nCOMMANDS\n    COMMAND is one of the following:\n\n     asr\n       Entry point of asr, recognize speech from file\n\n     tts\n       Entry point of tts, generate speech audio from text\n\n```\n\nrun：\n\n```shell\npip install parrots -U\n# asr example\nparrots asr -h\nparrots asr examples\u002Ftushuguan.wav\n\n# tts example\nparrots tts -h\nparrots tts \"你好，欢迎来北京。welcome to the city.\" output_audio.wav\n```\n\n- `asr`、`tts`是二级命令，asr是语音识别，tts是语音合成，默认使用的模型是中文模型\n- 各二级命令使用方法见`parrots asr -h`\n- 上面示例中`examples\u002Ftushuguan.wav`是`asr`方法的`audio_file_path`参数，输入的音频文件（required）\n\n## Release Models\n\n### ASR\n- [BELLE-2\u002FBelle-distilwhisper-large-v2-zh](https:\u002F\u002Fhuggingface.co\u002FBELLE-2\u002FBelle-distilwhisper-large-v2-zh)\n\n### IndexTTS2\n- [IndexTeam\u002FIndexTTS-2](https:\u002F\u002Fhuggingface.co\u002FIndexTeam\u002FIndexTTS-2) - 最新的情感表达和时长控制模型\n- [IndexTeam\u002FIndexTTS-1.5](https:\u002F\u002Fhuggingface.co\u002FIndexTeam\u002FIndexTTS-1.5) - 改进的稳定性和英语性能\n- [IndexTeam\u002FIndex-TTS](https:\u002F\u002Fhuggingface.co\u002FIndexTeam\u002FIndex-TTS) - 初始版本\n\n相关论文：\n- [IndexTTS2 Paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2506.21619) - 情感表达和时长控制的突破\n- [IndexTTS Paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.05512) - 工业级可控零样本 TTS\n\n### GPT-SoVITS TTS\n\n- [shibing624\u002Fparrots-gpt-sovits-speaker](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fparrots-gpt-sovits-speaker)\n\n| speaker name | 说话人名 | character | 角色特点 | language | 语言 |\n|--|--|--|--|--|--|\n| KuileBlanc | 葵·勒布朗 | lady | 标准美式女声 | en | 英 |\n| LongShouRen | 龙守仁 | gentleman | 标准美式男声 | en | 英 |\n| MaiMai | 卖卖| singing female anchor | 唱歌女主播声 | zh | 中 |\n| XingTong | 星瞳 | singing ai girl | 活泼女声 | zh | 中 |\n| XuanShen | 炫神 | game male anchor | 游戏男主播声 | zh | 中 |\n| KusanagiNene | 草薙寧々 | loli | 萝莉女学生声 | ja | 日 |\n\n- [shibing624\u002Fparrots-gpt-sovits-speaker-maimai](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fparrots-gpt-sovits-speaker-maimai)\n\n| speaker name | 说话人名 | character | 角色特点 | language | 语言 |\n|--|--|--|--|--|--|\n| MaiMai | 卖卖| singing female anchor | 唱歌女主播声 | zh | 中 |\n\n## 更新日志\n\n### v0.3.0 (2025-11)\n- 🔥 集成 IndexTTS2 模型，支持情感表达和时长控制的零样本语音合成\n- ✨ 支持多种情感控制方式：音频参考、情感向量、文本描述\n- ✨ 实现情感与说话人身份解耦，独立控制音色和情感\n- ✨ 支持拼音混合建模，实现精确发音控制\n- 🐛 修复 transformers 4.50+ 兼容性问题\n- 🐛 修复字典参数访问错误\n- 📝 新增 IndexTTS2 使用示例和文档\n\n### v0.2.0 (2025-10)\n- ✨ 新增流式 TTS 功能，支持低延迟实时语音合成\n- ✨ 新增统一的日志管理系统（基于 loguru）\n- 🐛 修复 PyTorch 2.0+ 的 `weight_norm` 弃用警告\n- 🐛 修复 `torch.stft` 的 `return_complex=False` 弃用警告\n- 🐛 修复 librosa 的 `resample` 和 `time_stretch` 警告\n- 🔧 优化模型加载机制，无需手动添加 `sys.path`\n- 📝 完善文档和示例代码\n\n### v0.1.0 (2024-12)\n- 🎉 初始版本发布\n- ✨ 支持 ASR（语音识别）\n- ✨ 支持 TTS（语音合成）\n- ✨ 支持中、英、日多语言\n\n## Contact\n\n- Issue(建议)：[![GitHub issues](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Fshibing624\u002Fparrots.svg)](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fissues)\n- 邮件我：xuming: xuming624@qq.com\n- 微信我：加我*微信号：xuming624*, 进Python-NLP交流群，备注：*姓名-公司名-NLP*\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_parrots_readme_3dce032d5680.jpeg\" width=\"200\" \u002F>\n\n\n## Citation\n\n如果你在研究中使用了parrots，请按如下格式引用：\n\n```latex\n@misc{parrots,\n  title={parrots: ASR and TTS Tool},\n  author={Ming Xu},\n  year={2024},\n  howpublished={\\url{https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots}},\n}\n```\n\n## License\n\n\n授权协议为 [The Apache License 2.0](\u002FLICENSE)，可免费用做商业用途。请在产品说明中附加parrots的链接和授权协议。\n\n\n## Contribute\n项目代码还很粗糙，如果大家对代码有所改进，欢迎提交回本项目，在提交之前，注意以下两点：\n\n - 在`tests`添加相应的单元测试\n - 使用`python -m pytest`来运行所有单元测试，确保所有单测都是通过的\n\n之后即可提交PR。\n\n\n## Reference\n#### ASR(Speech Recognition)\n- [EAT: Enhanced ASR-TTS for Self-supervised Speech Recognition](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.07474)\n- [PaddlePaddle\u002FPaddleSpeech](https:\u002F\u002Fgithub.com\u002FPaddlePaddle\u002FPaddleSpeech)\n- [NVIDIA\u002FNeMo](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNeMo)\n#### TTS(Speech Synthesis)\n- [IndexTeam\u002FIndexTTS](https:\u002F\u002Fgithub.com\u002Findex-tts\u002Findex-tts) - IndexTTS2 情感表达和时长控制\n- [coqui-ai\u002FTTS](https:\u002F\u002Fgithub.com\u002Fcoqui-ai\u002FTTS)\n- [keonlee9420\u002FExpressive-FastSpeech2](https:\u002F\u002Fgithub.com\u002Fkeonlee9420\u002FExpressive-FastSpeech2)\n- [TensorSpeech\u002FTensorflowTTS](https:\u002F\u002Fgithub.com\u002FTensorSpeech\u002FTensorflowTTS)\n- [RVC-Boss\u002FGPT-SoVITS](https:\u002F\u002Fgithub.com\u002FRVC-Boss\u002FGPT-SoVITS)\n","[**🇨🇳中文**](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fblob\u002Fmaster\u002FREADME.md) | [**🌐English**](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fblob\u002Fmaster\u002FREADME_EN.md) | [**📖文档\u002FDocs**](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fwiki) | [**🤖模型\u002FModels**](https:\u002F\u002Fhuggingface.co\u002Fshibing624) \n\n\u003Cdiv align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_parrots_readme_d50dd38bbf1e.png\" alt=\"Logo\" height=\"156\">\n    \u003C\u002Fa>\n    \u003Cbr\u002F>\n    \u003Cbr\u002F>\n    \u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fshibing624\u002Fparrots\" target=\"_blank\"> 在线演示 \u003C\u002Fa>\n    \u003Cbr\u002F>\n    \u003Cimg width=\"100%\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_parrots_readme_f11af708397b.jpg\">\n\u003C\u002Fdiv>\n\n\n-----------------\n\n# Parrots: ASR和TTS工具包\n[![PyPI版本](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fparrots.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fparrots)\n[![下载量](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_parrots_readme_8ea22d62bce6.png)](https:\u002F\u002Fpepy.tech\u002Fproject\u002Fparrots)\n[![欢迎贡献](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcontributions-welcome-brightgreen.svg)](CONTRIBUTING.md)\n[![GitHub贡献者](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002Fshibing624\u002Fparrots.svg)](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fgraphs\u002Fcontributors)\n[![许可证 Apache 2.0](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache%202.0-blue.svg)](LICENSE)\n[![Python版本](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-3.7%2B-green.svg)](requirements.txt)\n[![GitHub问题](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Fshibing624\u002Fparrots.svg)](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fissues)\n[![微信群](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fwechat-group-green.svg?logo=wechat)](#Contact)\n\n## 简介\nParrots，自动语音识别（**ASR**）、文本到语音合成（**TTS**）工具包，支持中文、英文、日语等语言。\n\n**parrots**实现了语音识别和语音合成模型一键调用，开箱即用，支持中英文。\n\n## 特性\n1. **ASR**：基于`distilwhisper`实现的中文语音识别（ASR）模型，支持中、英等多种语言\n2. **TTS**：基于`GPT-SoVITS`训练的语音合成（TTS）模型，支持中、英、日等多种语言\n3. **IndexTTS2**：集成了 IndexTTS2 模型，支持情感表达和时长控制的零样本语音合成\n   - 精确的语音时长控制\n   - 情感与说话人身份解耦，独立控制音色和情感\n   - 支持多种情感控制方式：音频参考、情感向量、文本描述\n   - 高度表现力的情感语音合成\n4. **流式TTS**：支持流式语音合成，实现低延迟的实时语音输出\n\n\n\n\n## 安装\n```shell\npip install torch # 或 conda install pytorch\npip install -r requirements.txt\npip install parrots\n```\n或者\n```shell\npip install torch # 或 conda install pytorch\ngit clone https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots.git\ncd parrots\npython setup.py install\n```\n\n## 演示\n- HuggingFace演示：https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fshibing624\u002Fparrots\n\n\u003Cimg width=\"85%\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_parrots_readme_f5f58e2219c1.png\">\n\n运行示例：[examples\u002Ftts_gradio_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fblob\u002Fmaster\u002Fexamples\u002Ftts_gradio_demo.py) 查看演示：\n```shell\npython examples\u002Ftts_gradio_demo.py\n```\n\n## 使用方法\n### ASR（语音识别）\n示例：[examples\u002Fdemo_asr.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fblob\u002Fmaster\u002Fexamples\u002Fdemo_asr.py)\n```python\nimport os\nimport sys\n\nsys.path.append('..')\nfrom parrots import SpeechRecognition\n\npwd_path = os.path.abspath(os.path.dirname(__file__))\n\nif __name__ == '__main__':\n    m = SpeechRecognition()\n    r = m.recognize_speech_from_file(os.path.join(pwd_path, 'tushuguan.wav'))\n    print('[提示] 语音识别结果：', r)\n\n```\n\n输出：\n```\n{'text': '北京图书馆'}\n```\n\n### TTS（语音合成）\n\n#### GPT-SoVITS基础用法\n示例：[examples\u002Fdemo_tts.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fblob\u002Fmaster\u002Fexamples\u002Fdemo_tts.py)\n```python\nfrom parrots import TextToSpeech\n\n# 初始化TTS模型（无需手动配置路径）\nm = TextToSpeech(\n    speaker_model_path=\"shibing624\u002Fparrots-gpt-sovits-speaker-maimai\",\n    speaker_name=\"MaiMai\",\n    device=\"cpu\",  # 或 \"cuda\" 使用GPU\n    half=False     # 设置为True使用半精度加速\n)\n\n# 生成语音\nm.predict(\n    text=\"你好，欢迎来到北京。这是一个合成录音文件的演示。Welcome to Beijing!\",\n    text_language=\"auto\",  # 自动检测语言，也可指定 \"zh\", \"en\", \"ja\"\n    output_path=\"output_audio.wav\"\n)\n```\n\n输出：\n```\nSave audio to output_audio.wav\n```\n\n#### 流式TTS（低延迟）\n\n支持流式语音合成，适用于实时对话场景：\n\n```python\nfrom parrots import TextToSpeech\nimport soundfile as sf\nimport numpy as np\n\nm = TextToSpeech(\n    speaker_model_path=\"shibing624\u002Fparrots-gpt-sovits-speaker-maimai\",\n    speaker_name=\"MaiMai\",\n)\n\n# 流式生成语音\naudio_chunks = []\nfor audio_chunk in m.predict_stream(\n    text=\"这是一段较长的文本，将会被流式合成为语音。\",\n    text_language=\"zh\",\n    stream_chunk_size=20  # 控制延迟，越小延迟越低\n):\n    audio_chunks.append(audio_chunk)\n    \u002F\u002F 这里可以实时播放audio_chunk\n\n\u002F\u002F 保存完整音频\nfull_audio = np.concatenate(audio_chunks)\nsf.write(\"streaming_output.wav\", full_audio, m.sampling_rate)\n```\n\n#### 日志管理\n\n控制日志输出级别：\n\n```python\nfrom parrots import TextToSpeech\nfrom parrots.log import set_log_level, logger\n\n\u002F\u002F 设置日志级别\nset_log_level(\"INFO\")  \u002F\u002F 可选：DEBUG, INFO, WARNING, ERROR\n\nm = TextToSpeech(\n    speaker_model_path=\"shibing624\u002Fparrots-gpt-sovits-speaker-maimai\",\n    speaker_name=\"MaiMai\",\n)\n\n# 使用 logger\nlogger.info(\"开始语音合成...\")\nm.predict(\n    text=\"你好，世界！\",\n    text_language=\"zh\",\n    output_path=\"output.wav\"\n)\n```\n\n#### IndexTTS2 高级用法\n\nIndexTTS2 是一个突破性的情感表达和时长控制的自回归零样本语音合成模型。\n\nexample: [examples\u002Fdemo_indextts.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fblob\u002Fmaster\u002Fexamples\u002Fdemo_indextts.py)\n\n**1. 基础语音克隆（使用单个参考音频）**\n\n```python\nfrom parrots.indextts import IndexTTS2\n\ntts = IndexTTS2()\ntext = \"你好，欢迎来到北京。这是一个合成录音文件的演示。\"\ntts.infer(text=text, output_path=\"gen.wav\", verbose=True)\n```\n\n**2. 情感语音合成（使用情感参考音频）**\n\n使用单独的情感参考音频来控制语音合成的情感表达：\n\n```python\nfrom parrots.indextts import IndexTTS2\n\ntts = IndexTTS2()\ntext = \"酒楼丧尽天良，开始借机竞拍房间，哎，一群蠢货。\"\ntts.infer(\n   speak_reference_audio_path_or_name='examples\u002Fvoice_07.wav',  # 说话人音色参考\n   text=text,\n   output_path=\"gen.wav\",\n   emo_reference_audio_path=\"examples\u002Femo_sad.wav\",  # 情感参考音频\n   verbose=True\n)\n```\n\n**3. 调整情感强度**\n\n通过 `emo_alpha` 参数（范围 0.0-1.0）调整情感影响程度：\n\n```python\nfrom parrots.indextts import IndexTTS2\n\ntts = IndexTTS2()\ntext = \"酒楼丧尽天良，开始借机竞拍房间，哎，一群蠢货。\"\ntts.infer(\n   speak_reference_audio_path_or_name='examples\u002Fvoice_07.wav',\n   text=text,\n   output_path=\"gen.wav\",\n   emo_reference_audio_path=\"examples\u002Femo_sad.wav\",\n   emo_alpha=0.6,  # 情感强度 60%\n   verbose=True\n)\n```\n\n**4. 使用情感向量控制**\n\n直接提供 8 维情感向量来精确控制情感，顺序为：\n`[开心, 生气, 悲伤, 害怕, 厌恶, 忧郁, 惊讶, 平静]`\n\n```python\nfrom parrots.indextts import IndexTTS2\n\ntts = IndexTTS2()\ntext = \"哇塞！这个爆率也太高了！欧皇附体了！\"\ntts.infer(\n   speak_reference_audio_path_or_name='examples\u002Fvoice_10.wav',\n   text=text,\n   output_path=\"gen.wav\",\n   emo_vector=[0, 0, 0, 0, 0, 0, 0.45, 0],  # 惊讶情感\n   use_random=False,\n   verbose=True\n)\n```\n\n**5. 基于文本的情感控制**\n\n启用 `use_emo_text` 可以根据文本内容自动推断情感：\n\n```python\nfrom parrots.indextts import IndexTTS2\n\ntts = IndexTTS2()\ntext = \"快躲起来！是他要来了！他要来抓我们了！\"\ntts.infer(\n   speak_reference_audio_path_or_name='examples\u002Fvoice_12.wav',\n   text=text,\n   output_path=\"gen.wav\",\n   emo_alpha=0.6,\n   use_emo_text=True,  # 启用文本情感分析\n   use_random=False,\n   verbose=True\n)\n```\n\n**6. 独立的情感文本描述**\n\n通过 `emo_text` 参数单独指定情感描述文本：\n\n```python\nfrom parrots.indextts import IndexTTS2\n\ntts = IndexTTS2()\ntext = \"快躲起来！是他要来了！他要来抓我们了！\"\nemo_text = \"你吓死我了！你是鬼吗？\"  # 独立的情感描述\ntts.infer(\n   speak_reference_audio_path_or_name='examples\u002Fvoice_12.wav',\n   text=text,\n   output_path=\"gen.wav\",\n   emo_alpha=0.6,\n   use_emo_text=True,\n   emo_text=emo_text,\n   use_random=False,\n   verbose=True\n)\n```\n\n**拼音控制说明：**\n\nIndexTTS2 支持中文字符和拼音的混合建模。当需要精确的发音控制时，请提供带有特定拼音标注的文本。\n注意：拼音控制不支持所有可能的声母-韵母组合，仅支持有效的中文拼音。\n\n示例：\n```python\ntext = \"之前你做DE5很好，所以这一次也DEI3做DE2很好才XING2，如果这次目标完成得不错的话，我们就直接打DI1去银行取钱。\"\n```\n\n### 命令行模式（CLI）\n\n支持通过命令行方式执行ARS和TTS任务，代码：[cli.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fblob\u002Fmaster\u002Fparrots\u002Fcli.py)\n\n```\n> parrots -h                                    \n\nNAME\n    parrots\n\nSYNOPSIS\n    parrots COMMAND\n\nCOMMANDS\n    COMMAND is one of the following:\n\n     asr\n       Entry point of asr, recognize speech from file\n\n     tts\n       Entry point of tts, generate speech audio from text\n\n```\n\nrun：\n\n```shell\npip install parrots -U\n# asr example\nparrots asr -h\nparrots asr examples\u002Ftushuguan.wav\n\n# tts example\nparrots tts -h\nparrots tts \"你好，欢迎来北京。welcome to the city.\" output_audio.wav\n```\n\n- `asr`、`tts`是二级命令，asr是语音识别，tts是语音合成，默认使用的模型是中文模型\n- 各二级命令使用方法见`parrots asr -h`\n- 上面示例中`examples\u002Ftushuguan.wav`是`asr`方法的`audio_file_path`参数，输入的音频文件（required）\n\n## Release Models\n\n### ASR\n- [BELLE-2\u002FBelle-distilwhisper-large-v2-zh](https:\u002F\u002Fhuggingface.co\u002FBELLE-2\u002FBelle-distilwhisper-large-v2-zh)\n\n### IndexTTS2\n- [IndexTeam\u002FIndexTTS-2](https:\u002F\u002Fhuggingface.co\u002FIndexTeam\u002FIndexTTS-2) - 最新的情感表达和时长控制模型\n- [IndexTeam\u002FIndexTTS-1.5](https:\u002F\u002Fhuggingface.co\u002FIndexTeam\u002FIndexTTS-1.5) - 改进的稳定性和英语性能\n- [IndexTeam\u002FIndex-TTS](https:\u002F\u002Fhuggingface.co\u002FIndexTeam\u002FIndex-TTS) - 初始版本\n\n相关论文：\n- [IndexTTS2 Paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2506.21619) - 情感表达和时长控制的突破\n- [IndexTTS Paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.05512) - 工业级可控零样本 TTS\n\n### GPT-SoVITS TTS\n\n- [shibing624\u002Fparrots-gpt-sovits-speaker](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fparrots-gpt-sovits-speaker)\n\n| speaker name | 说话人名 | character | 角色特点 | language | 语言 |\n|--|--|--|--|--|--|\n| KuileBlanc | 葵·勒布朗 | lady | 标准美式女声 | en | 英 |\n| LongShouRen | 龙守仁 | gentleman | 标准美式男声 | en | 英 |\n| MaiMai | 卖卖| singing female anchor | 唱歌女主播声 | zh | 中 |\n| XingTong | 星瞳 | singing ai girl | 活泼女声 | zh | 中 |\n| XuanShen | 炫神 | game male anchor | 游戏男主播声 | zh | 中 |\n| KusanagiNene | 草薙寧々 | loli | 萝莉女学生声 | ja | 日 |\n\n- [shibing624\u002Fparrots-gpt-sovits-speaker-maimai](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fparrots-gpt-sovits-speaker-maimai)\n\n| speaker name | 说话人名 | character | 角色特点 | language | 语言 |\n|--|--|--|--|--|--|\n| MaiMai | 卖卖| singing female anchor | 唱歌女主播声 | zh | 中 |\n\n## 更新日志\n\n### v0.3.0 (2025-11)\n- 🔥 集成 IndexTTS2 模型，支持情感表达和时长控制的零样本语音合成\n- ✨ 支持多种情感控制方式：音频参考、情感向量、文本描述\n- ✨ 实现情感与说话人身份解耦，独立控制音色和情感\n- ✨ 支持拼音混合建模，实现精确发音控制\n- 🐛 修复 transformers 4.50+ 兼容性问题\n- 🐛 修复字典参数访问错误\n- 📝 新增 IndexTTS2 使用示例和文档\n\n### v0.2.0 (2025-10)\n- ✨ 新增流式 TTS 功能，支持低延迟实时语音合成\n- ✨ 新增统一的日志管理系统（基于 loguru）\n- 🐛 修复 PyTorch 2.0+ 的 `weight_norm` 弃用警告\n- 🐛 修复 `torch.stft` 的 `return_complex=False` 弃用警告\n- 🐛 修复 librosa 的 `resample` 和 `time_stretch` 警告\n- 🔧 优化模型加载机制，无需手动添加 `sys.path`\n- 📝 完善文档和示例代码\n\n### v0.1.0 (2024-12)\n- 🎉 初始版本发布\n- ✨ 支持 ASR（语音识别）\n- ✨ 支持 TTS（语音合成）\n- ✨ 支持中、英、日多语言\n\n## Contact\n\n- Issue(建议)：[![GitHub issues](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Fshibing624\u002Fparrots.svg)](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fissues)\n- 邮件我：xuming: xuming624@qq.com\n- 微信我：加我*微信号：xuming624*, 进Python-NLP交流群，备注：*姓名-公司名-NLP*\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_parrots_readme_3dce032d5680.jpeg\" width=\"200\" \u002F>\n\n\n## Citation\n\n如果你在研究中使用了parrots，请按如下格式引用：\n\n```latex\n@misc{parrots,\n  title={parrots: ASR and TTS Tool},\n  author={Ming Xu},\n  year={2024},\n  howpublished={\\url{https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots}},\n}\n```\n\n## License\n\n\n授权协议为 [The Apache License 2.0](\u002FLICENSE)，可免费用做商业用途。请在产品说明中附加parrots的链接和授权协议。\n\n\n## Contribute\n项目代码还很粗糙，如果大家对代码有所改进，欢迎提交回本项目，在提交之前，注意以下两点：\n\n - 在`tests`添加相应的单元测试\n - 使用`python -m pytest`来运行所有单元测试，确保所有单测都是通过的\n\n之后即可提交PR。\n\n\n## Reference\n#### ASR(Speech Recognition)\n- [EAT: Enhanced ASR-TTS for Self-supervised Speech Recognition](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.07474)\n- [PaddlePaddle\u002FPaddleSpeech](https:\u002F\u002Fgithub.com\u002FPaddlePaddle\u002FPaddleSpeech)\n- [NVIDIA\u002FNeMo](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNeMo)\n#### TTS(Speech Synthesis)\n- [IndexTeam\u002FIndexTTS](https:\u002F\u002Fgithub.com\u002Findex-tts\u002Findex-tts) - IndexTTS2 情感表达和时长控制\n- [coqui-ai\u002FTTS](https:\u002F\u002Fgithub.com\u002Fcoqui-ai\u002FTTS)\n- [keonlee9420\u002FExpressive-FastSpeech2](https:\u002F\u002Fgithub.com\u002Fkeonlee9420\u002FExpressive-FastSpeech2)\n- [TensorSpeech\u002FTensorflowTTS](https:\u002F\u002Fgithub.com\u002FTensorSpeech\u002FTensorflowTTS)\n- [RVC-Boss\u002FGPT-SoVITS](https:\u002F\u002Fgithub.com\u002FRVC-Boss\u002FGPT-SoVITS)","# Parrots 快速上手指南\n\nParrots 是一个开箱即用的语音识别（ASR）和语音合成（TTS）工具包，支持中文、英文、日文等多种语言。基于 `distilwhisper` 实现高精度语音识别，基于 `GPT-SoVITS` 和 `IndexTTS2` 实现情感丰富、可控的语音合成。\n\n## 环境准备\n\n- **操作系统**：Linux \u002F macOS \u002F Windows\n- **Python 版本**：3.7 及以上\n- **依赖库**：PyTorch (CPU 或 CUDA 版本)\n\n> 💡 建议先安装 PyTorch，再安装 parrots，以确保环境兼容。\n\n## 安装步骤\n\n### 方式一：通过 pip 安装（推荐）\n\n```shell\npip install torch  # 或根据官网指引安装特定 CUDA 版本\npip install parrots\n```\n\n### 方式二：源码安装\n\n```shell\npip install torch\ngit clone https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots.git\ncd parrots\npython setup.py install\n```\n\n> 🇨🇳 国内用户可使用清华\u002F阿里镜像加速安装：\n> ```shell\n> pip install torch -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> pip install parrots -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n## 基本使用\n\n### 1. 语音识别（ASR）\n\n将音频文件转换为文本：\n\n```python\nfrom parrots import SpeechRecognition\nimport os\n\nm = SpeechRecognition()\nr = m.recognize_speech_from_file(\"tushuguan.wav\")\nprint(\"识别结果：\", r)\n```\n\n输出示例：\n```\n识别结果： {'text': '北京图书馆'}\n```\n\n### 2. 语音合成（TTS）\n\n#### 基础用法（GPT-SoVITS）\n\n```python\nfrom parrots import TextToSpeech\n\nm = TextToSpeech(\n    speaker_model_path=\"shibing624\u002Fparrots-gpt-sovits-speaker-maimai\",\n    speaker_name=\"MaiMai\",\n    device=\"cpu\"  # 如有 GPU 可改为 \"cuda\"\n)\n\nm.predict(\n    text=\"你好，欢迎来到北京！\",\n    text_language=\"zh\",\n    output_path=\"output.wav\"\n)\n```\n\n#### 高级用法（IndexTTS2 - 情感控制）\n\n```python\nfrom parrots.indextts import IndexTTS2\n\ntts = IndexTTS2()\ntts.infer(\n    text=\"快躲起来！他要来了！\",\n    speak_reference_audio_path_or_name=\"examples\u002Fvoice_12.wav\",\n    emo_reference_audio_path=\"examples\u002Femo_fear.wav\",  # 情感参考音频\n    output_path=\"gen.wav\",\n    verbose=True\n)\n```\n\n### 3. 命令行使用（CLI）\n\n无需写代码，直接通过命令执行：\n\n```shell\n# 语音识别\nparrots asr examples\u002Ftushuguan.wav\n\n# 语音合成\nparrots tts \"你好，欢迎来北京。\" output_audio.wav\n```\n\n查看帮助：\n```shell\nparrots -h\nparrots asr -h\nparrots tts -h\n```\n\n---\n\n✅ 现在你已掌握 Parrots 的核心用法！更多高级功能（如流式 TTS、情感向量控制、拼音标注等）请参考官方文档或示例代码。","某跨国教育科技公司正在开发一款支持中英日多语言的实时口语陪练应用，需要快速集成高精度的语音识别与情感丰富的语音合成功能。\n\n### 没有 parrots 时\n- **开发周期漫长**：团队需分别寻找并调试独立的 ASR 和 TTS 模型，配置复杂的环境依赖，耗时数周才能跑通基础流程。\n- **多语言支持困难**：难以找到单一模型同时高质量支持中、英、日三种语言，往往需要维护多套系统，导致架构臃肿。\n- **情感表达缺失**：传统 TTS 生成的语音机械平淡，无法根据教学内容（如鼓励、严肃）调整语气，严重影响用户沉浸感。\n- **实时交互延迟高**：缺乏原生的流式合成支持，用户说完话后需等待许久才能听到反馈，对话体验极不流畅。\n\n### 使用 parrots 后\n- **开箱即用提速**：通过 `pip install parrots` 一键安装，利用其封装好的 `SpeechRecognition` 和 `TextToSpeech` 类，半天内即可完成核心功能集成。\n- **统一多语言引擎**：基于 distilwhisper 和 GPT-SoVITS，单个工具即可完美处理中、英、日混合输入与输出，大幅简化后端架构。\n- **情感精准控制**：借助 IndexTTS2 模型，开发者可通过文本描述或参考音频，让 AI 老师生成带有“热情鼓励”或“耐心纠正”语气的真实人声。\n- **低延迟流式响应**：启用流式 TTS 功能后，实现边生成边播放，将对话响应延迟降至毫秒级，提供如真人般自然的即时互动体验。\n\nparrots 将原本繁琐的多模态语音工程简化为几行代码调用，让开发团队能专注于教育内容创新而非底层模型调优。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_parrots_e0c6b060.png","shibing624","Ming Xu (徐明)","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fshibing624_1945cf94.jpg","Algorithm Researcher, Deep Learning Developer","@tencent","Beijing, China","shibing624@126.com",null,"https:\u002F\u002Fblog.csdn.net\u002Fmingzai624","https:\u002F\u002Fgithub.com\u002Fshibing624",[87,91,95,99],{"name":88,"color":89,"percentage":90},"Python","#3572A5",98.5,{"name":92,"color":93,"percentage":94},"Cuda","#3A4E3A",0.9,{"name":96,"color":97,"percentage":98},"C","#555555",0.6,{"name":100,"color":101,"percentage":102},"C++","#f34b7d",0.1,526,93,"2026-04-01T23:20:51","Apache-2.0","Linux, macOS, Windows","非必需（支持 CPU 运行），若使用 GPU 加速需 NVIDIA GPU 及 CUDA 环境（具体版本未说明，建议匹配 PyTorch 版本）","未说明（建议 8GB+ 以加载大型语音模型）",{"notes":111,"python":112,"dependencies":113},"工具支持一键调用 ASR 和 TTS 模型，默认使用 CPU 即可运行，但推荐使用 GPU 以获得更低延迟。主要集成 distilwhisper（语音识别）、GPT-SoVITS 和 IndexTTS2（语音合成）模型。首次运行会自动从 HuggingFace 下载模型文件。支持流式 TTS 以实现低延迟实时输出。IndexTTS2 支持情感控制、时长控制和拼音混合建模。","3.7+",[114,115,116,117,118,119],"torch","transformers","soundfile","numpy","loguru","librosa",[21],[122,123,124,125,126,127,128],"speech-recognition","tts","parrot","text-to-speech-python3","pinyin2hanzi","chinese-speech-recognition","chinese-speech-synthesis","2026-03-27T02:49:30.150509","2026-04-08T20:33:47.557175",[132,137,142,147,152,157],{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},25077,"遇到 'AttributeError: str object has no attribute decode' 或 Keras 版本报错如何解决？","该错误通常由 Keras 或 TensorFlow 版本不兼容引起。解决方案是升级相关库的版本。有用户反馈升级 PyTorch、Python 以及 ASR 软件版本后问题解决。建议检查环境并使用较新的稳定版本（如 Python 3.7+ 和 TensorFlow 1.15+），或者根据项目最新要求重新安装依赖。","https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fissues\u002F15",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},25078,"加载模型时出现 'Can't get attribute HParams' 错误怎么办？","这通常是由于本地安装的包版本与模型文件不匹配，或安装过程不完整导致的。最有效的解决方法是彻底卸载当前包并重新安装。执行命令：先运行 `pip uninstall parrots` 卸载所有相关版本，然后运行 `pip install parrots` 重新安装最新版。不要手动修改源码路径，直接使用 pip 安装即可解决。","https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fissues\u002F32",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},25079,"语音合成（TTS）效果不佳或与参考音频不匹配怎么办？","TTS 的效果高度依赖于参考音频（Reference Audio）的选择。如果效果不好，请尝试更换参考语音文件。此外，训练语料的分布应尽量与预测语料一致：口语人声模型不适合朗读科技论文，反之亦然。选择风格、语境相近的参考音频能显著提升合成质量。","https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fissues\u002F28",{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},25080,"Distil-Whisper 模型对中文歌曲或特定场景的识别效果为什么不好？","目前 Distil-Whisper 模型对歌曲识别的效果确实不理想，这是模型本身的局限性。即使是新闻播报等非歌曲类内容，在某些情况下识别率也可能不如预期。该项目正在持续改进中，但对于高难度场景（如背景音乐大、唱歌等），建议暂时使用其他专用模型或等待后续版本优化。","https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fissues\u002F23",{"id":153,"question_zh":154,"answer_zh":155,"source_url":156},25081,"语音识别只能输出前几个字，后面没有内容是什么原因？","这种情况可能是模型加载错误或输入数据处理有问题。有用户发现将模型文件后缀从 `.model` 改为 `.h5`（base 模型改为 `.base.h5`）后可以正常加载且不再报错，但识别结果可能仍不完整。如果在线 Demo 也出现同样问题，说明可能是模型本身的限制或 Bug，建议检查输入音频格式是否符合要求，或关注项目后续的模型更新。","https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fissues\u002F21",{"id":158,"question_zh":159,"answer_zh":160,"source_url":161},25082,"初始化 SpeechRecognition 时遇到 'TypeError: unexpected keyword argument low_cpu_mem_usage' 如何解决？","该错误表明当前安装的 `parrots` 库版本不支持 `low_cpu_mem_usage` 参数，或者参数传递方式有误。请确保安装了最新版本的库（`pip install -U parrots`）。如果问题依旧，尝试在代码中移除该参数，因为旧版本可能尚未集成此功能，或者该参数仅适用于特定的底层模型加载逻辑，不应直接传递给 `SpeechRecognition` 构造函数。","https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fissues\u002F31",[163,168],{"id":164,"version":165,"summary_zh":166,"released_at":167},154490,"1.0.1","## 1.0.1\n\n1. 更新了TTS语音合成模型；\n2. 新增了中文、日语、英文TTS模型。\n\n#### 基础预训练语音模型：\n- https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fparrots-chinese-roberta-wwm-ext-large\n- https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fparrots-chinese-hubert-base\n#### 人声合成模型\n- https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fparrots-gpt-sovits-speaker\n- https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fparrots-gpt-sovits-speaker-maimai\n\n\n**完整更新日志**: https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fcompare\u002F1.0.0...1.0.1","2024-02-12T17:47:43",{"id":169,"version":170,"summary_zh":171,"released_at":172},154491,"0.1.5","**完整更新日志**: https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fparrots\u002Fcompare\u002F0.1.4...0.1.5","2023-06-30T07:15:17"]