🚀 Typhoon-Audio 预览版
Typhoon-Audio 预览版是一款支持泰语和英语的多模态语音语言模型。它允许用户输入文本或语音,并输出文本内容。该模型基于 Llama 3 架构,结合了 Whisper 和 BEATs 的音频编码器,能够在多种语音任务中提供出色的性能。
🚀 快速开始
Typhoon-Audio 预览版是我们在多模态领域的首次尝试,它支持文本和音频输入,并以文本形式输出。此版本(2024 年 8 月)为研究预览版,基础语言模型为 llama-3-typhoon-v1.5-8b-instruct。更多详细信息请参考我们的技术报告。
✨ 主要特性
- 多模态支持:支持文本和音频输入,以文本形式输出。
- 语言能力:支持泰语和英语。
- 研究预览版:作为多模态研究的初步成果,提供实验性支持。
📦 安装指南
使用该模型需要 transformers
4.38.0 或更高版本。你可以使用以下命令进行安装:
pip install transformers>=4.38.0
💻 使用示例
基础用法
from transformers import AutoModel
import soundfile as sf
import librosa
model = AutoModel.from_pretrained(
"scb10x/llama-3-typhoon-v1.5-8b-audio-preview",
torch_dtype=torch.float16,
trust_remote_code=True
)
model.to("cuda")
model.eval()
audio, sr = sf.read("path_to_your_audio.wav")
if len(audio.shape) == 2:
audio = audio[:, 0]
if len(audio) > 30 * sr:
audio = audio[: 30 * sr]
if sr != 16000:
audio = librosa.resample(audio, orig_sr=sr, target_sr=16000, res_type="fft")
prompt_pattern="<|begin_of_text|><|start_header_id|>user<|end_header_id|>\n\n<Speech><SpeechHere></Speech> {}<|eot_id|><|start_header_id|>assistant<|end_header_id|>\n\n"
response = model.generate(
audio=audio,
prompt="transcribe this audio",
prompt_pattern=prompt_pattern,
do_sample=False,
max_new_tokens=512,
repetition_penalty=1.1,
num_beams=1,
)
print(response)
生成参数说明
audio
-- 音频输入,例如使用 soundfile.read
或 librosa.resample
读取 wav 文件,如上述示例。
prompt
(str
) -- 输入到模型的文本。
prompt_pattern
(str
) -- 包含特殊标记的聊天模板,必须与训练时的设置相同。
max_new_tokens
(int
, 可选, 默认值为 1024)
num_beams
(int
, 可选, 默认值为 4)
do_sample
(bool
, 可选, 默认值为 True)
top_p
(float
, 可选, 默认值为 0.9)
repetition_penalty
(float
, 可选, 默认值为 1.0)
length_penalty
(float
, 可选, 默认值为 1.0)
temperature
(float
, 可选, 默认值为 1.0)
此外,还有 model.generate_stream()
用于流式生成。请参考 modeling_typhoonaudio.py
了解该函数的使用方法。
📚 详细文档
模型描述
属性 |
详情 |
模型类型 |
大语言模型基于 Typhoon-1.5-8b-instruct,音频编码器基于 Whisper 的编码器和 BEATs。 |
依赖版本 |
transformers 4.38.0 或更高版本。 |
主要语言 |
泰语和英语。 |
演示地址 |
https://audio.opentyphoon.ai/ |
许可证 |
Llama 3 社区许可证 |
评估结果
更多信息请参考我们的技术报告。
自动语音识别和机器翻译评估
模型 |
ASR-en (WER↓) |
ASR-th (WER↓) |
En2Th (BLEU↑) |
X2Th (BLEU↑) |
Th2En (BLEU↑) |
SALMONN-13B |
5.79 |
98.07 |
0.07 |
0.10 |
14.97 |
DiVA-8B |
30.28 |
65.21 |
9.82 |
5.31 |
7.97 |
Gemini-1.5-pro-001 |
5.98 |
13.56 |
20.69 |
13.52 |
22.54 |
Typhoon-Audio-Preview |
8.72 |
14.17 |
17.52 |
10.67 |
24.14 |
泰语特定任务评估
模型 |
Gender-th (Acc) |
SpokenQA-th (F1) |
SpeechInstruct-th |
SALMONN-13B |
93.26 |
2.95 |
1.18 |
DiVA-8B |
50.12 |
15.13 |
2.68 |
Gemini-1.5-pro-001 |
81.32 |
62.10 |
3.93 |
Typhoon-Audio-Preview |
93.74 |
64.60 |
6.11 |
🔧 技术细节
本模型的技术细节可参考我们的技术报告。
⚠️ 注意事项
本模型为实验性模型,可能无法始终准确遵循人类指令,容易产生幻觉内容。此外,模型缺乏审核机制,可能会产生有害或不适当的回复。开发者应根据具体应用场景仔细评估潜在风险。
🔗 关注与支持
🙏 致谢
感谢 SALMONN 团队开源他们的代码和数据,感谢玛希隆大学的生物医学与数据实验室发布微调后的 Whisper 模型,使我们能够采用其编码器。同时,感谢众多开源项目分享的有用知识、数据、代码和模型权重。
👥 台风团队
Potsawee Manakul, Sittipong Sripaisarnmongkol, Natapong Nitarach, Warit Sirichotedumrong, Adisai Na-Thalang, Phatrasek Jirabovonvisut, Parinthapat Pengpun, Krisanapong Jirayoot, Pathomporn Chokchainant, Kasima Tharnpipitchai, Kunat Pipatanakul