🤗
入门 免费 English

Audio Course

Audio Course

Hugging Face · Hugging Face 团队 · 待确认

[待填写] Audio Course — 来自 Hugging Face 的免费课程

📖 你将学到

  • [待填写]

01 音频入门与工具

嘿,欢迎来到音频 AI 的世界!这门课会带你从零开始,用 Hugging Face 上的免费工具玩转音频。别担心,咱们不讲那些吓人的理论,直接上手操作。

先搞定环境:在国内,Hugging Face 官网有时候打开慢,但别怕,咱们有镜像站。你只需要装好 Python(推荐 3.8 以上版本),然后用 pip 装几个库:
1) 打开终端或命令提示符,输入:`pip install transformers datasets soundfile librosa`。
2) 如果下载慢,加上国内镜像源:`pip install -i https://pypi.tuna.tsinghua.edu.cn/simple transformers datasets soundfile librosa`。
3) 测试一下:打开 Python,输入 `from transformers import pipeline`,没报错就说明成功了。

你的第一个音频模型:咱们用 Hugging Face 的 pipeline 来识别音频里的语音。比如,你有一段中文录音,想转成文字。试试这个代码:
```python
from transformers import pipeline
# 加载语音识别模型,选一个轻量的中文模型
transcriber = pipeline(model="openai/whisper-small", task="automatic-speech-recognition")
# 假设你有一个叫 "test.wav" 的音频文件
result = transcriber("test.wav")
print(result["text"])
```
注意:第一次运行会下载模型,大概几百 MB,耐心等一会儿。如果网络卡,可以用 Hugging Face 镜像:设置环境变量 `export HF_ENDPOINT=https://hf-mirror.com`(Windows 用户用 `set HF_ENDPOINT=https://hf-mirror.com`)。

实用技巧:音频文件最好是 16kHz 采样率、单声道,这样模型识别更准。你可以用 `librosa` 转换格式:
```python
import librosa
audio, sr = librosa.load("your_audio.mp3", sr=16000, mono=True)
librosa.output.write_wav("test.wav", audio, sr)
```

好啦,现在你已经能跑通第一个音频 AI 模型了。下节课咱们玩点更酷的——音频分类!

02 音频分类与情感分析

上节课咱们把语音转成了文字,这节课来试试让 AI 听懂音频里的“情绪”。比如,一段客服录音,是愤怒还是平静?这就是音频情感分析

1) 首先,找一个预训练好的音频分类模型。Hugging Face 上有很多,比如 `ehcalabres/wav2vec2-lg-xlsr-en-speech-emotion-recognition`(英文情感识别)。但咱们是中文用户,可以用一个更通用的模型:`superb/wav2vec2-base-superb-ic`,它支持多种音频分类任务。
2) 装个额外库:`pip install torchaudio`。
3) 写代码加载模型并预测:
```python
from transformers import pipeline
# 初始化音频分类 pipeline
classifier = pipeline("audio-classification", model="superb/wav2vec2-base-superb-ic")
# 用上节课的 test.wav 试试
result = classifier("test.wav")
print(result)
```
你会看到一个列表,比如 `[{'label': 'happy', 'score': 0.85}, {'label': 'sad', 'score': 0.10}]`,分数最高的就是预测结果。

如果模型不支持中文怎么办?别急,你可以先用语音识别把中文转成文字,然后用文本情感分析模型。两步走:
```python
# 第一步:语音转文字
transcriber = pipeline(model="openai/whisper-small", task="automatic-speech-recognition")
text = transcriber("test.wav")["text"]
# 第二步:文本情感分析
sentiment = pipeline("sentiment-analysis", model="lxyuan/distilbert-base-multilingual-cased-sentiments-student")
result = sentiment(text)
print(result)
```
这样就能分析中文音频里的情绪了。

实用技巧:音频分类模型对噪音敏感,录音时尽量安静。如果音频太长(超过 30 秒),可以切分成小段再分析。用 `librosa` 切分:
```python
import librosa
audio, sr = librosa.load("long_audio.wav", sr=16000)
# 每 10 秒一段
segment_length = 10 * sr
for i in range(0, len(audio), segment_length):
segment = audio[i:i+segment_length]
# 保存临时文件并分析
librosa.output.write_wav(f"segment_{i}.wav", segment, sr)
```

掌握了这些,你就能分析客服录音、课堂互动,甚至自己录一段话看看 AI 觉得你心情咋样。下节课咱们搞点生成式的东西——用 AI 合成语音!

03 文本转语音与声音克隆

想不想让 AI 帮你读一段文字?这就是文本转语音(TTS)。Hugging Face 上有不少好用的模型,咱们用微软的 `SpeechT5`,它支持中文,而且效果自然。

1) 安装必要库:`pip install transformers sentencepiece`。
2) 加载模型和处理器:
```python
from transformers import SpeechT5Processor, SpeechT5ForTextToSpeech, SpeechT5HifiGan
import torch
import soundfile as sf
# 初始化
processor = SpeechT5Processor.from_pretrained("microsoft/speecht5_tts")
model = SpeechT5ForTextToSpeech.from_pretrained("microsoft/speecht5_tts")
vocoder = SpeechT5HifiGan.from_pretrained("microsoft/speecht5_hifigan")
# 输入文字
text = "你好,欢迎学习 Hugging Face 音频课程!"
inputs = processor(text=text, return_tensors="pt")
# 生成语音(需要说话人嵌入,这里用一个默认的)
speaker_embeddings = torch.zeros((1, 512)) # 简化版
speech = model.generate_speech(inputs["input_ids"], speaker_embeddings, vocoder=vocoder)
# 保存为 wav 文件
sf.write("output.wav", speech.numpy(), samplerate=16000)
```
运行后,你会听到一个中性声音朗读你的文字。

想克隆自己的声音?那就需要更复杂的模型了,比如 `Coqui TTS` 或 `VITS`。不过 Hugging Face 上有个轻量方案:用 `suno/bark` 模型,它支持声音风格模仿。但注意,Bark 默认是英文,中文支持有限。咱们可以这样用:
```python
from transformers import AutoProcessor, BarkModel
processor = AutoProcessor.from_pretrained("suno/bark")
model = BarkModel.from_pretrained("suno/bark")
# 添加中文提示(效果一般,但能出声)
inputs = processor("你好,这是测试", voice_preset="v2/zh_speaker_0")
audio_array = model.generate(**inputs)
sf.write("bark_output.wav", audio_array[0].numpy(), samplerate=24000)
```

实用技巧:想让语音更自然,可以调整 `speed` 参数(如果模型支持)。另外,国内用户用 `suno/bark` 下载可能慢,建议用镜像站。如果只是简单朗读,`SpeechT5` 就够用了。

现在你可以让 AI 读新闻、做有声书,甚至给自己的视频配音。下节课咱们挑战更高级的——音频生成与音乐制作!

04 音频生成与音乐创作

最后一节课,咱们来点好玩的——让 AI 自己“创作”音乐!Hugging Face 上有个超火的模型叫 `MusicGen`,由 Meta 开发,能根据文字描述生成音乐片段。虽然它主要支持英文提示,但咱们可以试试中文描述,效果也不错。

1) 安装依赖:`pip install transformers accelerate`。注意,MusicGen 比较大,建议用 GPU,但 CPU 也能跑,就是慢点。
2) 加载模型:
```python
from transformers import AutoProcessor, MusicgenForConditionalGeneration
import soundfile as sf
# 用小模型加速,比如 "facebook/musicgen-small"
processor = AutoProcessor.from_pretrained("facebook/musicgen-small")
model = MusicgenForConditionalGeneration.from_pretrained("facebook/musicgen-small")
# 输入文字描述
prompt = "轻快的钢琴曲,适合早晨"
inputs = processor(text=[prompt], padding=True, return_tensors="pt")
# 生成音频(默认 8 秒,可以调整 max_new_tokens)
audio_values = model.generate(**inputs, max_new_tokens=256)
# 保存
sf.write("music_output.wav", audio_values[0].numpy(), samplerate=32000)
```
运行后,你会得到一个 8 秒左右的钢琴音乐片段。试试改成“摇滚吉他独奏”或“下雨天的爵士乐”,看看效果。

进阶玩法:生成更长音乐。MusicGen 支持延续生成,你可以先听一段,再让 AI 接着写:
```python
# 先生成第一段
audio_values = model.generate(**inputs, max_new_tokens=256)
# 用上一段结尾作为新输入(需要处理)
# 具体代码略复杂,有兴趣可以看官方文档
```

实用技巧:生成的音乐有时会有点“电子味”,你可以用 `audacity` 软件后期加混响或者 EQ。另外,国内下载模型慢,记得设置镜像:`export HF_ENDPOINT=https://hf-mirror.com`。如果内存不够,用 `musicgen-small` 而不是 `musicgen-medium`。

国内替代方案:如果 Hugging Face 实在卡,可以试试阿里的 `ModelScope` 平台,上面有类似的音乐生成模型,比如 `damo/music-gen`,操作类似。

现在你已经学会了音频识别、分类、合成和生成!从零到一,你亲手用 AI 玩转了声音世界。记得把你的作品分享给朋友,或者继续探索 Hugging Face 上的其他模型。课程结束,但你的 AI 之旅才刚刚开始!

💡 想要更系统的 AI 学习路线?

去 ganhuo.ai 看完整路线图 →
🐑 小羊助手