Audio-dataset音频数据集汇总

数据集:https://github.com/LAION-AI/audio-dataset/

https://github.com/LAION-AI/audio-dataset/blob/main/data_collection/README.md

数据集集合 (Dataset List)

This dataset list includes all the raw datasets we have found up to now. You may also find their Data Type* as well as their status*.
此数据集列表包括我们迄今为止找到的所有原始数据集。您还可以找到他们的数据类型* 以及他们的状态*。

Most datasets are made public, hence downloadable through the URL in the list. You may find download scripts for some of them in audio-dataset/utils/. For those datasets who do not have any link in the list, they are purchased by LAION hence we can not make it public due to license issue. Do please contact us if you want to process them.
大多数数据集都是公开的,因此可以通过列表中的 URL 下载。您可以在 audio-dataset/utils/ 中找到其中一些的下载脚本。对于那些列表中没有任何链接的数据集,它们是由 LAION 购买的,因此由于许可证问题,我们无法公开。如果您想处理它们,请联系我们。

For using the excat processed dataset for training your models, please contact LAION.
如需使用 excat 处理的数据集来训练您的模型,请联系 LAION。

*Data Type Terminology Explanation
*数据类型术语解释

  • Caption: A natural language sentence describing the content of the audio
    字幕:描述音频内容的自然语言句子Example: A wooden door creaks open and closed multiple times
    示例:木门吱吱作响地打开和关闭多次
  • Class label: Labels that are often manually annotated for classification in curated datasets. Each audio clip can be assigned with one or several class label.
    类标签:通常在特选数据集中手动注释以进行分类的标签。可以为每个音频剪辑分配一个或多个类标签。Example: Cat, Dog, Water 示例:猫、狗、水
  • Tag: Tags of the audio that are commenly associated with data in website. A audio clip may be associated to several tags
    标签:与网站中的数据相关的音频标签。一个音频剪辑可能与多个标签相关联Example: phone recording, city, sound effect
    示例:电话录音、城市、音效
  • Relative text: Any text about the audio. May be comments on the audio, or other metadata. Can be very long.
    相对文本:有关音频的任何文本。可能是对音频的评论或其他元数据。可以很长。Exmaple: An impact sound that I would hear over an action scene, with some cinematic drums for more tension and a high pitched preexplosion sound followed by the impact of the explosion. Please rate only if you like it, haha. Thanks!
    示例:我在动作场景中会听到的撞击声,一些电影鼓声更加紧张,爆炸前发出高亢的音调,然后是爆炸的冲击声。请只评价你喜欢的,哈哈。谢谢!
  • Transcription: Transcription of human speech. Only used for Speech Datasets.
    转录:人类语音的转录。仅用于语音数据集。
  • Translation: Transcription in an other language of what the speaker uses.
    翻译:说话人使用的其他语言的转录。

*Status Terminology Explanation
*状态术语解释

  • processed: Dataset already converted to webdataset format.
    processed:数据集已转换为 webdataset 格式。
  • processing: Dataset already downloaded and the processing going on.
    processing:数据集已下载,处理正在进行中。
  • meatadata downloaded: We have already scraped the dataset website, wheras the dataset itself is not yet downloaded.
    meatadata downloaded:我们已经抓取了数据集网站,但数据集本身尚未下载。
  • assigned: Someone have begun the work on the dataset.
    assigned:有人已开始处理数据集。

General Sound Dataset General Sound 数据集

Name 名字Description 描述URLData Type 数据类型Total Duration 总持续时间Total Audio Number 音频总数Status 地位
AudioSet 音频集The AudioSet dataset is a large-scale collection of human-labeled 10-second sound clips drawn from YouTube videos. To collect all our data we worked with human annotators who verified the presence of sounds they heard within YouTube segments. To nominate segments for annotation, we relied on YouTube metadata and content-based search. The sound events in the dataset consist of a subset of the AudioSet ontology. You can learn more about the dataset construction in our ICASSP 2017 paper. Explore the dataset annotations by sound class below. There are 2,084,320 YouTube videos containing 527 labels
AudioSet 数据集是从 YouTube 视频中提取的人工标记的 10 秒声音剪辑的大规模集合。为了收集我们的所有数据,我们与人工注释者合作,他们验证了他们在 YouTube 片段中听到的声音是否存在。为了提名要注释的片段,我们依靠 YouTube 元数据和基于内容的搜索。数据集中的声音事件由 AudioSet 本体的子集组成。您可以在我们的 ICASSP 2017 论文中了解有关数据集构建的更多信息。探索下面的 sound 类数据集注释。有 2,084,320 个 YouTube 视频,包含 527 个标签
Click here 点击这里class labels, video, audio
类标签, 视频, 音频
5420hrs 5420 小时1951460processed 处理
AudioSet Strong AudioSet 强Audio events from AudioSet clips with singal class label annotation
来自 AudioSet 剪辑的音频事件,带有 singal 类标签注释
Click here 点击这里1 class label, video, audio
1 个类标签、视频、音频
625.93hrs 625.93 小时1074359processed (@marianna13#7139)
已处理 (@marianna13#7139)
BBC sound effects BBC 音效33066 sound effects with text description. Type: mostly environmental sound. Each audio has a natural text description. (need to see check the license)
33066 个带有文本描述的音效。类型:主要是环境声音。每个音频都有一个自然的文本描述。(需要查看 检查许可证)
Click here 点击这里1 caption, audio 1 个字幕、音频463.48hrs 463.48 小时15973processed 处理
AudioCaps 音频帽40 000 audio clips of 10 seconds, organized in three splits; a training slipt, a validation slipt, and a testing slipt. Type: environmental sound.
40 000 个 10 秒的音频剪辑,分为三个部分;训练滑道、验证滑道和测试滑道。类型:环境声音。
Click here 点击这里1 caption, audio 1 个字幕、音频144.94hrs 144.94 小时52904processed 处理
Audio Caption Hospital & Car Dataset
音频字幕医院和汽车数据集
3700 audio clips from “Hospital” scene and around 3600 audio clips from the “Car” scene. Every audio clip is 10 seconds long and is annotated with five captions. Type: environmental sound.
来自 “Hospital” 场景的 3700 个音频剪辑和来自 “Car” 场景的大约 3600 个音频剪辑。每个音频剪辑时长 10 秒,并带有 5 个字幕。类型:环境声音。
Click here 点击这里5 captions, audio 5 个字幕、音频10.64 + 20.91hrs 10.64 + 20.91 小时3709 + 7336we don’t need that 我们不需要那个
Clotho dataset Clotho 数据集Clotho consists of 6974 audio samples, and each audio sample has five captions (a total of 34 870 captions). Audio samples are of 15 to 30 s duration and captions are eight to 20 words long. Type: environmental sound.
Clotho 由 6974 个音频样本组成,每个音频样本有 5 个字幕(总共 34870 个字幕)。音频样本的持续时间为 15 到 30 秒,字幕的长度为 8 到 20 个单词。类型:环境声音。
Click here 点击这里5 captions, audio 5 个字幕、音频37.0hrs 37.0 小时5929processed 处理
Audiostock 音频库Royalty Free Music Library. 436864 audio effects(of which 10k available), each with a text description.
免版税音乐库。436864 个音频效果(其中 10k 可用),每个效果都有文字描述。
Click here 点击这里1 caption & tags, audio
1个字幕和标签,音频
46.30hrs 46.30 小时1000010k sound effects processed(@marianna13#7139)
处理 10k 音效(@marianna13#7139)
ESC-502000 environmental audio recordings with 50 classes
2000 个环境音频记录,50 个班级
Click here 点击这里1 class label, audio 1 个类标签,音频2.78hrs 2.78 小时2000processed(@marianna13#7139)
已处理(@marianna13#7139)
VGG-Sound VGG 声音VGG-Sound is an audio-visual correspondent dataset consisting of short clips of audio sounds, extracted from videos uploaded to YouTube
VGG-Sound 是一个视听通讯员数据集,由从上传到 YouTube 的视频中提取的音频短片组成
Click here 点击这里1 class label, video, audio
1 个类标签、视频、音频
560hrs 560 小时200,000 +processed(@marianna13#7139)
已处理(@marianna13#7139)
FUSSThe Free Universal Sound Separation (FUSS) dataset is a database of arbitrary sound mixtures and source-level references, for use in experiments on arbitrary sound separation. FUSS is based on FSD50K corpus.
Free Universal Sound Separation (FUSS) 数据集是一个包含任意混声和源级参考的数据库,用于任意声分离的实验。FUSS 基于 FSD50K 语料库。
Click here 点击这里no class label, audio 无类标签、音频61.11hrs 61.11 小时22000
UrbanSound8K 都市之声8K8732 labeled sound excerpts (<=4s) of urban sounds from 10 classes
来自 10 个类别的 8732 个城市声音的标记声音摘录 (<=4s)
Click here 点击这里1 class label, audio 1 个类标签,音频8.75hrs 8.75 小时8732processed(@Yuchen Hui#8574)
已处理(@Yuchen Hui#8574)
FSD50K51,197 audio clips of 200 classes
200 个班级的 51,197 个音频剪辑
Click here 点击这里class labels, audio 类标签, 音频108.3hrs 108.3 小时51197processed(@Yuchen Hui#8574)
已处理(@Yuchen Hui#8574)
YFCC100MYFCC100M is a that dataset contains a total of 100 million media objects, of which approximately 99.2 million are photos and 0.8 million are videos, all of which carry a Creative Commons license, including 8081 hours of audio.
YFCC100M 是一个 THAT 数据集,总共包含 1 亿个媒体对象,其中大约 9920 万个是照片,80 万个是视频,所有这些对象都带有 Creative Commons 许可证,包括 8081 小时的音频。
Click here 点击这里title, tags, audio, video, Flickr identifier, owner name, camera, geo, media source
标题、标签、音频、视频、Flickr 标识符、所有者名称、相机、地理位置、媒体来源
8081hrs 8081 小时requested access (@marianna13#7139)
请求的访问权限 (@marianna13#7139)
ACAV100M100M video clips with audio, each 10 sec, with automatic AudioSet, Kinetics400 and Imagenet labels. -> Noisy, but LARGE.
100M 带音频的视频剪辑,每段 10 秒,带有自动 AudioSet、Kinetics400 和 Imagenet 标签。-> 吵闹,但很大。
Click here 点击这里class labels/tags, audio 类标签/标签、音频31 years 31 岁100 million 1 亿
Free To Use Sounds 免费使用声音10000+ for 23$ 🙂 10000+ 23 美元 🙂Click here 点击这里1 caption & tags, audio
1个字幕和标签,音频
175.73hrs 175.73 小时6370
MACS – Multi-Annotator Captioned Soundscapes
MACS – 多注释者字幕音景
This is a dataset containing audio captions and corresponding audio tags for a number of 3930 audio files of the TAU Urban Acoustic Scenes 2019 development dataset (airport, public square, and park). The files were annotated using a web-based tool. Each file is annotated by multiple annotators that provided tags and a one-sentence description of the audio content. The data also includes annotator competence estimated using MACE (Multi-Annotator Competence Estimation).
这是一个数据集,其中包含 TAU Urban Acoustic Scenes 2019 开发数据集(机场、公共广场和公园)的 3930 个音频文件的字幕和相应的音频标签。这些文件使用基于 Web 的工具进行注释。每个文件都由多个注释器进行注释,这些注释器提供音频内容的标记和一句话描述。数据还包括使用 MACE(多注释者能力估计)估计的注释者能力。
Click here 点击这里multiple captions & tags, audio
多个字幕和标签,音频
10.92hrs 10.92 小时3930processed(@marianna13#7139 & @krishna#1648 & Yuchen Hui#8574)
已处理(@marianna13#7139 & @krishna#1648 & Yuchen Hui#8574)
Sonniss Game effects Sonniss 游戏效果Sound effects 音效no link 无链接tags & filenames, audio 标签和文件名,音频84.6hrs 84.6 小时5049processed 处理
WeSoundEffectsSound effects 音效no link 无链接tags & filenames, audio 标签和文件名,音频12.00hrs 12.00 小时488processed 处理
Paramount Motion – Odeon Cinematic Sound Effects
Paramount Motion – Odeon 电影音效
Sound effects 音效no link 无链接1 tag, audio 1 天,音频19.49hrs 19.49 小时4420processed 处理
Free Sound 免费声音Audio with text description (noisy)
带有文字描述的音频(嘈杂)
Click here 点击这里pertinent text, audio 相关文本、音频3003.38hrs 3003.38 小时515581processed(@Chr0my#0173 & @Yuchen Hui#8574)
已处理(@Chr0my#0173 & @Yuchen Hui#8574)
Sound Ideas 声音创意Sound effects library 音效库Click here 点击这里1 caption, audio 1 个字幕、音频
Boom Library Boom 库Sound effects library 音效库Click here 点击这里1 caption, audio 1 个字幕、音频assigned(@marianna13#7139)
已分配(@marianna13#7139)
Epidemic Sound (Sound effect part)
疫情之声(音效部分)
Royalty free music and sound effects
免版税的音乐和音效
Click here 点击这里Class labels, audio 类标签、音频220.41hrs 220.41 小时75645metadata downloaded(@Chr0my#0173), processed (@Yuchen Hui#8547)
元数据已下载(@Chr0my#0173),已处理(@Yuchen Hui#8547)
Audio Grounding dataset Audio Grounding 数据集The dataset is an augmented audio captioning dataset. Hard to discribe. Please refer to the URL for details.
该数据集是一个增强的音频字幕数据集。很难描述。详情请参阅网址。
Click here 点击这里1 caption, many tags,audio
1 个字幕、多个标签、音频
12.57hrs 12.57 小时4590
Fine-grained Vocal Imitation Set
细粒度的 Vocal Simitation Set
This dataset includes 763 crowd-sourced vocal imitations of 108 sound events.
该数据集包括 108 个声音事件的 763 个众包人声模拟。
Click here 点击这里1 class label, audio 1 个类标签,音频1.55hrs 1.55 小时1468processed(@marianna13#7139)
已处理(@marianna13#7139)
Vocal Imitation 人声模仿The VocalImitationSet is a collection of crowd-sourced vocal imitations of a large set of diverse sounds collected from Freesound (https://freesound.org/), which were curated based on Google’s AudioSet ontology (https://research.google.com/audioset/).
VocalImitationSet 是从 Freesound (https://freesound.org/) 收集的大量不同声音的众包人声模仿集合,这些声音是根据 Google 的 AudioSet 本体 (https://research.google.com/audioset/) 策划的。
Click here 点击这里1 class label, audio 1 个类标签,音频24.06hrs 24.06 小时9100 files 9100 个文件processed(@marianna13#7139)
已处理(@marianna13#7139)
VocalSketch 声乐素描Dataset contains thousands of vocal imitations of a large set of diverse sounds.The dataset also contains data on hundreds of people’s ability to correctly label these vocal imitations, collected via Amazon’s Mechanical Turk
Dataset 包含大量不同声音的数千个人声模仿。该数据集还包含数百人正确标记这些人声模仿的能力数据,这些数据是通过亚马逊的 Mechanical Turk 收集的
Click here 点击这里1 class label, audio 1 个类标签,音频18.86hrs 18.86 小时16645processed(@marianna13#7139)
已处理(@marianna13#7139)
VimSketch Dataset VimSketch 数据集VimSketch Dataset combines two publicly available datasets(VocalSketch + Vocal Imitation, but Vimsketch delete some parts of the previous two datasets),
VimSketch 数据集结合了两个公开可用的数据集(VocalSketch + Vocal Imitation,但 Vimsketch 删除了前两个数据集的部分),
Click here 点击这里class labels, audio 类标签, 音频Not important 不重要Not important 不重要
OtoMobile Dataset OtoMobile 数据集OtoMobile dataset is a collection of recordings of failing car components, created by the Interactive Audio Lab at Northwestern University. OtoMobile consists of 65 recordings of vehicles with failing components, along with annotations.
OtoMobile 数据集是由西北大学交互式音频实验室创建的故障汽车部件的录音集合。OtoMobile 由 65 条组件出现故障的车辆的录音以及注释组成。
Click here 点击这里
(restricted access) (限制访问)
class labels & tags, audio
类标签和标签,音频
Unknown 未知59
DCASE17Task 4 DCASE17任务 4DCASE Task 4 Large-scale weakly supervised sound event detection for smart cars
DCASE 任务 4 面向智能汽车的大规模弱监督声音事件检测
Click here 点击这里
Knocking Sound Effects With Emotional Intentions
带有情感意图的 Knocking Sound Effects
A dataset of knocking sound effects with emotional intention recorded at a professional foley studio. Five type of emotions to be portrayed in the dataset: anger, fear, happiness, neutral and sadness.
在专业拟音工作室录制的带有情感意图的敲击音效数据集。数据集中要描绘的五种情绪:愤怒、恐惧、快乐、中立和悲伤。
Click here 点击这里1 class label & audio
1个类标签和音频
500processed(@marianna13#7139)
已处理(@marianna13#7139)
WavText5Ks WavText5KWavText5K collection consisting of 4525 audios, 4348 descriptions, 4525 audio titlesand 2058 tags.
WavText5K 集合,包括 4525 个音频、4348 个描述、4525 个音频标题和 2058 个标签。
Click here 点击这里1 label, tags & audio
1个标签、标签和音频
4525 audio files 4525 个音频文件processed(@marianna13#7139)
已处理(@marianna13#7139)

Speech Dataset 语音数据集

Name 名字Description 描述URLData Type 数据类型Status 地位
People’s Speech 人民致辞30k+ hours en-text 30k+ 小时 en-textClick here 点击这里transcription, audio 转录, 音频assigned(@PiEquals4#1909)
已分配(@PiEquals4#1909)
Multilingual Spoken Words
多语言口语
6k+ hours 1sec audio clips with words of 50+ languages
6k+ 小时 1 秒音频剪辑,包含 50+ 种语言的单词
Click here 点击这里transcription, audio 转录, 音频processing(@PiEquals4#1909)
处理中(@PiEquals4#1909)
AISHELL-2Contains 1000 hours of clean read-speech data from iOS is free for academic usage.
包含 1000 小时的 iOS 清晰语音朗读数据,可免费用于学术用途。
Click here 点击这里transcription, audio 转录, 音频
Surfing AI Speech Dataset
冲浪 AI 语音数据集
30k+ – proprietary 30k+ – 专有Click here 点击这里transcription, audio 转录, 音频
LibriSpeech Libri演讲A collection of approximately 1,000 hours of audiobooks that are a part of the LibriVox project.
大约 1,000 小时的有声读物集合,是 LibriVox 项目的一部分。
Click here 点击这里transcription, audio 转录, 音频processed(@marianna13#7139)
已处理(@marianna13#7139)
Libri-light 光书60K hours of unlabelled speech from audiobooks in English and a small labelled dataset (10h, 1h, and 10 min) plus metrics, trainable baseline models, and pretrained models that use these datasets.
来自英语有声读物的 60K 小时未标记语音和一个小型标记数据集(10 小时、1 小时和 10 分钟)以及使用这些数据集的指标、可训练基线模型和预训练模型。
Click here 点击这里transcription, audio 转录, 音频
Europarl-ST Europarl-ST (欧洲公园-ST)A Multilingual Speech Translation Corpus, that contains paired audio-text samples for Speech Translation, constructed using the debates carried out in the European Parliament in the period between 2008 and 2012.
多语言语音翻译语料库,包含用于语音翻译的成对音频文本样本,使用 2008 年至 2012 年期间在欧洲议会进行的辩论构建。
Click here 点击这里translation, audio 翻译, 音频processed(@Antoniooooo#4758)
已处理(@Antoniooooo#4758)
CoVoST 考沃斯特A large-scale multilingual ST corpus based on Common Voice, to foster ST research with the largest ever open dataset. Its latest version covers translations from English into 15 languages—Arabic, Catalan, Welsh, German, Estonian, Persian, Indonesian, Japanese, Latvian, Mongolian, Slovenian, Swedish, Tamil, Turkish, Chinese—and from 21 languages into English, including the 15 target languages as well as Spanish, French, Italian, Dutch, Portuguese, Russian. It has total 2,880 hours of speech and is diversified with 78K speakers.
基于 Common Voice 的大规模多语言 ST 语料库,以有史以来最大的开放数据集促进 ST 研究。其最新版本涵盖从英语翻译成 15 种语言—阿拉伯语、加泰罗尼亚语、威尔士语、德语、爱沙尼亚语、波斯语、印度尼西亚语、日语、拉脱维亚语、蒙古语、斯洛文尼亚语、瑞典语、泰米尔语、土耳其语、中文—以及从 21 种语言翻译成英语,包括 15 种目标语言以及西班牙语、法语、意大利语、荷兰语、葡萄牙语、俄语。它总共有 2,880 小时的语音,并拥有 78K 扬声器。
Click here 点击这里translation & transcription, audio
翻译和转录,音频
assigned(@PiEquals4#1909)
已分配(@PiEquals4#1909)
GigaSpeech Giga语音An evolving, multi-domain English speech recognition corpus with 10,000 hours of high quality labeled audio suitable for supervised training, and 40,000 hours of total audio suitable for semi-supervised and unsupervised training.
一个不断发展的多域英语语音识别语料库,具有 10000 小时的高质量标记音频(适用于监督训练)和 40000 小时的总音频(适用于半监督和无监督训练)。
Click here 点击这里transcription, audio 转录, 音频processing(@PiEquals4#1909)
处理中(@PiEquals4#1909)
LJSpeech Dataset LJSpeech 数据集This is a public domain speech dataset consisting of 13,100 short audio clips of a single speaker reading passages from 7 non-fiction books. A transcription is provided for each clip. Clips vary in length from 1 to 10 seconds and have a total length of approximately 24 hours.
这是一个公共领域的语音数据集,由 13,100 个简短的音频剪辑组成,其中单个说话人朗读了 7 本非小说类书籍的段落。为每个剪辑提供转录。剪辑的长度从 1 秒到 10 秒不等,总长度约为 24 小时。
Click here 点击这里
Or  或
download 下载
transcription, audio 转录, 音频processed(@PiEquals4#1909)
已处理(@PiEquals4#1909)
Spotify English-Language Podcast Dataset
Spotify 英语播客数据集
This dataset consists of 100,000 episodes from different podcast shows on Spotify. The dataset is available for research purposes. We are releasing this dataset more widely to facilitate research on podcasts through the lens of speech and audio technology, natural language processing, information retrieval, and linguistics. The dataset contains about 50,000 hours of audio, and over 600 million transcribed words. The episodes span a variety of lengths, topics, styles, and qualities. Only non-commercial research is permitted on this dataset
该数据集包含来自 Spotify 上不同播客节目的 100,000 集。该数据集可用于研究目的。我们正在更广泛地发布此数据集,以便通过语音和音频技术、自然语言处理、信息检索和语言学的视角来促进对播客的研究。该数据集包含大约 50000 小时的音频和超过 6 亿个转录单词。这些剧集跨越各种长度、主题、风格和质量。此数据集只允许进行非商业研究
Click here 点击这里transcription, audio 转录, 音频requested access(@marianna13#7139)
请求访问(@marianna13#7139)
The Ryerson Audio-Visual Database of Emotional Speech and Song (RAVDESS)
瑞尔森情感语音和歌曲视听数据库 (RAVDESS)
The Ryerson Audio-Visual Database of Emotional Speech and Song (RAVDESS) contains 7356 files (total size: 24.8 GB). The database contains 24 professional actors (12 female, 12 male), vocalizing two lexically-matched statements in a neutral North American accent.
Ryerson Audio-Visual Database of Emotional Speech and Song (RAVDESS) 包含 7356 个文件(总大小:24.8 GB)。该数据库包含 24 名专业演员(12 名女性,12 名男性),以中性的北美口音发音两个词汇匹配的陈述。
Click here 点击这里transcription, audio 转录, 音频processed(@PiEquals4#1909)
已处理(@PiEquals4#1909)
CREMA-DCREMA-D is a data set of 7,442 original clips from 91 actors. These clips were from 48 male and 43 female actors between the ages of 20 and 74 coming from a variety of races and ethnicities (African America, Asian, Caucasian, Hispanic, and Unspecified). Actors spoke from a selection of 12 sentences. The sentences were presented using one of six different emotions (Anger, Disgust, Fear, Happy, Neutral and Sad) and four different emotion levels (Low, Medium, High and Unspecified).
CREMA-D 是一个包含来自 91 位演员的 7,442 个原始剪辑的数据集。这些剪辑来自 48 名男性演员和 43 名女性演员,年龄在 20 至 74 岁之间,来自不同种族和民族(非裔美国人、亚洲人、高加索人、西班牙裔和未指定人)。演员们从精选的 12 句话中发言。这些句子使用六种不同的情绪(愤怒、厌恶、恐惧、快乐、中立和悲伤)中的一种和四种不同的情绪级别(低、中、高和未指定)来呈现。
Click here 点击这里transcription, audio 转录, 音频processed(@PiEquals4#1909)
已处理(@PiEquals4#1909)
EmovV-DBThe emotional Voice Database. This dataset is built for the purpose of emotional speech synthesis. It includes recordings for four speakers- two males and two females. The emotional styles are neutral, sleepiness, anger, disgust and amused.
情感语音数据库。此数据集是为情感语音合成而构建的。它包括四个扬声器的录音 – 两个男性和两个女性。情绪风格是中性、困倦、愤怒、厌恶和逗乐。
Click here 点击这里transcription, class labels, audio
转录、类标签、音频
assigned(@PiEquals4#1909)
已分配(@PiEquals4#1909)
CMU_ArcticThe databases consist of around 1150 utterances carefully selected from out-of-copyright texts from Project Gutenberg. The databses include US English male (bdl) and female (slt) speakers (both experinced voice talent) as well as other accented speakers.
这些数据库包含大约 1150 条话语,这些话语是从 Project Gutenberg 的版权外文本中精心挑选出来的。数据库包括美国英语男性 (bdl) 和女性 (slt) 说话人(均为经验丰富的配音人才)以及其他带口音的说话人。
Click here 点击这里transcription, tags, audio,…TBD
转录、标签、音频,…待定
processed(@marianna13#7139)
已处理(@marianna13#7139)
IEMOCAP database IEMOCAP 数据库The Interactive Emotional Dyadic Motion Capture (IEMOCAP) database is an acted, multimodal and multispeaker database. It contains approximately 12 hours of audiovisual data, including video, speech, motion capture of face, text transcriptions.
交互式情感二元动作捕捉 (IEMOCAP) 数据库是一个行动、多模态和多说话人数据库。它包含大约 12 小时的视听数据,包括视频、语音、面部动作捕捉、文本转录。
Click here 点击这里transcription, video, audio,…TBD
转录、视频、音频,…待定
assigned(@marianna13#7139)
已分配(@marianna13#7139)
YouTube dataset YouTube 数据集youtube video/audio + automatically generated subtitle. For details, please ask @marianna13#7139.
YouTube 视频/音频 + 自动生成的字幕。详情请咨询 @marianna13#7139。
No link (please contact @marianna13#7139)
无链接(请联系 @marianna13#7139)
transcription, audio, video
转录, 音频, 视频
processed(@marianna13#7139)
已处理(@marianna13#7139)
The Hume Vocal Burst Competition Dataset (H-VB)
休谟人声爆发竞赛数据集 (H-VB)
labels, audio 标签, 音频Click here 点击这里labels, audio 标签, 音频assigned(@Yuchen Hui#8574)
已分配(@Yuchen Hui#8574)

Music Dataset 音乐数据集

NameDescription 描述URLText Type 文本类型Status 地位
Free Music Archive 免费音乐档案We introduce the Free Music Archive (FMA), an open and easily accessible dataset suitable for evaluating several tasks in MIR, a field concerned with browsing, searching, and organizing large music collections. The community’s growing interest in feature and end-to-end learning is however restrained by the limited availability of large audio datasets. The FMA aims to overcome this hurdle by providing 917 GiB and 343 days of Creative Commons-licensed audio from 106,574 tracks from 16,341 artists and 14,854 albums, arranged in a hierarchical taxonomy of 161 genres. It provides full-length and high-quality audio, pre-computed features, together with track- and user-level metadata, tags, and free-form text such as biographies. We here describe the dataset and how it was created, propose a train/validation/test split and three subsets, discuss some suitable MIR tasks, and evaluate some baselines for genre recognition. Code, data, and usage examples are available at https://github.com/mdeff/fma.
我们介绍了免费音乐档案 (FMA),这是一个开放且易于访问的数据集,适用于评估 MIR 中的多项任务,MIR 是一个与浏览、搜索和组织大型音乐收藏有关的领域。然而,社区对功能和端到端学习的兴趣日益浓厚,但由于大型音频数据集的可用性有限,这限制了他们。FMA 旨在通过提供来自 16,341 位艺术家和 14,854 张专辑的 106,574 首曲目的 917 GiB 和 343 天的知识共享许可音频来克服这一障碍,这些音频按照 161 种流派的分层分类法排列。它提供全长和高质量的音频、预计算功能,以及轨道和用户级元数据、标签和自由格式的文本,例如传记。我们在这里描述了数据集及其创建方式,提出了一个训练/验证/测试拆分和三个子集,讨论了一些合适的 MIR 任务,并评估了一些流派识别的基线。代码、数据和用法示例可在 https://github.com/mdeff/fma 中找到。
Click here 点击这里tags/class labels, audio 标签/类标签, 音频processed(@marianna13#7139)
已处理(@marianna13#7139)
MusicNetMusicNet is a collection of 330 freely-licensed classical music recordings, together with over 1 million annotated labels indicating the precise time of each note in every recording, the instrument that plays each note, and the note’s position in the metrical structure of the composition. The labels are acquired from musical scores aligned to recordings by dynamic time warping. The labels are verified by trained musicians; we estimate a labeling error rate of 4%. We offer the MusicNet labels to the machine learning and music communities as a resource for training models and a common benchmark for comparing results. URL: https://homes.cs.washington.edu/~thickstn/musicnet.html
MusicNet 是 330 张免费授权的古典音乐录音的集合,以及超过 100 万个带注释的标签,这些标签指示了每个录音中每个音符的精确时间、演奏每个音符的乐器以及音符在乐曲的度量结构中的位置。标签是通过动态时间扭曲从与录音对齐的乐谱中获得的。唱片公司由训练有素的音乐家进行验证;我们估计标记错误率为 4%。我们为机器学习和音乐社区提供 MusicNet 标签,作为训练模型的资源和比较结果的通用基准。网址:https://homes.cs.washington.edu/~thickstn/musicnet.html
Click here 点击这里class labels, audio 类标签, 音频processed(@IYWO#9072) 已处理(@IYWO#9072)
MetaMIDI DatasetWe introduce the MetaMIDI Dataset (MMD), a large scale collection of 436,631 MIDI files and metadata. In addition to the MIDI files, we provide artist, title and genre metadata that was collected during the scraping process when available. MIDIs in (MMD) were matched against a collection of 32,000,000 30-second audio clips retrieved from Spotify, resulting in over 10,796,557 audio-MIDI matches. In addition, we linked 600,142 Spotify tracks with 1,094,901 MusicBrainz recordings to produce a set of 168,032 MIDI files that are matched to MusicBrainz database. These links augment many files in the dataset with the extensive metadata available via the Spotify API and the MusicBrainz database. We anticipate that this collection of data will be of great use to MIR researchers addressing a variety of research topics.
我们介绍 MetaMIDI 数据集 (MMD),这是一个包含 436,631 个 MIDI 文件和元数据的大型集合。除了 MIDI 文件之外,我们还提供在抓取过程中收集的艺术家、标题和流派元数据(如果可用)。(MMD) 中的 MIDI 与从 Spotify 检索的 32,000,000 个 30 秒音频剪辑集合进行匹配,从而产生超过 10,796,557 个音频-MIDI 匹配。此外,我们将 600,142 个 Spotify 曲目与 1,094,901 个 MusicBrainz 录音链接起来,生成了一组与 MusicBrainz 数据库匹配的 168,032 个 MIDI 文件。这些链接通过通过 Spotify API 和 MusicBrainz 数据库提供的大量元数据来扩充数据集中的许多文件。我们预计这些数据收集将对处理各种研究主题的 MIR 研究人员非常有用。
Click here 点击这里tags, audio 标签, 音频
MUSDB18-HQMUSDB18 consists of a total of 150 full-track songs of different styles and includes both the stereo mixtures and the original sources, divided between a training subset and a test subset.
MUSDB18 由总共 150 首不同风格的全轨歌曲组成,包括立体声混音和原始源,分为训练子集和测试子集。
Click here 点击这里1 class label, audio 1 个类标签,音频processed(@marianna13#7139)
已处理(@marianna13#7139)
Cambridge-mt Multitrack Dataset
Cambridge-mt 多轨数据集
Here’s a list of multitrack projects which can be freely downloaded for mixing practice purposes. All these projects are presented as ZIP archives containing uncompressed WAV files (24-bit or 16-bit resolution and 44.1kHz sample rate).
以下是可以免费下载用于混音练习目的的多轨项目列表。所有这些项目都以 ZIP 档案的形式呈现,其中包含未压缩的 WAV 文件(24 位或 16 位分辨率和 44.1kHz 采样率)。
Click here 点击这里1 class label, audio 1 个类标签,音频processed(@marianna13#7139)
已处理(@marianna13#7139)
Slakh 斯拉赫The Synthesized Lakh (Slakh) Dataset contains 2100 automatically mixed tracks and accompanying MIDI files synthesized using a professional-grade sampling engine.
合成的 Lakh (Slakh) 数据集包含 2100 个自动混合的轨道和随附的 MIDI 文件,这些文件使用专业级采样引擎合成。
Click here 点击这里1 class label, audio 1 个类标签,音频processed(krishna#1648) 已处理(Krishna#1648)
TunebotThe Tunebot project is an online Query By Humming system. Users sing a song to Tunebot and it returns a ranked list of song candidates available on Apple’s iTunes website. The database that Tunebot compares to sung queries is crowdsourced from users as well. Users contribute new songs to Tunebot by singing them on the Tunebot website. The more songs people contribute, the better Tunebot works. Tunebot is no longer online but the dataset lives on.
Tunebot 项目是一个在线 Query By Humming 系统。用户向 Tunebot 唱歌,它会返回 Apple iTunes 网站上可用的候选歌曲的排名列表。Tunebot 与唱歌查询进行比较的数据库也是从用户那里众包的。用户通过在 Tunebot 网站上演唱新歌来向 Tunebot 贡献新歌。人们贡献的歌曲越多,Tunebot 的效果就越好。Tunebot 不再在线,但数据集仍然存在。
Click here 点击这里song name(so transcription), audio
歌曲名称(SO 转录)、音频
processed(@marianna13#7139)
已处理(@marianna13#7139)
JunoA music review webset 音乐评论网络集Click here 点击这里perinent text/class lables, audio
Perinent text/类标签, 音频
meatadata downloaded(@dicknascarsixtynine#3885) & processed(@marianna13#7139)
Meatadata 已下载(@dicknascarsixtynine#3885) & 已处理(@marianna13#7139)
Pitch ForkMusic review website 音乐评论网站Click here 点击这里pertinent text (long paragraphs), audio
相关文本(长段落)、音频
GeniusMusic lyrics website Music 歌词网站pertinent text (long paragraphs), audio
相关文本(长段落)、音频
assigned(@marianna13#7139)
已分配(@marianna13#7139)
IDMT-SMT-Audio-EffectsThe IDMT-SMT-Audio-Effects database is a large database for automatic detection of audio effects in recordings of electric guitar and bass and related signal processing.
IDMT-SMT-Audio-Effects 数据库是一个大型数据库,用于自动检测电吉他和贝斯录音中的音频效果以及相关的信号处理。
Click here 点击这里class label, audio 类标签, 音频
MIDI50KMusic generated by MIDIFILES using the synthesizer available at https://pypi.org/project/midi2audio/
MIDIFILES 使用 https://pypi.org/project/midi2audio/ 提供的合成器生成的音乐
Temporary not available, will be added soon
暂时不可用,将很快添加
MIDI files, audio  Processing(@marianna13#7139)  
MIDI130KMusic generated by MIDIFILES using the synthesizer available at https://pypi.org/project/midi2audio/
MIDIFILES 使用 https://pypi.org/project/midi2audio/ 提供的合成器生成的音乐
Temporary not available, will be added soon
暂时不可用,将很快添加
MIDI files, audio MIDI 文件、音频Processing(@marianna13#7139)
加工中(@marianna13#7139)
MillionSongDataset72222 hours of general music as 30 second clips, one million different songs.  Temporarily not available  tags, artist names, song titles, audio  
synth1B1One million hours of audio: one billion 4-second synthesized sounds. The corpus is multi-modal: Each sound includes its corresponding synthesis parameters. Since it is faster to render synth1B1 in-situ than to download it, torchsynth includes a replicable script for generating synth1B1 within the GPU.  Click here 点击这里synthesis parameters, audio  
Epidemic Sound (music part)Royalty free music and sound effects
免版税的音乐和音效
Click here 点击这里class label, tags, audio  assigned(@chr0my#0173)  

LAION开源业界最大音乐数据集LAION-DISCO-12M

数据集地址:https://huggingface.co/datasets/laion/LAION-DISCO-12M

非盈利组织LAION开源了一个新的数据集:LAION-DISCO-12M

这个数据集包含12M个公开可用的YouTube上的音乐样本,是目前最大的公开可用的音乐开放数据集。这些样本与元数据配对,以支持基础模型中通用音频、音乐信息检索和音频数据集分析等研究。同时,LAION团队为12,648,485首歌曲收集了元数据,包括歌曲名称、艺术家名称和专辑名称。

该数据集是DISCO-10M的后续工作,并与之前的工作相比提供了以下改进:

  • 数据收集过程基于艺术家的递归搜索;它是在YouTube音乐上完成的,而不是在Spotify上。这意味着元数据和YouTube URL正确匹配,与DISCO-10M不同,DISCO-10M的作者需要将YouTube URL与Spotify元数据匹配,导致大量错误的匹配。
  • 用于DISCO-10M的种子艺术家数量有限,这里通过使用不同国家和流派播放列表的图表扩展了种子艺术家列表。这个新的艺术家种子列表最终包含了250,516位艺术家

这个数据集可以促进几个关键领域的研究进展:

  • 音频和音乐基础模型:这个数据集的大规模特性允许研究人员训练音频基础模型(例如CLAP及其各种扩展,https://github.com/LAION-AI/CLAP,https://arxiv.org/abs/2211.06687),并研究其在各种下游任务中的泛化和迁移能力,如字幕生成、编辑、生成、分类等。
  • 音乐信息检索(MIR):这包括开发提取丰富音乐属性的方法,例如流派、艺术家识别、节奏、音高和其他音频特征。
  • 基于内容的音乐搜索:该数据集支持构建高级的基于内容的搜索引擎,能够识别与给定音频片段相似的歌曲(类似于Shazam等应用)。
  • 音乐推荐系统:利用这个数据集,研究人员可以分析歌曲和艺术家风格的相似性,并找到推荐音乐的新方法。

LAION-DISCO-12M的开源协议是Apache 2.0这确保了研究人员可以自由地利用这个数据集进行基础或应用研究。但是LAION这里建议遵循他们用于研究发布的指导方针:数据集是为研究目的而发布的,特别是用于在学术环境中对各种开放的多模态基础模型(例如CLAP)进行基础研究。我们强烈建议不要在工业环境中使用这些数据集,更强烈建议不要以原始形式使用数据集来创建最终产品。我们明确警告,LAION数据集是为了机器学习和相关领域的合格研究人员进行科学和/或安全分析所需的检查和使用而设计的。

OuteTTS-0.1-350M:TTS合成模型,利用纯语言建模,无需外部适配器

https://www.outeai.com/blog/outetts-0.1-350m

在日益增长的语音合成需求中,文本转语音(TTS)技术快速进步,但也面临不少挑战。传统TTS模型往往依赖复杂的多模块架构,如深度神经网络、语音合成器、文本分析器等适配器,以生成自然的人类语音。这种复杂度带来了大量资源消耗,对设备的要求极高,使得许多设备无法轻松使用。尤其是个性化的语音生成和应用场景,传统TTS技术往往需要庞大的数据集和较高的硬件配置,对此,Oute AI发布了OuteTTS-0.1-350M,为TTS领域带来了革新。OuteTTS-0.1-350M是一款不依赖外部适配器、纯语言建模的轻量级TTS模型。通过直接整合文本和语音生成流程,这款模型实现了简洁高效的自然语音合成,并具备“零样本语音克隆”能力,仅凭几秒钟的参考音频即可模仿新的声音。OuteTTS的推出,不仅为开发者带来了全新机遇,也大大降低了TTS技术的门槛,为更多个性化、实时语音生成的需求提供了高效方案。

OuteTTS-0.1-350M:无需复杂适配器的TTS模型

在语音合成领域,OuteTTS-0.1-350M开创性地使用纯语言模型进行语音合成,而无需传统的语音生成模块,如语音编码器和其他适配器。这一模型基于LLaMa架构构建,通过直接生成音频标记(tokens)来实现语音合成,大幅简化了TTS流程并降低了资源消耗。不同于庞大复杂的传统模型,OuteTTS的核心在于它的纯语言建模方法,它直接将语音生成视作文本生成的任务,通过对音频数据进行标记化处理,使模型能够理解并生成自然语音。这种架构不仅提高了模型的简洁性,还实现了高效的语音生成。OuteTTS能够在零样本语音克隆的模式下快速适应新音色,仅需几秒钟的参考音频即可模仿新的声音,非常适用于个性化的语音助手、有声读物和内容本地化等应用场景。

技术亮点:OuteTTS-0.1-350M的三大创新

OuteTTS-0.1-350M通过以下三步流程实现了高效的文本转语音:

  • WavTokenizer音频标记化OuteTTS使用WavTokenizer将音频转换为标记序列,每秒生成75个音频标记,这样能够快速将音频转换为模型可处理的序列。
  • CTC强制对齐采用连接时序分类(CTC)技术,确保模型能够将每个文字精准对齐到音频标记,生成自然流畅的语音输出。
  • 结构化提示创建:通过将转录、持续时间、音频标记等信息整合为结构化提示,将语音生成过程简化成一系列清晰的任务。

这些技术整合使得OuteTTS能够以纯语言建模的方式高效地实现语音合成,避免了传统模型的繁琐中间步骤,进一步降低了对计算资源的需求。OuteTTS还兼容llama.cpp库,能够在多种设备上实现语音生成,不必依赖云端服务,适合实时应用场景。

OuteTTS-0.1-350M的实际应用价值

OuteTTS-0.1-350M的独特之处在于其轻量高效的设计使得TTS技术不再需要高昂的硬件资源,具备了高度的实用性与适配性:

  • 低资源需求:这款模型无须庞大的适配器或深度神经网络模块,大大简化了部署过程,使其适用于各种硬件环境,包括移动设备、嵌入式设备等,实现了真正的“上设备”语音生成。
  • 个性化应用:OuteTTS的“零样本语音克隆”能力为个性化应用提供了可能。只需几秒钟的参考音频,用户即可定制专属语音,非常适合个性化语音助手、有声读物配音等场景。
  • 开源许可证:OuteTTS采用了CC-BY开源许可证,支持开发者将模型自由集成到项目中,为语音合成技术的普及和创新应用提供了广阔空间。

通过对传统TTS架构的简化和对个性化的支持,OuteTTS-0.1-350M带来了实用高效的语音生成体验,不仅提升了语音合成的可及性,还为开发者和企业带来了新的灵活选择。

OuteTTS-0.1-350M的性能分析:小模型也有大作为

OuteTTS-0.1-350M尽管只有3.5亿参数,依然在语音生成领域表现出色。它的高效性和轻量化特性使其在语音质量上毫不逊色,甚至与传统大型模型相媲美:

  • 音质自然:初步测试显示,OuteTTS生成的语音具有自然的语调和流畅的音质,极少出现失真或人工痕迹,适合各类语音应用场景。
  • 低计算成本:相比于参数数十亿的大型模型,OuteTTS保持高质量的同时,计算成本显著降低,非常适合资源有限的设备。
  • 快速响应:得益于模型架构的优化,OuteTTS能够在设备端实现快速响应,为实时语音交互提供了理想选择。

OuteTTS展示了小规模模型的潜力,使得语音合成不再依赖于庞大的计算资源,为轻量化的TTS模型树立了新标杆。

OuteTTS-0.1-350M的未来前景

OuteTTS-0.1-350M的发布不仅仅是一次技术创新,它开启了未来TTS应用的无限可能性。随着更多开发者和研究人员的加入,基于OuteTTS的应用场景将更加多样化:

  • 辅助技术:OuteTTS在语音生成上的便捷性和高效性使得其可以广泛应用于视障人士的辅助设备中,提供语音导航、信息提示等功能。
  • 内容创作:对于需要快速生成个性化语音内容的创作者,OuteTTS为他们提供了成本更低的配音解决方案。
  • 人机交互:语音交互是智能设备未来的关键方向,OuteTTS的实时生成能力使其能够在智能家居、车载语音助手等领域大展身手。

结语

OuteTTS-0.1-350M的发布标志着TTS技术的一个重要里程碑。通过采用纯语言建模,OuteTTS不仅降低了语音合成的门槛,还让个性化语音应用更为可行。无论是零样本语音克隆能力、实时生成表现,还是其对多设备兼容性,OuteTTS都为TTS领域带来了全新的发展思路。未来,随着更多技术的突破,基于OuteTTS的TTS应用将会为语音生成带来更加丰富的可能性。OuteTTS-0.1-350M展示了小而强的TTS模型可以达到与大型模型媲美的效果。Oute AI的这一创新,为未来的语音合成技术铺平了道路,也让我们期待更多轻量、智能、高效的语音合成技术的出现。

Transformers 模型词表中添加新 token

在使用预训练模型时,我们有时需要使用一些自定义 token 来增强输入,例如使用 [ENT_START] 和 [ENT_END] 在文本中标记出实体。由于自定义 token 并不在预训练模型原来的词表中,因此直接运用分词器 (Tokenizer) 处理输入就会出现问题。

例如直接使用 BERT 分词器处理下面的句子:

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")

sentence = 'Two [ENT_START] cars [ENT_END] collided in a [ENT_START] tunnel [ENT_END] this morning.'
print(tokenizer(sentence).tokens())
['[CLS]', 'Two', '[', 'E', '##NT', '_', 'ST', '##AR', '##T', ']', 'cars', '[', 'E', '##NT', '_', 'E', '##ND', ']', 'collided', 'in', 'a', '[', 'E', '##NT', '_', 'ST', '##AR', '##T', ']', 'tunnel', '[', 'E', '##NT', '_', 'E', '##ND', ']', 'this', 'morning', '.', '[SEP]']

由于分词器无法识别 [ENT_START] 和 [ENT_END] ,将它们都当作未知字符处理,例如 [ENT_END] 被切分成了 '[''E''##NT''_''E''##ND'']' 七个 token,很明显不符合我们的预期。

此外,有时我们还会遇到一些领域相关词汇,例如医学领域的文本通常会包含大量的医学术语,它们可能并不在模型的词表中(例如一些术语是使用多个词语的缩写拼接而成),这时也会出现上面的问题。

此时我们就需要将这些新 token 添加到模型的词表中,让分词器与模型可以识别并处理这些 token。

添加新 token

添加方法

Huggingface 的 Transformers 库提供了两种方式来添加新 token,分别是:

  • add_tokens() 添加普通 token:添加新 token 列表,如果 token 不在词表中,就会被添加到词表的最后。tokenizer = AutoTokenizer.from_pretrained("bert-base-cased") num_added_toks = tokenizer.add_tokens(["new_tok1", "my_new-tok2"]) print("We have added", num_added_toks, "tokens") We have added 2 tokens 为了防止 token 已经包含在词表中,我们还可以预先对新 token 列表进行过滤:new_tokens = ["new_tok1", "my_new-tok2"] new_tokens = set(new_tokens) - set(tokenizer.vocab.keys()) tokenizer.add_tokens(list(new_tokens))
  • add_special_tokens() 添加特殊 token:添加包含特殊 token 的字典,键值从 bos_tokeneos_tokenunk_tokensep_tokenpad_tokencls_tokenmask_tokenadditional_special_tokens 中选择。与 add_tokens() 类似,如果 token 不在词表中,就会被添加到词表的最后。添加后,还可以通过特殊属性来访问这些 token,例如 tokenizer.cls_token 就指向 cls token。tokenizer = AutoTokenizer.from_pretrained("bert-base-cased") special_tokens_dict = {"cls_token": "[MY_CLS]"} num_added_toks = tokenizer.add_special_tokens(special_tokens_dict) print("We have added", num_added_toks, "tokens") assert tokenizer.cls_token == "[MY_CLS]" We have added 1 tokens 我们也可以使用 add_tokens() 添加特殊 token,只需要额外设置参数 special_tokens=Truetokenizer = AutoTokenizer.from_pretrained("bert-base-uncased") num_added_toks = tokenizer.add_tokens(["[NEW_tok1]", "[NEW_tok2]"]) num_added_toks = tokenizer.add_tokens(["[NEW_tok3]", "[NEW_tok4]"], special_tokens=True) print("We have added", num_added_toks, "tokens") print(tokenizer('[NEW_tok1] Hello [NEW_tok2] [NEW_tok3] World [NEW_tok4]!').tokens()) We have added 2 tokens ['[CLS]', '[new_tok1]', 'hello', '[new_tok2]', '[NEW_tok3]', 'world', '[NEW_tok4]', '!', '[SEP]'] 特殊 token 的标准化 (normalization) 过程与普通 token 有一些不同,比如不会被小写。这里我们使用的是不区分大小写的 BERT 模型,因此分词后添加的普通 token [NEW_tok1] 和 [NEW_tok2] 都被处理为了小写,而特殊 token [NEW_tok3] 和 [NEW_tok4] 则维持大写,与 [CLS] 等自带特殊 token 保持一致。

对于之前的例子,很明显实体标记符 [ENT_START] 和 [ENT_END] 属于特殊 token,因此按添加特殊 token 的方式进行。如果使用 add_tokens() 则需要额外设置 special_tokens=True,或者也可以直接使用 add_special_tokens()

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")

num_added_toks = tokenizer.add_tokens(['[ENT_START]', '[ENT_END]'], special_tokens=True)
# num_added_toks = tokenizer.add_special_tokens({'additional_special_tokens': ['[ENT_START]', '[ENT_END]']})
print("We have added", num_added_toks, "tokens")

sentence = 'Two [ENT_START] cars [ENT_END] collided in a [ENT_START] tunnel [ENT_END] this morning.'

print(tokenizer(sentence).tokens())
We have added 2 tokens
['[CLS]', 'two', '[ENT_START]', 'cars', '[ENT_END]', 'collided', 'in', 'a', '[ENT_START]', 'tunnel', '[ENT_END]', 'this', 'morning', '.', '[SEP]']

可以看到,分词器成功地将 [ENT_START] 和 [ENT_END] 识别为 token,并且依旧保持大写。

调整 embedding 矩阵

注意!无论使用哪种方式向词表中添加新 token 后,都需要重置模型 token embedding 矩阵的大小,也就是向矩阵中添加新 token 对应的 embedding,这样模型才可以正常工作(将 token 映射到对应的 embedding)。

该操作通过调用预训练模型的 resize_token_embeddings() 函数来实现,例如对于上面的例子:

from transformers import AutoTokenizer, AutoModel

tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
model = AutoModel.from_pretrained("bert-base-uncased")

print(len(tokenizer))
num_added_toks = tokenizer.add_tokens(['[ENT_START]', '[ENT_END]'], special_tokens=True)
print("We have added", num_added_toks, "tokens")
print(len(tokenizer))

model.resize_token_embeddings(len(tokenizer))
print(model.embeddings.word_embeddings.weight.size())

# Randomly generated matrix
print(model.embeddings.word_embeddings.weight[-2:, :])
30522
We have added 2 tokens
30524
torch.Size([30524, 768])

tensor([[-0.0325, -0.0224,  0.0044,  ..., -0.0088, -0.0078, -0.0110],
        [-0.0005, -0.0167, -0.0009,  ...,  0.0110, -0.0282, -0.0013]],
       grad_fn=<SliceBackward0>)

可以看到,在添加了特殊 token [ENT_START] 和 [ENT_END] 之后,分词器的词表大小从 30522 增加到了 30524,并且模型的 token embedding 矩阵大小也成功调整为了 30524×76830524×768。

我们还尝试打印出新添加 token 对应的 embedding。因为新 token 会添加在词表的末尾,因此只需打印出矩阵最后两行。如果你重复运行一下上面的代码,就会发现每次打印出的 [ENT_START] 和 [ENT_END] 的 embedding 是不同的。这是因为在默认情况下,这些新 token 的 embedding 是随机初始化的

token embedding 初始化

如果有充分的训练语料对模型进行微调或者继续预训练,那么将新添加 token 初始化为随机向量没什么问题。但是如果训练语料较少,甚至是只有很少语料的 few-shot learning 场景下,这种做法就可能存在问题。研究表明,在训练数据不够多的情况下,这些新添加 token 的 embedding 只会在初始值附近小幅波动。换句话说,即使经过训练,它们的值事实上还是随机的。

因此,在很多情况下,我们需要手工初始化这些新 token 的 embedding。对于 Transformers 库来说,可以通过直接对 embedding 矩阵赋值来实现。例如对于上面的例子,我们将这两个新 token 的 embedding 都初始化为全零向量:

with torch.no_grad():
    model.embeddings.word_embeddings.weight[-2:, :] = torch.zeros([2, model.config.hidden_size], requires_grad=True)
print(model.embeddings.word_embeddings.weight[-2:, :])
tensor([[0., 0., 0.,  ..., 0., 0., 0.],
        [0., 0., 0.,  ..., 0., 0., 0.]], grad_fn=<SliceBackward0>)

注意,初始化 embedding 的过程并不可导,因此这里通过 torch.no_grad() 暂停梯度的计算。

初始化为已有 token 的值

比较常见的操作是根据新添加 token 的语义,将其值初始化为训练好 token 的 embedding。例如对于上面的例子,我们可以将 [ENT_START] 和 [ENT_END] 的值都初始化为“entity”对应的 embedding。因为 token id 就是 token 在矩阵中的索引,因此我们可以直接通过 weight[token_id] 取出“entity”对应的 embedding。

token_id = tokenizer.convert_tokens_to_ids('entity')
token_embedding = model.embeddings.word_embeddings.weight[token_id]
print(token_id)

with torch.no_grad():
    for i in range(1, num_added_toks+1):
        model.embeddings.word_embeddings.weight[-i:, :] = token_embedding.clone().detach().requires_grad_(True)
print(model.embeddings.word_embeddings.weight[-2:, :])
9178
tensor([[-0.0039, -0.0131, -0.0946,  ..., -0.0223,  0.0107, -0.0419],
        [-0.0039, -0.0131, -0.0946,  ..., -0.0223,  0.0107, -0.0419]],
       grad_fn=<SliceBackward0>)

可以看到最终结果符合我们的预期,[ENT_START] 和 [ENT_END] 被初始化为相同的 embedding。

另一种常见的做法是根据新 token 的语义,使用对应的描述文本来完成初始化。例如将值初始化为描述文本中所有 token 的平均值,假设新 token titi 的描述文本为 wi,1,wi,2,…,wi,nwi,1,wi,2,…,wi,n,那么 titi 的初始化 embedding 为:

这里 EE 表示预训练模型的 token embedding 矩阵。对于上面的例子,我们可以分别为 [ENT_START] 和 [ENT_END] 编写对应的描述,然后再对它们的值进行初始化:

descriptions = ['start of entity', 'end of entity']

with torch.no_grad():
    for i, token in enumerate(reversed(descriptions), start=1):
        tokenized = tokenizer.tokenize(token)
        print(tokenized)
        tokenized_ids = tokenizer.convert_tokens_to_ids(tokenized)
        new_embedding = model.embeddings.word_embeddings.weight[tokenized_ids].mean(axis=0)
        model.embeddings.word_embeddings.weight[-i, :] = new_embedding.clone().detach().requires_grad_(True)
print(model.embeddings.word_embeddings.weight[-2:, :])
['end', 'of', 'entity']
['start', 'of', 'entity']
tensor([[-0.0340, -0.0144, -0.0441,  ..., -0.0016,  0.0318, -0.0151],
        [-0.0060, -0.0202, -0.0312,  ..., -0.0084,  0.0193, -0.0296]],
       grad_fn=<SliceBackward0>)

可以看到,这里成功地将 [ENT_START] 初始化为“start”、“of”、“entity”三个 token embedding 的平均值,将 [ENT_END] 初始化为“end”、“of”、“entity” embedding 的平均值。

保存新的token词汇表和模型权重

# 保存tokenizer
tokenizer.save_pretrained(save_directory)
# 保存model
model.save_pretrained(save_directory)

OmniFlatten |一种基于Qwen2-0.5B的端到端无缝对话大模型,解决对话中断、回话等问题

全双工口语对话系统在显著超越传统的单轮对话系统方面取得了重要进展,因为它们允许多向的同时通信, closely 地模拟了人际交流。然而,在全双工对话系统中实现低延迟和自然交互仍然是一个重大挑战,尤其是考虑到人类对话中的中断、回话以及重叠语音等动态因素。在本文中,作者提出了一种名为 Omni-Flatten 的新型端到端基于 GPT 的模型,用于全双工对话,该模型能够有效地建模自然对话中固有的复杂行为,并且具有较低的延迟。

为了实现全双工通信能力,作者提出了一种多阶段的后训练方案,逐步将基于文本的大语言模型(LLM) Qwen2-0.5B 主干调整为能够实时生成文本和语音的语音-文本对话 LLM,而无需修改主干 LLM 的架构。训练过程分为三个阶段:模态对齐半双工对话学习全双工对话学习。在整个训练阶段中,作者通过扁平化操作标准化数据,这使得作者可以统一不同模态和任务的训练方法和模型架构。

Omni-Flatten提供了一种简明的建模技术,并为开发高效且自然的端到端全双工口语对话系统指明了有前景的研究方向。可以在该网页上找到由 Omni-Flatten 生成的对话音频示例。

简介

传统的轮转式语音对话系统仅支持半双工通信,即用户和系统的通信是双向进行但不能同时进行。这类系统在许多实际应用中虽有效,但在处理中断、回声通道和重叠语音时往往显得不足,这反映了人类面对面交流的自发性。相比之下,全双工语音对话系统允许同时进行双向通信,更贴近人类面对面交流的动力学特征。全双工语音对话系统能够通过同时说话、听和思考促进更为自然和高效的交互。然而,在全双工系统中实现低延迟和自然交互仍然是一个重大挑战。

近年来,开发语音对话系统的工作受到了大语言模型(LLM)进展的驱动,并大致可以分为协作系统和端到端系统两类。协作系统通过对接基于LLM的对话模块与外部ASR或TTS模块来实现语音理解和语音生成。例如,Qwen-audio处理语音输入,输出文本并通过TTS将其转换为口头回应。相比之下,一些端到端系统直接基于语音-文本多模态模型建模语音到语音的对话,但这些模型大多是回合制对话模型,不支持全双工对话。最近在开发端到端全双工语音对话系统方面取得的进步包括SyncLM和开源的Moshi。

具体而言,Moshi并行模型了用户的多条语音输入流和系统的文本及语音输出流,简化了全双工对话的处理。然而,这种并行框架并不被基于GPT的模型天然支持,因此需要复杂的策略如声学延迟和内心独白等设计。类似Omni-Flatten,SyncLM也是训练来预测用户的语音单元和助手的交替片段以获得实时全双工语音对话能力。然而,他们引入了一种去重策略来减轻静默语音对模型语义能力的影响,而作者则是通过显式文本 Token 预测增强对话模型的语义能力。

为了应对全双工语音对话系统中实现自然交互和低延迟所面临的挑战,作者提出了一种基于GPT的新颖端到端模型Omni-Flatten,用于全双工语音对话。Omni-Flatten能够有效学习自然对话中固有的复杂行为,并通过低延迟促进类似人类的对话。作者提出了一种多阶段渐进式后训练方案,通过首先进行模态对齐,然后交替和展平对话中的多个语音和文本流,将基于文本的大语言模型(LLM) Qwen2-0.5B 骨架适应为一个健壮的语音-文本对话模型。值得注意的是,Omni-Flatten并未改变基于文本的 Backbone 架构,也未依赖于计算密集型的预训练。

多阶段后训练过程始于对文本大语言模型 Backbone 网络进行监督多任务微调,以实现语音-文本模态对齐,并获得一种跨模态大语言模型,使用自动语音识别(ASR)和文本到语音合成功能(TTS)。这一阶段对于确保系统能够准确地理解和生成语音及文本,从而形成人机交互的无缝界面至关重要。

在获得语音-文本大语言模型后,作者通过三个渐进阶段,使用交错和序列化的对话对其进行微调:

  1. 在第一个阶段,作者使用扁平化技术,将用户输入和系统输出的文本流和语音流均摊平为单一序列(即处理四流数据)。这一阶段作为初步步骤,旨在训练模型学习半双工对话能力。
  2. 在第二个阶段,作者进一步移除用户输入文本流,对剩余的三流进行细粒度切分和对齐,将这些切分部分扁平化,并继续使用扁平化的三流数据对模型进行训练。这一步骤的目标是训练模型学习实时多流预测能力,从而实现全双工通信
  3. 最后,作者构建仅包含输入和输出语音的两流数据,并继续对模型进行训练,以专注于语音到语音的生成任务,从而消除对中间文本的依赖,减少延迟,并使系统更接近实时交互。

Omni-Flatten提出了一种简单而创新的建模技术,为开发高效且自然的端到端全双工对话系统提供了有前景的研究方向。

本项工作的主要贡献可以总结如下:

  1. 作者提出了一种新颖的一次性基于GPT的模型Omni-Flatten,该模型能够有效建模自然人类对话中固有的复杂行为,同时具有低延迟。作者提出了一种多阶段的后训练方案,通过基于As Rand TT S的有监督多任务微调实现文本基础的大语言模型向稳健的语音-文本对话模型的成功适应,然后对对话中的语音和文本流进行细粒度分块,并将它们扁平化为单一序列,逐步训练模型以获得半双工和全双工通信能力。值得注意的是,Omni-Flatten 并未对该GPT模型进行任何结构上的修改,也不依赖于计算量大的预训练。
  2. 作者的实验验证了模态对齐阶段的有效性,因为最终模型在ASR和TTS方面的表现达到了可接受的水平。作者使用高性能的大语言模型作为评估器,评估由Omni-Flatten生成的对话质量,并评估了对话轮换性能,包括系统轮换和用户轮换,以及运行时效率。结果显示,Omni-Flatten生成的对话具有合理的质量,模态对齐和半双工学习阶段均提升了模型的全双工对话能力。相对于用户轮换,Omni-Flatten在处理系统轮换方面更为出色,系统轮换的平均响应时间为160毫秒,而用户轮换的平均响应时间则为805毫秒。

方法论

在本节中,作者介绍了作者的端到端全双工对话模型Omni-Flatten。如图1所示,作者使用音频分词器将对话中的每个输入和输出语音流离散化为一个离散的语音Token序列。

OmniFlatten:端到端全双工语音对话模型概述:该模型能够持续接收用户输入的语音,同时生成助手的语音和文本输出。语音分词器将用户的语音(包括静音段)转换为输入语音的分词序列(表示为红色方块序列:S0, S1, S2, S3, S4, …)。我们将一段输入语音分词(用实线框括起来的分词)输入到OmniFlatten中,以解码生成一段输出分词(用虚线框括起来的分词)。输出分词包括语音分词(蓝色方块序列:S0, S1, S2, S3, S4, …)和文本分词(绿色圆圈序列:T0, T1, T2, …)。我们将输出文本分词按照固定的文本块大小组织,并按照固定的语音块大小生成输出语音分词,从而利用预测的文本指导语音生成。用户的语音分词与预测生成的助手文本和语音分词根据说话人轮次交错排列,最终展平为一个单一序列。最后,输出的语音分词和文本分词分别输入到语音去分词器和文本去分词器中,以生成助手的输出语音和文本。

作者然后交替排列语音Token序列和文本Token序列,并将它们展平成一个单一序列。Omni-Flatten采用多阶段渐进式训练过程,将基于文本的大语言模型转化为具备模态对齐和对话学习能力的 robust 的端到端全双工口语对话模型。在接下来的子节中,作者将详细阐述作者方法的关键组成部分,包括音频Token化与反Token化、模态对齐以及对话学习。

音频标记化和去标记化

为了将连续的语音信号转换为离散的Token序列,作者采用了在CosyVoice中使用的语音Tokenizer。由于通过多语种ASR的监督,这种语音Tokenizer能够将语音转换为语义Token,从而有助于提升语音理解并保证生成语音的内容一致性。该Tokenizer利用了一个编码器和一个向量量化(VQ)层,将音频信号离散化为具有4096个Codebook代码的语音Token序列。

Cosyvoice模型架构

在将离散的语音Token重新转换回音频时,作者同样使用了与CosyVoice中相同的Optimal Transport Conditional Flow Matching模型(OTCFM)。OTCFM将语音Token序列转化为Mel频谱图,然后使用HifiGAN语音生成器生成最终的音频输出。先前的研究表明,相比于更简单的梯度扩散概率模型(DPM),OTCFM在训练更容易且生成更快方面表现更优。

为什么要使用HifiGAN将mel谱转换为音频:    
     理论上,梅尔语谱图(Mel-spectrogram)可以直接转换回音频波形,但这个过程通常并不像简单的逆变换那样直接和精确。原因在于,梅尔语谱图只是音频的一个低维表示,丢失了很多原始音频中的细节信息,尤其是相位信息。而语音合成中的高质量波形生成通常需要更复杂的模型来重建这些细节。HiFiGAN 和其他类似的模型提供了一个有效的框架来实现这种重建。

1. 梅尔谱图到波形的转换问题
梅尔语谱图是通过将音频信号转换到梅尔频率刻度后提取的特征。它是通过傅里叶变换将音频信号转换成频谱图后,再通过梅尔滤波器组对频谱进行压缩得到的。梅尔语谱图通常只保留了音频的频率信息,而没有包含关于时间和相位【波形】的细节。由于相位信息对音频波形的重建至关重要,直接将梅尔谱图转换回波形往往会导致失真或不自然的声音。

2. 为什么需要 HiFi-GAN 这样的模型?
HiFi-GAN 和类似的生成对抗网络(GAN)模型是为了应对梅尔谱图到波形转换的挑战而设计的。梅尔谱图提供了音频的频谱信息,但缺少细节,如相位信息、音质和时间结构等。而 HiFi-GAN 等模型通过以下方式弥补了这个缺失:

相位重建:HiFi-GAN 等模型不仅仅是简单的反变换,它们通过学习梅尔谱图与真实音频波形之间的复杂关系,能够通过生成模型有效地重建音频的相位信息,从而得到更高质量的波形。

生成对抗训练:HiFi-GAN 使用生成对抗网络(GAN),通过生成器和判别器的对抗训练,能够更好地捕捉到音频信号的自然性和细节。生成器从梅尔谱图出发生成波形,判别器则判断生成的波形是否与真实的音频波形相似。经过多次训练,生成器学会了如何产生高质量的波形。

高质量输出:直接从梅尔谱图到波形的传统方法(如 Griffin-Lim 算法)通常会产生较低质量的波形,尤其是在细节和自然性上有所欠缺。HiFi-GAN 可以生成非常高质量的波形,甚至接近人类语音的真实感。

模态对齐

作者从对预训练的文本大语言模型(Text-Based LLM Backbone)进行后训练开始,以获得适用于语音理解与生成的语音-文本大语言模型(Speech-Text LLM)。由于Qwen2-0.5B具有较小的规模,适合低计算资源要求,并且对于这种规模的模型而言表现力较强,因此作者选择它作为基模型。作者使用配对的语音-文本数据(ASR和TTS任务)进行监督微调(Supervised Fine-Tuning, SFT),这一过程使预训练的文本大语言模型适应了语音-文本多模态模型。

对于每个语音-文本对,作者构建如下训练样本:

TTS 样本:

其中,[ASR]和[TT S]分别表示ASR任务和TT S任务的ID;[SOS]、[EOS]、[SOT]、[EOT]是特殊的Token,分别表示语音句子或文本句子的开始和结束。作者使用这个对齐的语音-文本多模态模型进行后续的对话学习。这里的S_seq 是语音进行 CosyVoice Tokenizer 来获得的,T_seq是文本序列。 S_seq 经过 OTCFM 合成音频mel谱,在经过HifiGAN解码合成音频。

对话学习

在上述所述的语音-文本多模态模型的基础上,作者分三个阶段进行对话学习,包括使用轮流对话数据的语音和文本流进行半双工对话训练,然后基于语音和文本序列的精细分块和对齐进行全双工对话训练。

具体而言,在全双工对话训练期间,作者首先去除输入文本流,并使用剩余的三个流进行训练,然后进一步去除输出文本流,并使用剩余的两个流进行训练,以逐步消除对文本信息的依赖,专注于语音到语音的生成,并减少延迟。

在整个三个阶段中,作者将多流对话数据交错并压平成单一序列。【moshi做法是将多流并行建模】

半双工对话训练

半双工对话智能体是全双工对话智能体的特殊且简化案例,其中人类和助手交替发言,且不存在重叠说话的情况,即在发言人的发言期间,聆听者完全静默。

由于用于学习模态对齐的语音识别(ASR)和文本到语音(TTS)数据中不存在重叠说话的情况,因此半双工对话训练比需要模型处理轮流发言、副通道反馈以及重叠说话的全双工对话训练更符合已对齐的多模态模型。作者采用循序渐进的学习理念,在首先进行半双工对话训练之后再进行全双工对话训练。

四流训练:

基于四种流(语音和文本分词)的半双工对话训练如图所示,模型在根据对话中实际说话人轮次组织的数据上进行训练。我们将多轮对话中的语音和文本分词展平成一个单一序列,按照以下模式进行排列:

  • 第 N−1 轮中包含用户语音分词(红色方块表示)和用户文本分词(红色圆圈表示);
  • 第 N 轮中包含助手文本分词(蓝色圆圈表示)和助手语音分词(蓝色方块表示)。

通过这种展平方法,模型能够在训练过程中捕捉多轮对话的上下文信息,同时保持不同流数据的关联性。

在半双工对话训练过程中,作者训练模型主要执行用户语音片段的语音识别(ASR),以获取文本内容,接着基于用户文本内容生成助手的文本回应,然后通过基本上执行TTS任务来预测助手文本回应的语音片段。这种模式在一次对话的多个回合中得以扩展,如图2所示。

全双工对话训练

基于三流数据的训练为了开发出能够进行低延迟双工对话的人类 Level 的全双工会话智能体,作者需满足实时要求。为此,作者从四种数据流中移除了用户文本流,并使用剩余的三种数据流进行训练。为了处理重叠语音,作者在基于片段的基础上引入了分块和宽松语音-文本 Token 对齐的方式,这样一来,作者就无需在语音token和文本token之间实现严格的 Token 级对齐。

具体来说,在准备用于此阶段的训练数据时,作者首先按照固定大小将对话数据中的语音 Token 序列和文本 Token 序列分块,然后交错排列这三种数据流并展平成单一序列用于训练,遵循输入语音、输出文本、输出语音的顺序。值得注意的是,由于文本效率更高,文本片段的大小通常小于语音片段的大小。

三流训练:

在本研究中,作者将文本片段的大小设置为 2 个 Token ,将语音片段的大小设置为10个 Token 。这种方法确保了输出文本不会过度提前出现,从而在最小化与上述四流数据格式之间的差异的同时最大化保留TTS任务的目标。在文本内容结束后,作者使用特殊的静默终止 Token 填充文本流使用静默语音 Token 填充输出语音流中的静默区域。基于分块的三流数据的这种训练过程如图3所示。

基于三流全双工对话数据的全双工对话训练(移除用户文本流)如图所示,我们将输入和输出的多模态分词序列分割为短块,并将它们展平在一起。这样模型可以实时流式处理用户语音分词的输入,同时生成助手的文本和语音分词输出。

在第 N−1 块中,输入五个用户语音分词(红色方块,实线框中),模型输出七个助手分词(虚线框中),包括两个助手文本分词(蓝色圆圈)和五个助手语音分词(蓝色方块)。

模型遵循标准的自回归训练和解码过程。图中虚线箭头表示在一个块内,模型会重新输入预测的助手文本和语音分词,以完成自回归解码过程。这种方法保证了全双工对话流的连续性和实时性,同时简化了用户输入数据的处理。

双流训练:

基于两流全双工对话数据的全双工对话训练(进一步移除助手文本流)。如图所示,相较于三流实验,我们进一步移除了助手文本分词,仅保留用户和助手的语音分词作为输入。具体来说,我们将用户和助手的语音分词展平为一个单一序列输入到模型中。

在第 N−1 块中,输入 5 个用户语音分词(红色方块,实线框中),模型在第 N−1 块中输出 5 个助手语音分词(蓝色方块,虚线框中)。

这种方法简化了模型输入和输出的形式,仅依赖语音分词进行全双工对话的处理。这种训练方式突出语音信号在实时对话中的核心作用,同时进一步减少了对文本流的依赖。

训练基于双流数据为进一步降低延迟并消除对中间文本的依赖,从而专注于语音到语音的生成,作者进一步移除了输出文本流,仅保留输入和输出语音流。基于分块双流数据的这一训练过程如图4所示。

实验

数据

模态对齐数据集

模态对齐训练阶段的目标是帮助模型学习语音Token和文本Token之间的对应关系,并使模型获得自动语音识别(ASR)和文本到语音(TTS)两项关键能力。为了实现这一目标,作者结合了一组包含开源和专有数据的TTS和ASR数据集。开源数据集包括普通话和英语数据,如AISHELL-3、LibriTTS、TED-L1UM、VoxPopuli、LibriSpeech以及MLS。此外,还整合了几种专有ASR和TTS数据集。总体而言,用于语音-文本模态对齐的数据集约包含10万小时的音频数据,其中30%为开源数据,70%为专有数据。

模拟语音聊天数据集:为了构建对话学习的语音聊天数据,作者设计了一条数据合成与模拟Pipeline来生成对话数据。首先,作者收集了大量的高质量开源文本对话数据,用于后续的语音合成,包括Alpaca、Moss、BelleCN和ultraChat。然后,使用启发式规则筛选出不适合Text-to-Speech(TTS)的数据样本,例如包含较高比例非文本元素(如代码和数学表达式)的样本、长度超过200字(中英文皆可)的样本,以及包含罕见或不常见符号的样本。最后,作者保留了大约360,000个基于轮次的对话会话(半双工对话)。

其次,作者基于这些文本的多轮交互对话创建了伪全双工语音聊天。作者使用CosyVoice合成了每一轮的音频。具体来说,作者首先从LibriSpeech和3DSpeaker数据集中采样说话人嵌入,以获得多样化的音色。在合成每一轮的语音之后,作者采用模拟策略,在每个说话人通道中适当地安排每一轮的音频,使得这次对话能够模拟自然的交互过程,即每位说话人交替发言,偶尔有中断和停顿,并且上下文流畅。详细的流程如下:

作者将合成的对话音频组织为两个通道,第一个通道是用户通道,第二个通道是助手通道。请注意,文本对话始终以用户开头,然后用户和助手交替发言。在用户发言结束后,作者立即开始下一个助手的发言,以便助手能够及时回应用户。在助手发言结束后,作者从正态分布中采样从助手回合结束时间到下一个用户回合开始时间的暂停时长,从而创建出用户与助手交错对话所对应的音频。

第三部分,为了模拟用户音频通道中的真实场景,作者还从MUSAN噪声数据集中采样背景噪声,并将其添加到用户音频通道中。作者控制信噪比(SNR)在15 dB到25 dB之间。基于此数据合成与仿真Pipeline,作者生成了总计2000小时的多通道对话数据。基于该数据集,作者使用其中1%的数据作为验证集,另外1%的数据作为测试集,其余数据用于训练。

训练和推理设置

作者使用QWen2-0.5B作为基础模型。在模态对齐训练阶段,最大序列长度设置为1024个Token。在对话学习阶段,最大序列长度扩展到8192个Token。在整个训练阶段,作者都使用标准交叉熵损失作为训练目标。

此外,在对话学习阶段,作者对User通道应用了损失 Mask ,因为作者观察到这项操作增强了模型训练的稳定性,可能是因为User通道中含有噪声音频输入。作者采用AdamW优化器,权重衰减设置为0.1,设为0.9,设为0.95。最大学习率设为2e-05,并采用Warm Up和余弦衰减策略。作者用5个epochs进行训练,并基于验证集上的损失选择最佳模型。批量大小设为1亿个Token。作者的代码实现基于NanoGPT项目4。

推理过程中,为了从模型中获得Assistant文本响应的预测,作者使用测试集中固定的用户语音通道语音作为固定语音输入,并交替填充预测的Assistant语音和文本

评价

模态对齐后的ASR和TTS任务性能改善情况

在模态对齐训练阶段(第3.2节),目标是帮助模型学习语音Token和文本Token之间的对应关系,并获得ASR和TTS能力;因此,作者通过评估最终对齐的多模态模型的ASR和TTS性能来评价此训练阶段的有效性。对于ASR评估,作者使用该模型将输入语音对应的离散语音Token解码为文本输出。

对于TTS评估,作者基于输入文本生成语音Token,然后使用CosyVoice的随机英语女性声音合成为音频。合成的音频随后使用Whisper Large V3模型进行识别,ASR的输出则与输入文本进行对比评分。ASR和TTS评估均在公开可用的LibriSpeech和VoNet Speech数据集上进行,采用字符错误率(CER)作为评估指标。

值得注意的是,CER不仅能够衡量模型TTS能力的合成准确度和鲁棒性,还能在很大程度上反映出音频质量。此外,由于本工作的主要目标是研究全双工语音聊天中的对话动态,因此本文未采用传统的语音质量标准评估指标,如主观意见得分(MOS)。

对于ASR评估,作者对比了Modality Alignment训练阶段后的语音文本对齐多模态模型(称为OmniFlatten)与Whisper Large V3模型。对于TTS评估,使用GT Speech Tokens表示将 GT 波形分割成语音Token,并使用相同的英女性音将其反向转换为语音。如表1所示,OmniFlatten在ASR和TTS任务上均表现出显著的性能。这些结果表明,Modality Alignment训练阶段有效地将单一模态的文本基础大语言模型转变为具有合理语音理解和生成能力的语音-文本多模态模型,为进一步的对话学习奠定了基础。

全双工对话能力受模态对齐和半双工对话学习的影响分析

正如第3.3.2节所述,针对三流数据进行全双工对话学习的训练阶段有助于模型获得全双工对话能力,并且该模型能够生成语音和文本用于助手。前期研究表明,竞争性的文本基础大语言模型可以作为多种自然语言生成任务的可靠评估工具,因为由大语言模型评估者为生成文本分配的分数与人类评估高度相关。

因此,作者通过 Prompt 一个竞争性的文本大语言模型来评估OmniFlatten的全双工对话能力,让其评估对话的意义并为训练过程中生成的预测助手文本响应赋分。值得注意的是,在仅针对两流数据完成最终训练阶段后,OmniFlatten仅输出助手的语音,这给基于文本的大语言模型带来了评估上的挑战。

评分机制涉及设计特定的 Prompt 词,并利用竞争性的文本大语言模型Qwen-max模型6来对模型生成的回答进行1到10分的评分。作者用于大语言模型评分的具体 Prompt 词详见附录A。作者精心设计该 Prompt 词以评估预测Assistant文本响应的流畅性和连贯性。此外,作者还在测试集上报告了该模型的CE损失值。

为了分析模态对齐训练阶段(第3.2节)和半双工对话学习阶段(第3.3节)在基于三流数据训练后对Omni-Flatten全双工对话能力的影响,作者对比了以下模型预测的Assistant文本响应的大语言模型评分:

  • QWen2-0.5 模型直接在三流数据上训练(表示为 Omni-Flatten,具有跨模态对齐但不采用半双工训练)。
  • QWen2-0.5B 在三流数据( Token 为 Omni-Flatten 且不包含半双工训练)上进行了模态对齐和全双工对话训练。
  • QWen2-0.5B 在三流数据上进行了模态对齐、半双工对话训练和全双工对话训练( Token 为 Omni-Flatten)。
  • 测试集中的真实文本响应(用GT响应表示).

表2的结果显示,模态对齐和半双工训练阶段均提高了预测助手文本响应的大语言模型得分,这表明这两个阶段都促进了模型全双工对话性能的提升,并且多阶段训练策略有效地增强了模型端到端全双工语音对话的能力。

轮流对话性能和运行效率:为了评估全双工交互的自然性,作者评估Assistant在用户说完话后能否及时回应(即Assistant进行轮流对话),以及当用户试图打断时Assistant能否及时停止说话(即用户进行轮流对话)。作者定义了以下指标。

Assistant 轮换 Acc@K:此度量定义为:如果在用户发出具有语义意义的语音 token 结束后的第 k个 token 处,Assistant 正确预测了一个非静默 token,则表明 Assistant 已经接过了话筒并开始发言。

用户轮换Acc@K :此指标定义为,在辅助智能体正在说话时,当用户输入一个语义上有意义的语音Token之后,辅助智能体是否正确地输出了一个静默Token在第k个Token位置上。该指标表明辅助智能体成功响应了用户的轮换尝试,即停止自身说话并进入倾听状态。请注意,在作者模拟的伪全双工对话数据集中,由于未考虑返回通道,因此用户输入始终被视为用户获得了发言权。

表3展示了评估结果。作者做如下观察:

  1. 使用本文中使用的语音片段大小10时,当用户结束发言后,智能体能够迅速响应,智能体轮换准确率在第5个Token时达到了55.7%,在第10个Token时达到了71.3%。相比之下,用户的轮换准确率非常低,在第25个Token时仅为30%。这是因为作者的合成全双工数据基于轮换文本对话构建,未涵盖用户打断智能体发言并轮换的情况。在未来的工作中,作者计划细化数据合成Pipeline,更好地模拟现实世界全双工交互中的复杂交互模式,例如用户打断和轮换发言,以及反馈通道。
  2. 智能体轮换的平均响应时间为160毫秒,而用户的平均响应时间为805毫秒。这种差异的原因在于智能体的轮换发生在用户的发言结束时,此时大量语义信息已经可用,系统可以迅速作出响应;相比之下,用户开始发言时语义上下文尚未完全建立,因此系统需要更长的时间来做出决策,停止说话并让出发言权
  3. 作者观察到使用更大的语音片段大小可以提高用户的轮换准确率和较大的K值下的智能体轮换准确率。作者认为这是由于更大的语音片段可以提供更多全面的语义信息以供轮换预测。然而,较大的片段大小也需要更长的预测时间,从而增加智能体的轮换响应时间。不同语音片段大小对用户轮换响应时间的影响相对较小,因为正如前面所述,无论语音片段大小如何,用户的轮换速度始终较慢。

结论和未来的工作

在本文中,作者介绍了一种基于合成全双工语音对话数据并设计多阶段渐进训练范式来实现模态对齐和对话学习的端到端全双工语音对话模型Omni-Flatten。

Omni-Flatten提供了一种简单的全双工建模方案,无需改变基于文本的大语言模型的基本架构,也不依赖于计算密集型的预训练。实证评估表明,提出的方法对于开发处理全双工交互的端到端模型具有前景。

参考

[0]. Omni-Flatten: An End-to-end GPT Model for Seamless Voice Conversation.

Hertz-dev: 首个开源的超低延迟的实时交互语音对话模型

官方介绍:Hertz-dev 在 RTX 4090 上的理论延迟为 65 毫秒,实际平均延迟为 120 毫秒。这比世界上任何公共模型的延迟都低约 2 倍——这是模型能够以类似人类的方式与您互动的先决条件,而不是感觉像延迟、断断续续的电话通话。作者目前正在训练更大、更先进的 Hertz 版本,它将使用缩放的基础模型配方和 RL 调整来大幅提高模型的原始功能和最终一致性。Hertz-dev 是实时语音交互未来的一瞥,也是世界上最容易让研究人员进行微调和构建的对话音频模型。

代码地址:https://github.com/Standard-Intelligence/hertz-dev

体验地址:https://si.inc/hertz-dev/

在过去的几个月里,Standard Intelligence 团队一直在进行跨模态学习研究。我们很高兴地宣布,我们将开源这项研究的早期产品,即 8.5B、全双工、纯音频基础模型:hertz-dev。

音频模态对于创建感觉自然的交互式代理至关重要。目前,利用音频与生成式 AI 的两种方法是基于扩散的方法或自回归方法。虽然基于扩散的音频模型被证明擅长音乐生成和小样本,但真正的交互式音频生成需要是自回归的。

该领域最大的问题是 1) 获得听起来像人类的音频生成(即非合成的以及很好地处理中断)和 2) 使用两个实时频道处理实时生成,这两个频道都在产生信息,就像正常的人类对话一样。

我们的模型处于这两者的最前沿,原生适应双扬声器格式,具有比人类更快的反应时间,并且完全能够解析和生成重叠的双扬声器音频。我们通过在潜在空间中操作以及使用量化语音位来实现这一点,从而允许 80ms 的理论平均延迟,每个时间步长只有一个采样的延迟。目前,我们在单个 RTX 4090 上对 120ms 的实际延迟进行了基准测试,比之前最先进的延迟低 2 倍。

模型架构:

Figure 1: hertz-codec architecture diagram for our VAE. The input is 6s 16kHz mono audio and the output is a 32-dim latent.
图 2:我们模型的自回归部分的 hertz-ar 架构图。(2a) 是单通道自回归潜在预测,(2b) 是双工自回归潜在预测。

hertz-dev 由两部分组成 – 产生音频latents的 hertz-codec 和根据过去音频latents未来音频latents的 hertz-ar。音频latents是极其丰富的先验数据,可用于许多下游任务。

hertz-codec:卷积音频 VAE,采用单声道、16kHz 语音,并使用 KL 正则化的 1kbps 比特率编码 8Hz latents数据。我们利用因果卷积(功能上在序列左侧添加填充)来实现流式推理。

编解码器输出高斯参数(均值和方差),这些参数每 125ms 帧仅被采样为单层 32 维latent数据。在主观评估中,Hertz-codec 在 6kbps 时优于 Soundstream 和 Encodec,在 8kbps 时与 DAC 相当,同时每秒的标记数低于任何流行的标记器,这对于语言建模至关重要。 Hertz-codec 有 500 万个编码器参数和 9500 万个解码器参数

inference_apatosaurus_95000.pt — 在混合重建、对抗和 KL 正则化损失上训练的 hertz-codec 权重。
inference_volcano_3.pt — hertz-codec 量化器,一种学习投影,可提取每个潜在语音中最相关的 15 位。

hertz-ar:40 层 84 亿参数解码器专用转换器,上下文为 2048 个输入token(约 4.5 分钟)。输出是可以传递到 hertz-codec 的latent数据。前 32 层接收潜在历史作为输入,并预测下一个latent音频token的 15 位量化投影。我们称之为 hertz-lm,因为它可以独立训练或从语言模型权重初始化。

最后 8 层网络利用潜在历史和 15 位量化latent来预测未来的潜在音频标记。

双工音频作为后训练任务处理,两个投影头连接在一起,然后分成两个量化投影管道,以各自的残差为条件

inference_caraway_112000.pt — 从在 2T 标记上训练的语言模型初始化的hertz-lm 权重。
inference_syrup_110000.pt — 随机初始化的hertz-lm 权重,并完全在音频潜在上进行训练。
inference_whip_72000.pt — 最后 8 层的hertz-ar 权重
inference_care_50000.pt & inference_scion_54000.pt — hertz-ar 的双工检查点


Hertz-dev 是第一个公开发布的对话音频基础模型。基础模型可以准确预测训练数据的分布,而那些经过大量强化学习调优以压缩生成分布的模型则不同。这使得这些模型成为大量不同任务的下游微调的最佳起点。我们目前正在训练更大、更先进的 Hertz 版本,它将使用缩放的基础模型配方和强化学习调优来大幅提高模型的原始能力和最终一致性。Hertz-dev 是实时语音交互未来的一瞥,也是世界上最容易让研究人员进行微调和构建的对话音频模型。

类似的端到端的音频模型:


2、mini-omni2 

https://github.com/gpt-omni/mini-omni2…

3、GLM-4-Voice 

https://github.com/THUDM/GLM-4-Voice…

4、moshi 

https://moshi.chat

5、Spiritlm 

https://github.com/facebookresearch/spiritlm

声学模型和语言模型融合的N种方式

作者:Ryuk
来源:语音算法组
链接:https://mp.weixin.qq.com/s/PMKFQvPNLJH7qXqp8fWjkA

语音识别算法目的是从声学特征x中找到最有可能生成的词序列y,即

完整的语音识别算法包括特征提取、声学模型、语言模型和解码,其中语言模型(Langulage Model, LM)负责计算词序列W={w1,…,wn} 的概率估计P(W)并且语言模型在识别过程中可以帮助引导和限制备选词假设之间的搜索结果。

语言模型是通过学习大量文本数据来预测或生成语言内容的模型。语言模型的核心目标是学习词语或字符序列的分布,以便在给定上下文的情况下,预测下一词(或字符)的可能性,或生成合理的句子和段落。根据现有的工作,语言模型大致可以分为两大类:

  • 基于统计的语言模型,如ngram;
  • 基于神经网络的语言模型,如rnnlm;

无论哪种形态的语言模型最终都是要和声学模型一起使用,但是可以选择在不同的位置加入语言模型以达到不同的效果,今天本文就介绍下声学模型和语言模型融合几种方式。

🌒 Shallow Fusion(浅层融合)首先很容易想到,声学模型有个得分,语言模型也有个得分,加权求和不就好了,这就是最传统的shallow fusion方法。声学模型和语言模型分开训练,然后在声学模型beam-search时做得分的加权,即

其中λ为语言模型的权重,在shallow fusion 中,声学模型和语言模型完全独立的,可以随意地更换语言模型,比如从ngram切换到Transformerlm,只需要重新调整语言模型权重λ即可。

💯 LM Rescoring

由于shallow fusion是在token级别进行的融合,计算量随着句子的长度而增加,那么有没有开销比较小的方法呢?答案是肯定的,可以在整个句子解码后,对句子级别的n-best结果使用语言模型打分,然后与声学模型得分加权,即

虽然相比shallow fusion逐token计算语言模型得分,rescoring方法减少了计算量,但是其搜索空间减少为句子级别的n-best,因此精度相对于shallow fusion有所下降。

🎴Density Ratio

目前端到端的方案已经成为了语音识别的主流,研究者们普遍认为像RNNT之类的模型,在训练过程中模型也学到了一些语言的信息,称其为内部语言模型(Internal Language Model, ILM)。这个内部语言模型是基于声学模型训练集内容训练的,当遇到跨域问题时,内部语言模型和外部的语言模型存在冲突,对最终的识别结果有影响。一个可行的解决方案是在声学模型的源域再训练一个语言模型,然后在shallow fusion后减去这个语言模型。假设源域为ψ,目标域是τ,那么density ratio方法可以通过贝叶斯定理推导得到端到端模型的后验概率:

在推理过程中,内部语言模型的对数概率应该由端到端模型和外部语言模型分数的对数线性组合中减去,即:

其中β是非blank的奖励。显然,这种方法在跨域的场景下比shallow fusion更好。此外,这种方法和shallow fusion一样,只在解码时需要介入,不影响声学模型的训练过程,最后只需要微调下不同语言模型的权重即可。

⁉️ Internal Language Model Estimation

density ratio方法假设源域端到端模型的后验可以分解为具有独立参数的声学模型和语言模型,类似于混合系统。然而严格来说,根据贝叶斯定理,端到端模型的后验概率应该都条件分布于模型的参数:

同样的,在推理过程中,内部语言模型的对数概率应该由端到端模型和外部语言模型分数的对数线性组合中减去,即

对比公式(4)和公式(6)可以发现与density ratio方法不同的是,这里的内部语言模型和声学模型基于同一组参数条件化,这种方法称为内部语言模型估计(Internal Language Model Estimation, ILME)。那么剩下的问题就是如何估计这个内部语言模型了。

内部语言模型定义为端到端模型从音频-转录数据对中隐式学习到的令牌序列概率分布,然而直接整个声学空间中计算在实际中是不可行的。这里需要使用一种称作联合软最大近似(Joint Softmax Approximation,JSA)的方法,该方法用于通过消除编码器激活的影响来近似混合自回归传输器(hybrid autoregressive transducer, HAT)模型的内部语言模型。简单来说,在RNNT模型中,直接将encoder的输出置零,只让decoder的输出通过joint network,便可以得到ILM的分数;在AED模型中,屏蔽掉encoder的encoder的输出,解码器仅根据文本输入计算ILM的分数。

🎰 Weighted Finite-State Transducers 重要!!!

WFST(加权有限状态转换器)是一种扩展了有限状态机(Finite-State Machine, FSM)的模型,能够处理带权重的符号转换问题。简单来说,WFST是一种在两个符号集之间进行映射的工具,并为每个转换赋予一个权重或代价。它是一个有向图,图中的每条边表示符号的转换,同时伴随一个权重。在端到端语音识别中,T 是以建模单元来构图的,IH 为声学模型神经网络的建模单元英文音素。下图就是 ‘is’ 中 /i/ 的发音表示:

L 是发音词典,包含了字到词的映射,下图为’is’的发音/iz/的表示:

G是语言模型,用于识别how are you,how is it的语言模型构图如下:

通过TLG的Compose,把声学建模单元,词典,语言模型糅合在一起,产生一个静态的解码网络。在解码过程中采用搜索策略,得到输入语音的最优解码结果。

参考文献:

[1]. https://zh-v1.d2l.ai/chapter_recurrent-neural-networks/lang-model.html

[2]. https://live.ocw.mit.edu/courses/6-345-automatic-speech-recognition-spring-2003/6f59dcd153cc92b4d565ca4b45b2bc83_lecture1112.pdf

[3]. https://k2-fsa.github.io/icefall/decoding-with-langugage-models/index.html

[4]. https://zhuanlan.zhihu.com/p/585196572

[5]. https://arxiv.org/pdf/2002.11268

[6]. https://arxiv.org/pdf/2011.01991

[7]. https://aistudio.baidu.com/projectdetail/5001356?channelType=0&channel=0

TTS语音克隆开源模型-Fish、F5、GPT、CosyVoice、MaskGCT

GPT-SoVITS

https://github.com/RVC-Boss/GPT-SoVITS

GPT-SoVITS项目是TTS克隆领域内效果常年霸榜的模型之一,具有以下功能:

  • 零样本文本到语音(TTS): 输入 5 秒的声音样本,即刻体验文本到语音转换。
  • 少样本 TTS:仅需 1 分钟的训练数据即可微调模型,提升声音相似度和真实感。
  • 跨语言支持:支持与训练数据集不同语言的推理,目前支持英语、日语、韩语、粤语和中文。
  • WebUI 工具:集成工具包括声音伴奏分离、自动训练集分割、中文自动语音识别(ASR)和文本标注,协助初学者创建训练数据集和 GPT/SoVITS 模型。

部署和使用教程:【34.8k点赞量!】TTS领域内明星模型GPT-SoVITS实操教程来啦;2秒语音就能克隆,效果过于惊艳,请谨慎使用!

  1. https://github.com/RVC-Boss/GPT-SoVITS
  2. https://huggingface.co/lj1995/GPT-SoVITS

MaskGCT

https://github.com/open-mmlab/Amphion/blob/main/models/tts/maskgct/README.md

文本转语音TTS系统通常被分为自回归和非自回归系统。自回归系统隐式地建模持续时间,但在鲁棒性方面存在一定的缺陷,并且缺乏持续时间的可控性。非自回归系统在训练期间需要显式的文本和语音之间的对齐信息,并预测语言单位(例如音素)的持续时间,这可能会影响其自然性。在10月24日,趣丸科技&香港中文大学提出一种完全非自回归的TTS模型——掩码生成编解码器变换器(MaskGCT),它消除了对文本和语音监督之间显式对齐信息的需求,以及对音素级别持续时间预测的需求。

MaskGCT模型框架如下:

  • 语音语义表示编解码器:这部分将语音转换为semantic tokens,这是将语音信号的声学特征抽象成更高层次的语义信息的过程。
  • 文本到语义模型:这个模型使用文本和提示semantic tokens来预测语义标记。它的作用是理解文本内容并将其映射到相应的语义空间。
  • 语义到声学模型:在得到语义标记后,这个模型会基于这些语义标记来预测声学标记,即将语义信息进一步转换为声学特征,这些声学特征更接近于实际的语音波形。
  • 语音声学编解码器:最后,这个部分负责从声学标记重建语音波形,即将预测的声学特征转换成可以被听到的语音信号。

在训练期间,MaskGCT学习基于给定条件和提示预测掩码的语义或声学标记。在推理期间,模型以并行方式生成指定长度的标记。MaskGCT模型是基于10万小时数据集Emilia训练而来的,精通中英日韩法德6种语言的跨语种合成。数据集Emilia是全球最大且最为多样的高质量多语种语音数据集之一。

MaskGCT模型实验性能

可以看出 MaskGCT模型整体性能超了CosyVoice,XTTS-v2模型性能。

MaskGCT模型运行占用显存(大约10G左右)

部署和使用教程:【又又一款王炸级别TTS模型】趣丸科技&港中大开源MaskGCT语音大模型,性能超过CosyVoice,XTTS-v2!

  1. https://arxiv.org/pdf/2409.00750
  2. https://hf-mirror.com/amphion/MaskGCT
  3. https://maskgct.github.io/
  4. github: https://github.com/open-mmlab/Amphion/tree/main/models/tts/maskgct
  5. 在线体验: https://huggingface.co/spaces/amphion/maskgct

F5-TTS语音模型

https://github.com/SWivid/F5-TTS

E2-TTS 语音模型介绍

E2-TTS是由微软公司(Microsoft Corporation, USA)的研究团队开发的,具有以下特点:

  1. 简单架构:E2-TTS具有非常简单的架构,仅由填充标记的文本序列和基于流匹配的mel频谱图生成器组成。
  2. 无需额外组件:E2-TTS不需要额外的组件,例如持续时间模型(duration model)、字素到音素转换器(grapheme-to-phoneme converter)或复杂的对齐搜索技术(如单调对齐搜索)。
  3. 高性能:尽管架构简单,E2-TTS在零样本(zero-shot)TTS能力上达到了与之前工作相当或更好的性能,包括Voicebox和NaturalSpeech 3。
  4. 灵活性:E2-TTS在输入表示上具有灵活性,允许在推理期间提高可用性。

F5-TTS 语音模型介绍 :

F5-TTS是一款基于流匹配的全非自回归文本到语音转换模型,由上海交通大学(Shanghai Jiao Tong University)、剑桥大学(University of Cambridge)、以及极氪汽车研究院(Geely Automobile Research Institute (Ningbo) Company Ltd.)的研究团队联合开发的。具有以下特点:

  1. 改进的文本表示:F5-TTS使用ConvNeXt对输入文本进行细化,以改善与语音的对齐,解决了E2-TTS中存在的鲁棒性问题。
  2. Sway Sampling策略:F5-TTS提出了一种新的推理时采样策略,称为Sway Sampling,它显著提高了模型的性能和效率。这种采样策略可以轻松地应用于现有的基于流匹配的模型,而无需重新训练。
  3. 更快的训练与推理:F5-TTS的设计允许更快的训练,并且在推理时实现了0.15的实时因子(Real-Time Factor, RTF),与现有的基于扩散的TTS模型相比,这是一个显著的改进。
  4. 零样本能力:F5-TTS在公共100K小时多语言数据集上训练,展示了高度自然和富有表现力的零样本能力,以及无缝的代码切换能力。
  5. 开源:F5-TTS的代码和检查点被开源,以促进社区发展。

F5-TTS在E2-TTS的基础上进行了改进,特别是在文本表示的细化和推理时采样策略上。这些改进使得F5-TTS在保持简单架构的同时,提供了更好的性能和更快的推理速度。此外,F5-TTS的零样本能力更强,且完全开源。开源协议MIT。

F5-TTS模型性能介绍

这是F5-TTS和E2-TTS在测试集上的结果;

可以看出F5-TTS模型的整体效果是超过CosySense效果的;

部署和使用教程:【克隆TTS领域又更新啦】上海交大开源F5-TTS: 只需要2秒就能克隆语音,可商用,合成语音效果让我震惊不已!

  1. https://github.com/SWivid/F5-TTS
  2. F5-TTS: https://arxiv.org/pdf/2410.06885
  3. E2-TTS:https://arxiv.org/pdf/2406.18009
  4. https://hf-mirror.com/SWivid/F5-TTS
  5. https://hf-mirror.com/SWivid/E2-TTS

FishSpeech1.4模型

https://hf-mirror.com/fishaudio/fish-speech-1.4

https://github.com/fishaudio/fish-speech

fish.audio团队最新开源的FishSpeech1.4;支持中文、英文等8种语音,具有以下特点:

  • 零样本和少样本文本转语音(TTS):输入一个10到30秒的语音样本,即可生成高质量的TTS输出。有关详细指南,请参见语音克隆最佳实践。
  • 多语言和跨语言支持:只需将多语言文本复制粘贴到输入框中——无需担心语言问题。目前支持英语、日语、韩语、中文、法语、德语、阿拉伯语和西班牙语。
  • 无需音素依赖:该模型具有强大的泛化能力,不依赖于音素进行TTS。它可以处理任何语言脚本的文本。
  • 高度准确:对于5分钟的英文文本,实现了约2%的低CER(字符错误率)和WER(词错误率)。
  • 快速:借助fish-tech加速技术,在Nvidia RTX 4060笔记本电脑上实时因子约为1:5,在Nvidia RTX 4090上为1:15。
  • WebUI推理:功能强大,基于Gradio的Web UI,兼容Chrome、Firefox、Edge等浏览器。
  • GUI推理:提供与API服务器无缝协作的PyQt6图形界面。支持Linux、Windows和macOS。见GUI。
  • 部署友好:可以轻松设置推理服务器,原生支持Linux、Windows和MacOS,最小化速度损失。目前在huggingface社区下载量高达5.1K!

部署和使用教程: 【又一款王炸级别语音克隆TTS模型】FishSpeech重磅开源1.4版本!语音合成更逼真!跟最近爆火F5-TTS相比如何呢?

  1. https://hf-mirror.com/fishaudio/fish-speech-1.4
  2. https://speech.fish.audio/zh/inference/#_2
  3. https://github.com/fishaudio/fish-speech
  4. https://hf-mirror.com/SWivid/F5-TTS
  5.  https://github.com/SWivid/F5-TTS

CosyVoice模型

https://github.com/FunAudioLLM/CosyVoice

CosyVoice 是一个语音生成模型,能够合成自然声音,适用于多种应用。模型支持五种语言:中文、英语、日语、粤语和韩语。CosyVoice 包含三个开源模型:

  • CosyVoice-base-300M:擅长准确代表说话者身份,无需微调即可适应不同上下文,能够跨语言克隆声音。
  • CosyVoice-instruct-300M:能够生成富有情感表现力的语音,允许通过指令文本进行精细调整。
  • CosyVoice-sft-300M:已针对七位多语言说话者进行了微调,适合立即部署使用。

语音合成模型 CosyVoice 功能特点:

  • 多语言支持:CosyVoice 支持包括中文、英文、日语、粤语和韩语在内的五种语言。
  • 零样本学习:能够无需训练即可适应新说话者(zero-shot in-context learning),能够在不同语言之间复制声音。
  • 情感共鸣:能够创建情感共鸣的声音, CosyVoice-instruct 版本通过情感指令显著提高了情感控制的准确性。
  • 高质量语音合成:生成的样本在词错误率(WER)和说话者相似性方面达到人类水平。
  • 语音定制化:能够根据特定说话者生成多语言语音,适应新说话者而无需训练。
  • 语音克隆与风格迁移:支持在不同语言之间进行语音克隆和情感风格迁移。

部署和使用教程:【语音领域-又双叒更新】阿里开源FunAudioLLM: 2大核心模型、5大亮点功能!效果炸裂!手把手带你理论+实战部署推理!

  1. CosyVoice: https://github.com/FunAudioLLM/CosyVoice
  2. SenseVoice: https://github.com/FunAudioLLM/SenseVoice
  3. FunAudioLLM论文报告: https://fun-audio-llm.github.io/pdf/FunAudioLLM.pdf
  4. CosyVoice论文报告: https://fun-audio-llm.github.io/pdf/CosyVoice_v1.pdf
  5. https://fun-audio-llm.github.io/
  6. https://www.modelscope.cn/studios/iic/SenseVoice
  7. https://www.modelscope.cn/studios/iic/CosyVoice-300M

参考链接

  1. https://github.com/SWivid/F5-TTS
  2. https://hf-mirror.com/amphion/MaskGCT
  3. https://hf-mirror.com/fishaudio/fish-speech-1.4
  4. https://github.com/RVC-Boss/GPT-SoVITS
  5. https://github.com/FunAudioLLM/CosyVoice

CleanS2S-语音到语音 (S2S) 的原型智能体

https://github.com/opendilab/CleanS2S

CleanS2S 是一个语音到语音 (S2S) 的原型智能体,提供高质量的流式交互,并采用单文件实现。其设计简洁明了,旨在提供类似 GPT-4o 风格的中文交互原型智能体。该项目希望让用户直接体验语言用户界面 (LUI) 的强大功能,并帮助研究人员快速探索和验证 S2S pipeline 的潜力。

功能

📜 单文件实现

每个智能体管道的细节都放在一个独立的文件中。无需额外配置依赖项或理解项目文件结构。这对于那些想快速了解 S2S 管道并直接验证新想法的人来说,是一个很好的参考实现。所有管道实现都易于修改和扩展,用户可以快速更换喜欢的模型(例如 LLM)、添加新组件或自定义管道。

实时流式接口

整个 S2S 管道主要由 ASR(自动语音识别)、LLM(大型语言模型)和 TTS(文本转语音)组成,配合两个 WebSockets 组件接收器(包含 VAD)和发送器。管道设计为实时流模式,用户可以像人与人对话一样实时与智能体互动。所有音频和文本信息通过 WebSocket 流式发送和接收。为此,我们利用多线程和队列机制确保流过程顺畅,避免阻塞问题。所有组件都设计为异步和非阻塞,处理输入队列的数据并将结果输出到另一个队列。

🧫 全双工交互与打断机制

基于 WebSockets 提供的强大机制,管道支持全双工交互,这意味着用户可以同时与智能体对话和听取回复。此外,管道支持中断,用户可以在对话中随时通过新语音输入打断智能体。智能体将停止当前处理,开始处理新输入,并结合之前的对话和中断内容进行处理。此外,我们发现聊天机器人常用的“助理风格”和“轮流式”回应是人类对话的主要缺点之一。我们为智能体添加了更有趣的策略,以使对话更具互动性和吸引力。

🌍 网络搜索和 RAG

通过集成网络搜索功能和检索增强生成(RAG)模型,管道得到了进一步增强。这些功能使智能体不仅能实时处理和响应用户输入,还能从网络中获取和整合外部信息到响应中。这为回答用户提出的各种实际问题提供了扩展和灵活性。

  • WebSearchHelper 类负责根据用户查询进行在线搜索或收集与对话相关的附加信息。这使智能体能够参考最新或外部数据,增强响应的丰富性和准确性。
  • RAG 类实现了检索增强生成方法,首先从数据库中检索相关信息,然后使用这些信息生成响应。这一两步过程确保智能体的回复基于相关的事实数据,使互动更加知情和符合上下文。

快速上手

后端

安装

## clone the repository
git clone https://github.com/opendilab/CleanS2S.git
cd CleanS2S/backend
pip install -r requirements.txt
  • 根据此处的说明安装 funasr 以支持 paraformer-zh
  • 根据此处的说明安装 cosyvoice 以支持 CosyVoice-300M

下载模型

您需要下载以下四个必要的模型(3个 ASR 模型 + 1个 TTS 模型),可以通过以下链接下载,并放置在合适的目录中。

对于 LLM,我们默认使用 LLM API,您也可以按照下方的说明定制自己的本地 LLM(如 DeepSeek-V2.5、Qwen2.5 等)。

删除 --enable_llm_api 和 --lm_model_url 参数,修改 --lm_model_name 参数为您的本地 LLM 模型路径(例如 --lm_model_name /home/users/deepseek-v2.5)。

您还需要准备一个参考音频目录,其中包含用于韵律和音色转换的参考音频。我们在此仓库中准备了一个示例参考音频目录

如果您想使用自己的参考音频,需要保持与示例参考音频目录相同的格式。音频应为 10~20 秒长,发音清晰。

运行服务器

以下是使用默认设置运行服务器的示例:

export LLM_API_KEY=<your-deepseek-api-key>
python3 -u s2s_server_pipeline.py \
        --recv_host 0.0.0.0 \
        --send_host 0.0.0.0 \
        --stt_model_name <your-asr-path> \
        --enable_llm_api \
        --lm_model_name "deepseek-chat" \
        --lm_model_url "https://api.deepseek.com" \
        --tts_model_name <your-tts-path> \
        --ref_dir <ref-audio-path> \
        --enable_interruption

ℹ️ 支持自定义LLM:在这里,我们使用 deepseek-chat 作为默认 LLM API ,您也可以根据 OpenAI 接口更改为其他 LLM API。(修改--lm_model_name--lm_model_url,设置您自己的 API 密钥)

ℹ️ 支持其他自定义:您可以参考后端管道文件(例如s2s_server_pipeline.py)中由argparse库实现的参数列表,根据自己的需求进行自定义。所有参数在其帮助属性中都有详细文档,易于理解。

使用 Websearch+RAG 运行服务器

您首先需要安装 Websearch 和 RAG 所需的依赖。

pip install -r backend/requirements-rag.txt

其次,为 RAG 中嵌入 Websearch 结果选择一个嵌入模型,例如以下嵌入模型:

git lfs install
git clone https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2

然后,为 Websearch 和 RAG 模块提供令牌,在s2s_server_pipeline_rag.py中,我们使用Serper作为 Websearch 工具,使用Deepseek进行 RAG 。

export LLM_API_KEY=''
export SERPER_API_KEY=''

最后,在运行服务器的示例代码中,将s2s_server_pipeline.py替换为s2s_server_pipeline_rag.py,并添加参数--embedding_model_name

这是使用默认设置和 Websearch+RAG 运行服务器的示例:

python3 -u s2s_server_pipeline_rag.py \
        --recv_host 0.0.0.0 \
        --send_host 0.0.0.0 \
        --stt_model_name <your-asr-path> \
        --enable_llm_api \
        --lm_model_name "deepseek-chat" \
        --lm_model_url "https://api.deepseek.com" \
        --tts_model_name <your-tts-path> \
        --embedding_model_name <embedding-model-path> \
        --ref_dir <ref-audio-path> \
        --enable_interruption

前端

我们建议使用Docker镜像来安装和运行客户端。以下是具体步骤:

## 运行基本的Docker镜像
docker run -it -p 3001:3001 amazonlinux:2023.2.20231011.0 sh
## 安装必要的包
dnf install vim git nodejs -y
npm install -g pnpm
git clone https://github.com/opendilab/CleanS2S.git
cd CleanS2S/frontend_nextjs
pnpm install

frontend_nextjs目录中准备适当的.env.local文件,您可以参考.env.example文件以获取所需的环境变量。

## 运行客户端
pnpm dev --port 3001

然后您可以在浏览器中访问客户端,地址为http://localhost:3001(推荐使用 Chrome 浏览器)。

附注:如果您想在本地运行客户端,请首先安装 node.js 和 pnpm ,然后使用 pnpm 安装必要的包并运行客户端。

MooER (摩尔): 基于8万小时训练数据的开源音频理解大模型

MooER: LLM-based Speech Recognition and Translation Models from Moore Threads

Github: https://github.com/MooreThreads/MooER
ModelScope: https://modelscope.cn/models/MooreThreadsSpeech/MooER-MTL-5K
Huggingface: https://huggingface.co/mtspeech/MooER-MTL-5K

paper:https://arxiv.org/abs/2408.05101

🎉🎉🎉我们发布了支持普通话输入的新 Omni (MooER-omni-v1) 和语音转语音翻译 (MooER-S2ST-v1) 模型。Omni 模型可以听到、思考和与您交谈!请在此处查看我们的演示

 Omni (MooER-omni-v1)

在本工作中,我们推出了摩耳大模型(英文名:MooER)—— 一个由摩尔线程开发的、基于大语言模型(Large Language Model,LLM)的语音识别和语音翻译系统。通过摩尔框架,您可以基于大语言模型,以端到端的方式,将输入语音自动转录为文本(即语音识别),并将其翻译为其它语言(即语音翻译)。关于MooER的具体效果,您可以查阅下文中有关评测结果的部分。在我们公布的技术报告中,我们提供了更详细的实验结果,并分享了我们对模型配置、训练策略等方面的理解。

MooER是业界首个基于国产全功能GPU进行训练和推理的大型开源语音模型。依托摩尔线程夸娥(KUAE)智算平台,MooER大模型仅用38小时便完成了5000小时音频数据和伪标签的训练,这一成就得益于自研的创新算法和高效计算资源的结合。

MooER不仅支持中文和英文的语音识别,还具备中译英的语音翻译能力。在多个语音识别领域的测试集中,MooER展现出领先或至少持平的优异表现。特别值得一提的是,在Covost2中译英测试集中,MooER-5K取得了25.2的BLEU分数,接近工业级效果。摩尔线程AI团队在该工作中开源了推理代码和5000小时数据训练的模型,并计划进一步开源训练代码和基于8万小时数据训练的模型,希望该工作能够在语音大模型的方法演进和技术落地方面为社区做出贡献。

MooER主要功能:

  • 语音识别:支持中文和英文的语音到文本的转换
  • 语音翻译:具备中文语音翻译成英文文本的能力
  • 高效率训练:在摩尔线程的智算平台上,快速完成大量数据的训练
  • 开源模型:推理代码和部分训练模型已经开源,便于社区使用和进一步研究。

MooER 模型、实验:

  • 深度学习架构:MoOER采用了深度学习技术,特别是神经网络来处理和理解语音信号端到端训练:模型从原始语音信号直接到文本输出,无需传统语音识别系统中的多个独立模块。
  • Encoder-Adapter-Decoder结构:
    • Encoder:负责将输入的语音信号转换成一系列高级特征表示。
    • Adapter:用于调整和优化模型对特定任务的适应性,提高型的泛化能力。
    • Decoder(Large Language Model,LLM):基于这些特征生成最终的文本输出。
  • LoRA技术:使用LoRA(Low-Rank Adaptation)技术,一种参数高效的模型微调方法,通过只更新模型中一小部分参数来提高训练效率和效果。
  • 伪标签训练:在训练过程中使用伪标签技术,即用模型自身的预测作为训练数据,以增强模型的学习能力。
  • 多语言支持:MOOER支持中文和英文的语音识别,以及中译英的语音翻译,显示出其多语言处理能

MooER的模型结构

包括Encoder、Adapter和Decoder(Large Language Model,LLM)三个部分。其中,由Encoder对输入的原始音频进行建模,提取特征并获取表征向量。Encoder的输出会送到Adapter进一步下采样,使得每120ms音频输出一组音频Embedding。音频Embedding和文本的Prompt Embedding拼接后,再送进LLM进行对应的下游任务,如语音识别(Automatic Speech Recognition,ASR)、语音翻译(Automatic Speech Translation,AST)等。在模型训练阶段,融合了语音模态和文本模态的数据会按以下形式输入到LLM:

训练数据格式

MooER的训练

我们使用开源的Paraformer语音编码器、Qwen2-7B-instruct大语言模型来初始化Encoder和LLM模块,并随机初始化Adapter模块。训练过程中,Encoder始终固定参数,Adapter和LLM会参与训练和梯度更新。利用自研的夸娥智算平台,我们使用DeepSpeed框架和Zero2策略,基于BF16精度进行训练和推理。经实验发现,训练过程中更新LLM参数能够提升最终音频理解任务的效果。为了提升训练效率,我们采用了LoRA技术,仅更新2%的LLM参数。具体的模型参数规模如下:

MooER 数据集:

该模型的训练数据MT5K(MT 5000h)由部分开源数据和内部数据构成,内部数据的语音识别标签均是由第三方云服务得到的伪标签。语音识别的伪标签经过一个文本翻译模型后,得到语音翻译的伪标签。我们没有对这些伪标签数据做任何的人工筛选。具体数据来源和对应的规模如下:

MooER实验结果:

我们将MooER与多个开源的音频理解大模型进行了对比,包括Paraformer、SenseVoice、Qwen-audio、Whisper-large-v3和SeamlessM4T-v2等。这些模型的训练规模从几万小时到上百万小时不等。对比结果显示,我们的开源模型MooER-5K在六个中文测试集上的CER(字错误率)达到4.21%,在六个英文测试集的WER(词错误率)为17.98%,与其它开源模型相比,MooER-5K的效果更优或几乎持平。特别是在Covost2 zh2en中译英测试集上,MooER的BLEU分数达到了25.2,显著优于其他开源模型,取得了可与工业水平相媲美的效果。基于内部8万小时数据训练的MooER-80k模型,在上述中文测试集上的CER达到了3.50%,在英文测试集上的WER到达了12.66%。

• Paraformer-large: 60,000 hours ASR data
• SenseVoice small: 300,000 hours ASR data
• Qwen-audio: 53,000 hours ASR data + 3700 hours S2TT data + …
• WhisperV3: 1000,000 hours weakly labels, 4000,000 hours pseudo labels
• SeamlessM4T2: 351,000 hours S2TT data, 145,000 hours S2ST data
• MooER-5K: 5,000 hours pseudo labels【伪标签】
• MooER-80K: 80,000 hours pseudo labels【伪标签】

建议

与此同时,我们还得到一些有趣的结论,可以为数据资源和计算资源有限的开发者提供一些建议:

▼Encoder的选择。我们分别对比了无监督(Self-Supervised Learning)训练的W2v-bert 2.0、半监督(Semi-Supervised Learning)训练的Whisper v3和有监督(Supervised Learning)训练的Paraformer。我们发现,采用无监督训练得到的Encoder必须参与到训练过程中,否则模型很难收敛。综合考虑模型效果、参数量以及训练和推理的效率,我们选择Paraformer作为Encoder。

▼音频建模粒度很关键。我们尝试使用240ms、180ms和120ms的粒度进行建模,并发现这一参数对音频与文本的融合效果具有重要影响,同时会影响模型的最终效果和训练的收敛速度。经过评估,我们最终选择每120ms输出一个音频Embedding

▼快速适应到目标垂类。我们仅使用了140h~150h的英文数据进行训练,可以在6个不同来源的英文的测试集上取得一定效果。同时我们尝试将任务迁移到语音翻译(AST)领域,取得了很好的效果。我们相信这个方法同样也适用于小语种、方言或其它低资源的音频理解任务。

▼LLM对音频理解任务的影响。我们发现,在模型训练过程中采用LoRA技术对LLM参数进行更新,可以使训练更快收敛,并且最终取得更好的效果。同时,音频理解任务上的效果也会随着基础LLM效果提升而提升。【LLM模型越大,效果越好。训练参数越多,效果越好】

是否冻结LLM,以及LLM模型的选择

加速训练:

优化了数据加载器部分,在相同配置下可以将训练速度提高4到5倍。同时,我们基于5000小时的训练优化了DeepSpeed的训练策略,并将其重新用于我们8wh内部数据的训练。对于需要解冻编码器的训练,我们使用梯度检查点技术以减少内存使用。我们使用基于Moore Threads的KUAE平台加速大型模型的训练。

训练参数:

应用场景:

  • 实时语音转写:在会议、讲座、课堂等场合,MOOER可以实时将语音转换为文字,便于记录和回顾。
  • 多语言翻译:支持中英文之间的语音翻译,适用于跨国会议、国际交流等场景。
  • 智能客服:在客户服务领域,MOOER可以通过语音识别和翻译功能,提高客服的响应效率和服务质量。
  • 语音助手:集成到智能手机、智能音箱等设备中,提供语音交互服务。
  • 教育辅助:在语言学习中,MOOER可以帮助学习者进行发音校正和语言翻译,

📝 路线图

  •  Technical report 技术报告
  •  Inference code and pretrained ASR/AST models using 5k hours of data
    使用 5k 小时数据的推理代码和预训练的 ASR/AST 模型
  •  Pretrained ASR model using 80k hours of data
    使用 80k 小时数据的预训练 ASR 模型
  •  Traning code for MooER MooER 的训练代码
  •  LLM-based speech-to-speech translation (S2ST, Mandrin Chinese to English)
    LLM 基于语音的语音转语音翻译(S2ST,Mandrin 中文到英文)
  •  GPT-4o-like audio-LLM supporting chat using speech
    类似 GPT-4o 的音频LLM 支持使用语音聊天
  •  Training code and technical report about our new Omni model
    有关我们新 Omni 模型的培训代码和技术报告
  •  Omni audio-LLM that supports multi-turn conversation
    Omni audio-LLM,支持多轮次对话
  •  Pretrained AST and multi-task models using 80k hours of data
    使用 80k 小时数据的预训练 AST 和多任务模型
  •  LLM-based timbre-preserving Speech-to-speech translation
    LLM 基于音色保留的语音到语音翻译