该Hugging Face的语音到语音项目是一个模块化项目,使用Transformers库将多个开源模型集成到语音到语音的流程中。
该项目旨在通过利用开源模型来达到GPT4-o的能力,设计上易于修改并支持许多开发者的需求。
该流程由多个模型功能以级联方式组成,包括:
这并不意味着你需要使用上面所有可用的模型,但该流程需要上面四个模型才能正确运行。
上述流程的主要目标是将任何输入的语音转换为另一种形式,例如不同语言或语调的语音。
让我们在你的环境中设置项目以测试该流程。
首先,我们需要将GitHub仓库克隆到你的环境中。以下代码将帮助你完成此操作。
git clone https://github.com/huggingface/speech-to-speech.gitcd speech-to-speech
根据上述设置,你可以使用pip安装所需的软件包。推荐的方法是使用uv,但你也可以使用pip安装。
pip install -r requirements.txt
如果你使用的是Mac,请使用以下代码。
pip install -r requirements_mac.txt
确保你的安装完成后再继续。还建议你使用虚拟环境,以免干扰你的主环境。
有几种推荐的方法来实现该流程。第一种是使用服务器/客户端方法。
为此,你可以运行以下代码在你的服务器上运行该流程。
python s2s_pipeline.py --recv_host 0.0.0.0 --send_host 0.0.0.0
然后,本地运行以下代码以接收麦克风输入和生成的音频输出。
python listen_and_play.py --host
此外,如果你使用的是Mac,可以使用以下参数在本地使用。
python s2s_pipeline.py --local_mac_optimal_settings --host
如果你更喜欢这种方法,你也可以使用Docker。然而,你需要NVIDIA容器工具包来运行它。环境准备好后,你只需运行以下代码。
docker compose up
这就是你可以运行该流程的方法;让我们看看一些你可以在Hugging Face语音到语音流程中探索的参数。
每个STT(语音转文本)、LM(语言模型)和TTS(文本转语音)都有以前缀开头的流程参数
stt,lm或tts。
例如,这是使用CUDA运行该流程的方法。
python s2s_pipeline.py --lm_model_name microsoft/Phi-3-mini-4k-instruct --stt_compile_mode reduce-overhead --tts_compile_mode default --recv_host 0.0.0.0 --send_host 0.0.0.0
在上面的代码中,我们明确决定使用哪个语言模型(LM),同时控制其他模型的行为。
该流程还支持多语言使用案例,包括英语、法语、西班牙语、中文、日语和韩语。
我们可以通过以下代码添加语言参数以实现自动语言检测。
python s2s_pipeline.py --stt_model_name large-v3 --language auto --mlx_lm_model_name mlx-community/Meta-Llama-3.1-8B-Instruct
也可以通过以下代码强制使用特定语言(例如中文)。
python s2s_pipeline.py --stt_model_name large-v3 --language auto --mlx_lm_model_name mlx-community/Meta-Llama-3.1-8B-Instruct
在追求实现闭源模型能力的过程中,Hugging Face尝试模仿一个名为语音到语音的项目。该项目利用Hugging Face Transformers库中的模型来创建一个可以执行语音到语音任务的流程。在本文中,我们探讨了该项目的结构以及如何设置它。