当前位置:   article > 正文

PaddleHub+PaddleSpeech:文心大模型--你说我画_paddlehub paddlespeech

paddlehub paddlespeech

1、项目背景

诗词,是指以古体诗、近体诗和格律词为代表的中国汉族传统诗歌。亦是汉字文化圈的特色之一。通常认为,诗较为适合“言志”,而词则更为适合“抒情”。
诗词是阐述心灵的文学艺术,而诗人、词人则需要掌握成熟的艺术技巧,并按照严格韵律要求,用凝练的语言、绵密的章法、充沛的情感以及丰富的意象来高度集中地表现社会生活和人类精神世界。
中国诗起源于先秦,鼎盛于唐代。中国词起源于隋唐,流行于宋代。中华诗词源自民间,其实是一种草根文学。在21世纪的中国,诗词仍然深受普通大众青睐。

小孩的世界

小孩眼中的世界往往都是最纯洁的,最真实的,下面通过几幅诗词配图就可以看出孩子们对诗词的理解。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

该项目便以诗词配图来展示文心大模型的强大之处

文心大模型

AIGC(Artificial Intelligence Generated Content)登上舞台,以高效、精准、定制化等能力特征,重新定义了内容生产方式。

面向语言理解、语言生成等NLP场景文心大模型提供的ERNIE 3.0 系列模型,可以处理几乎所有自然语言理解和生成的任务。我们提供“零样本”的直接体验功能,您可以在页面体验预置的写作文、写文案、写摘要、对对联、自由问答、写小说、补全文本等任务
面向跨模态文生图场景的文心大模型提供ERNIE-ViLG提供支持文图生成,通过文本描述来生成相应图片的能力

2、项目内容

目前ERNIE-ViLG的文心大模型API已经登入PaddleHub,只需通过4行代码就能实现强大的文图生成能力! 你可以输入一段文本描述以及生成风格,模型就会根据输入的内容自动创作出符合要求的图像。 不需要我们再去申请AK和SK了,简单,方便,快捷,YYDS。

唐诗是中华民族珍贵的文化遗产之一,是中华文化宝库中的一颗明珠,同时也对世界上许多国家的文化发展产生了很大影响,对于后人研究唐代的政治、民情、风俗、文化等都有重要的参考意义。

宋代盛行的一种中国文学体裁,宋词是一种相对于古体诗的新体诗歌之一,为宋代儒客文人智慧精华,标志宋代文学的最高成就。宋词句子有长有短,便于歌唱。因是合乐的歌词,故又称曲子词、乐府、乐章、长短句、诗余、琴趣等。

本项目以诗词配图为例,通过PaddleHub调用ERNIE-ViLG的文心大模型来进行实现。但是这样玩起来有点普通平常,如何添油加醋让项目更有趣哪?

经过睿思提醒,决定加入语音识别的内容完善项目。比如念完一首诗,语音识别成文字,再利用文心大模型实现文字生成图片。这样再也不用担心读不懂诗的意境了,尤其是年龄比较好的孩子,读不懂诗词中的美,该项目可以帮助他们进入作者的世界,他们做的只需要读完自己想了解的诗词就可以了。中国的诗词文化博大精深,抒情,写景各种题材丰富多彩。下面就让我们一起体验ERNIE-ViLG的本领吧!!

2.1安装依赖

#安装并更新paddlehub
!pip install --upgrade paddlehub
!pip install docarray
  • 1
  • 2
  • 3

2.2模型导入

import paddlehub as hub
from docarray import DocumentArray, Document
ernie_vilg_module = hub.Module(name='ernie_vilg')
  • 1
  • 2
  • 3

2.3参数说明


  def generate_image(
            text_prompts:str,
            style: Optional[str] = "油画",
            width_height: Optional[List[int]] = [1280, 768],
            topk: Optional[int] = 10,
            output_dir: Optional[str] = 'ernievilg_output')

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

参数

  • text_prompts(str): 输入的语句,描述想要生成的图像的内容。通常比较有效的构造方式为 “一段描述性的文字内容” + “指定艺术家的名字”,例如:一条美丽的彩虹,毕加索。
  • style(Optional[str]): 生成图像的风格,当前支持’油画’,‘水彩’,‘粉笔画’,‘卡通’,‘儿童画’,‘蜡笔画’。不指定时,会根据text_prompts决定,也可指定艺术家,各种艺术家的风格可以参考艺术家风格
  • width_height:生成图片的宽和高
  • topk(Optional[int]): 保存前多少张图,最多保存10。
  • output_dir(Optional[str]): 保存输出图像的目录,默认为"ernievilg_output"。

注意:这里最重要的是text_prompts

Prompt = [形容词] [主语] ,[细节设定], [修饰语或者艺术家]

简单来说:简单,但是细节要适度,下面通过例子来说明

2.4模型推理

#第一次尝试,只指定text_prompts
results = ernie_vilg_module.generate_image(text_prompts="千山鸟飞绝,万径人踪灭。孤舟蓑笠翁,独钓寒江雪。", output_dir='./ernievilg_output1')
  • 1
  • 2

在这里插入图片描述

#第二次尝试,加上指定风格
results = ernie_vilg_module.generate_image(text_prompts="千山鸟飞绝,万径人踪灭。孤舟蓑笠翁,独钓寒江雪。", style="油画", output_dir='./ernievilg_output2')
  • 1
  • 2

在这里插入图片描述

#第三次尝试,对text_prompts进行说明
results = ernie_vilg_module.generate_image(text_prompts="江面小船上,一位披戴着蓑笠的老翁,独自在大雪覆盖的寒冷江面上垂钓。所有的山上已经看不到鸟的身影,所有的路上都不见人的踪迹。山水画", output_dir='./ernievilg_output3')
  • 1
  • 2

在这里插入图片描述

2.5更多演示

有时候诗比译文描述的更清楚,有时候译文更优,所以大家可以自行尝试。

#唐诗1
results = ernie_vilg_module.generate_image(text_prompts="墙角数枝梅,凌寒独自开.遥知不是雪,为有暗香来", output_dir='./ernievilg_output4')
  • 1
  • 2

在这里插入图片描述

#唐诗2
results = ernie_vilg_module.generate_image(text_prompts="高高的柳树长出碧玉一样嫩绿的树叶,千万条下垂的柳枝像绿色的丝带随风飘摇。", output_dir='./ernievilg_output5')
DocumentArray([Document().load_pil_image_to_datauri(image) for image in results[:6]]).plot_image_sprites()
  • 1
  • 2
  • 3

在这里插入图片描述

#宋词1
results = ernie_vilg_module.generate_image(text_prompts="林花谢了春红,太匆匆。无奈朝来寒雨晚来风。", output_dir='./ernievilg_output6')
DocumentArray([Document().load_pil_image_to_datauri(image) for image in results[:6]]).plot_image_sprites()
  • 1
  • 2
  • 3

在这里插入图片描述

#宋词2
results = ernie_vilg_module.generate_image(text_prompts="碧云天,黄叶地,秋色连波,波上寒烟翠", output_dir='./ernievilg_output7')
DocumentArray([Document().load_pil_image_to_datauri(image) for image in results[:6]]).plot_image_sprites()
  • 1
  • 2
  • 3

在这里插入图片描述

3、项目升级

加入语音识别,将读完的诗词,通过PaddleSpeech语音识别,然后在利用上面的文生图,生成配图

3.1安装依赖

#安装paddlespeech
!pip install paddlespeech
# 下载nltk数据包,放入到nltk可以检索的路径下
%cd /home/aistudio
!wget -P data https://paddlespeech.bj.bcebos.com/Parakeet/tools/nltk_data.tar.gz
!tar zxvf data/nltk_data.tar.gz
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3.2快速使用paddlespeech

参考项目:【PaddleSpeech】一键预测,快速上手Speech开发任务

3.2.1 已有音频文件

直接指定待识别的录音,audio_file

注意:

这里的音频文件只能是wav文件,这里使用的梅花.wav是作者录音。

音频时长50s内

wav_file = '梅花.wav'
output = model.speech_recognize(wav_file)
results = ernie_vilg_module.generate_image(text_prompts=output, output_dir='./ernievilg_output8')
DocumentArray([Document().load_pil_image_to_datauri(image) for image in results[:6]]).plot_image_sprites()
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

3.2.2 没有音频文件

PaddleSpeech是all-in-one 的语音算法工具箱,包含多种领先国际水平的语音算法与预训练模型。你可以从中选择各种语音处理工具以及预训练模型,支持语音识别,语音合成,声音分类,声纹识别,标点恢复,语音翻译等多种功能。

这里我们使用PaddleSpeech合成一段音频,然后在进行文生图。虽然有点多余,但是实际部署的话就不会出现这种情况。

#语音合成
from paddlespeech.cli.tts.infer import TTSExecutor
tts = TTSExecutor()
tts(text="墙角数枝梅,凌寒独自开.遥知不是雪,为有暗香来。", output="output.wav")
  • 1
  • 2
  • 3
  • 4
from paddlespeech.cli.asr.infer import ASRExecutor
asr = ASRExecutor()
output = asr(audio_file="output.wav")
results = ernie_vilg_module.generate_image(text_prompts=output, output_dir='./ernievilg_output9')
vilg_output9')
DocumentArray([Document().load_pil_image_to_datauri(image) for image in results[:6]]).plot_image_sprites()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

4、项目总结

ERNIE-ViLG的文心大模型非常强大,生成的图片怎一个美字了得,诗词的效果都如此的好,要是换做白话文进行描述那效果肯定会更好。另外通过PaddleSpeech进行诗词的音频识别,然后根据识别的内容进行图片的生成。这一应用可以帮助大家更好的领略诗词之美。尤其是小孩子读不懂诗词里面描绘的内容,通过该功能可以帮助他们拓宽眼界,增长见识。

欢迎大家尝试。

作者:Dream拒杰

改进空间:

在进行语音识别的时候,有些同音字会出现混乱,往后有空的时候研究一下PaddleSpeech再来填坑。

部署应用起来才能体现出这个项目的有点,努力学习部署,再来填坑。

参考项目:

使用文心大模型ERNIE-ViLG进行高质量文图生成

基于PaddleHub的口罩检测

【PaddleSpeech】一键预测,快速上手Speech开发任务

此文章为搬运
原项目链接

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/791095
推荐阅读
相关标签
  

闽ICP备14008679号