EmotiVoice(易魔声)
扫码查看

可生成带有多样情感风格的语音合成工具

EmotiVoice(易魔声)

综合介绍

EmotiVoice 是由网易有道开发的一款强大的开源文本转语音(TTS)引擎。 该项目的核心特色是能够合成带有丰富情感的语音,例如快乐、兴奋、悲伤或愤怒等。 EmotiVoice 支持中英双语,并提供了超过2000种不同的声音选择。 除了情感合成,它还支持声音克隆功能,用户可以根据自己的数据来克隆特定的音色。 为了方便使用,EmotiVoice 提供了简洁的网页界面和用于批量生成结果的脚本接口。 同时,项目也支持通过 Docker 镜像进行快速部署,或在本地进行完整安装。 对于开发者而言,它还提供了与 OpenAI 兼容的TTS API,使得集成和服务调用更加便捷。

功能列表

  • 多情感语音合成: 可以根据文本内容,生成带有快乐、悲伤、愤怒、兴奋等多种情绪的语音。
  • 支持双语: 同时支持中文和英文的文本转语音。
  • 海量音色选择: 提供超过2000种不同的声音供用户选择。
  • 声音克隆: 允许用户使用个人数据进行训练,克隆出特定的声音。
  • 友好的用户界面: 提供了一个简洁易用的网页操作界面(WebUI)。
  • 批量处理: 支持使用脚本接口进行批量文本转语音的处理。
  • 兼容OpenAI的API: 提供了与OpenAI TTS服务兼容的API接口,方便开发者集成。
  • 跨平台部署: 支持通过Docker快速部署,同时也提供了详细的本地安装指南,并已有Mac应用程序。
  • 速度与音调调整: 用户可以通过参数调整生成语音的语速和音高。
  • 开源免费: EmotiVoice是一个开源项目,可以免费使用。

使用帮助

EmotiVoice 提供了多种使用方式,包括使用 Docker 镜像、在本地进行完整安装和配置,以及直接使用 API。对于大部分用户来说,使用 Docker 是最简单快捷的方式。

方式一:使用 Docker 快速部署(推荐)

使用 Docker 的前提是你的电脑需要安装有 NVIDIA 显卡,并已配置好 NVIDIA Container Toolkit。

  1. 拉取 Docker 镜像:在你的终端或命令行工具中,输入以下命令来拉取 EmotiVoice 的 Docker 镜像。这个镜像已经打包好了所有需要的环境和依赖。
    docker run -it --rm --gpus=all -p 8501:8501 -p 8000:8000 netease-youdao/emotivoice:latest
    
  2. 访问Web界面:当 Docker 容器成功运行后,打开你的网络浏览器,访问 http://localhost:8501。 你会看到一个简洁的操作界面。在这个界面上,你可以:
    • 在文本框中输入你想要转换的文字。
    • 从下拉列表中选择一个喜欢的声音(音色)。
    • 在情感提示(Prompt)中输入描述情感的词语,例如 "happy" 或 "sad"。
    • 点击生成按钮,稍等片刻即可听到并下载生成的语音文件。
  3. 访问API服务:Docker 镜像同时也会在 8000 端口启动一个兼容 OpenAI 的 TTS API 服务。你可以通过访问 http://localhost:8000/ 来查看 API 文档和进行调用。

方式二:在本地进行完整安装

如果你想在本地进行更深入的开发或修改,可以选择完整安装。这个过程相对复杂,需要手动安装依赖和下载模型。

  1. 克隆代码仓库:首先,你需要使用 Git 将 EmotiVoice 的代码克隆到本地。
    git clone https://github.com/netease-youdao/EmotiVoice.git
    
  2. 安装依赖:进入项目目录,并使用 pip 安装所有必需的 Python 库。建议在一个虚拟环境中进行此操作以避免与系统环境冲突。
    cd EmotiVoice
    pip install -r requirements.txt
    
  3. 下载预训练模型:EmotiVoice 需要一些预训练的模型文件才能运行。你需要从官方提供的链接(通常在 GitHub 页面的说明中可以找到)下载这些模型文件。 这些文件通常体积较大,请确保你的网络连接稳定。
  4. 配置模型路径:下载完成后,你需要根据 GitHub 页面上的指示,将模型文件放置到指定的目录结构下。 这通常涉及到创建 outputs/prompt_tts_modified/ckpt 和 outputs/style_encoder/ckpt 等文件夹,并将下载好的模型文件(如 g_0.pthdo_0.pth 等)放入其中。
  5. 启动Web服务:一切准备就绪后,你可以使用 Streamlit 来启动本地的 Web 应用。
    streamlit run app.py
    

    启动后,它会自动在浏览器中打开一个页面,操作方式与 Docker 版本类似。

特色功能操作:情感合成与声音克隆

  • 情感合成:情感合成是 EmotiVoice 的核心功能。在 Web 界面中,有一个专门的输入框用于“情感提示”(Emotion Prompt)。你可以在这里输入描述情感的英文单词,来控制生成语音的情绪。例如:
    • 输入 A happy voice 或 Speaking with excitement,可以让声音听起来更加愉悦和兴奋。
    • 输入 A sad tone 或 Sounding sorrowful,则可以生成带有悲伤情绪的语音。你可以尝试不同的情感描述词,探索模型能够产生的丰富情感效果。
  • 声音克oning(高级用法):声音克隆允许你训练模型来模仿特定的声音。这个过程需要你准备目标声音的音频数据集,并按照官方文档提供的食谱(Recipe)进行操作。 目前官方提供了基于 DataBaker 和 LJSpeech 数据集的训练指南。 这通常需要一定的机器学习背景知识,你需要:
    1. 准备好你的音频数据集(WAV格式的音频片段和对应的文本)。
    2. 按照官方文档修改配置文件,指定你的数据路径和训练参数。
    3. 运行提供的训练脚本。训练完成后,你就可以在生成语音时选择你自己克隆的声音了。

应用场景

  1. 内容创作对于视频制作者、播客主播或有声书叙述者来说,EmotiVoice可以为他们的作品增添更丰富的情感色彩。例如,在故事叙述中,可以根据情节的变化,让旁白的声音在欢快、紧张、悲伤等不同情绪间切换,从而增强故事的感染力。
  2. 个性化虚拟助手开发者可以利用EmotiVoice为智能虚拟助手或聊天机器人赋予更加人性化的声音。用户可以根据自己的喜好,选择一个听起来更友善、更沉稳或者更活泼的声音,甚至可以让虚拟助手在与用户互动时,根据对话内容表现出不同的“情绪”,提升交互的亲切感。
  3. 游戏与动画配音在游戏和动画制作领域,EmotiVoice可以快速为大量角色生成配音。通过调整情感参数,可以为同一个角色创建出在不同情境下的语音表现,例如在胜利时的欢呼声,或是在失败时的沮丧叹息,极大地丰富了角色的表现力。
  4. 教育与培训在语言学习或在线教育课程中,可以使用带有情感的语音来模拟真实的对话场景,帮助学习者更好地理解语言在不同情境下的运用。例如,可以用高兴的语气说出鼓励的话,或用严肃的语气强调重点内容,提高学习的趣味性和效果。

QA

  1. EmotiVoice 支持哪些语言?目前 EmotiVoice 主要支持中文和英文。
  2. 使用 EmotiVoice 需要付费吗?不需要。EmotiVoice 是一个开源项目,您可以免费下载和使用。
  3. 我可以在没有编程知识的情况下使用 EmotiVoice 吗?可以。对于非技术用户,最简单的方式是通过官方提供的 Docker 镜像来运行。启动后,您可以通过一个简单的网页界面进行操作,无需编写任何代码。
  4. 情感合成是如何实现的?您可以在网页界面的“情感提示”输入框中,通过输入简单的英文单词或短语(如 "happy", "excited", "sad")来指定希望语音带有的情感。
  5. 我可以克隆自己的声音吗?可以。EmotiVoice 提供了声音克隆的功能,但这需要您准备好自己的音频数据集,并遵循官方文档提供的指引进行模型的训练。 这个过程相对复杂,更适合有一定技术背景的用户。
微信微博Email复制链接