当前位置: 首页 > news >正文

自己怎么注册公司网站流程昆明网站做的好的公司

自己怎么注册公司网站流程,昆明网站做的好的公司,万动力网站,计算机网络编程技术一、前言 在上一篇,我们仅用10行代码就实现了一个音频应用,包含了前后端,实现了“回音壁”的效果。本篇我们将根据回音壁demo的代码详细剖析,从而快速掌握整体框架及Stream类的使用方法。 二、整体框架 之所以说FastRTC能够迅速…

一、前言

在上一篇,我们仅用10行代码就实现了一个音频应用,包含了前后端,实现了“回音壁”的效果。本篇我们将根据回音壁demo的代码详细剖析,从而快速掌握整体框架及Stream类的使用方法。

二、整体框架

之所以说FastRTC能够迅速搭建起应用,它的框架也必定是极简的,大体就分为三个步骤:

(1)定义一个handler函数

顾名思义,就是定义一个处理音频或者视频的handler函数。

在这个函数中,开发者需要根据输入的音频、视频数据进行处理,处理完之后返回。在handler里面就可以内嵌各种AI功能了。

(2)定义一个Stream对象

Stream类是FastRTC中最重要的类,Stream类定义了带有内置界面的音视频流,也可挂载到FastAPI应用中。它的核心功能就包括了三点:

  • 建立点对点连接:主要是服务器和客户端之间的连接
  • 管理媒体轨道:WebRTC中的媒体轨道
  • 生成Gradio交互界面:这个就是它令人着迷的地方,交互界面不需要前端介入来写。

(3)启动

FastRTC提供了3种启动模式:

  • .ui.launch():启动内置的 Gradio 交互界面,用于快速测试和分享音视频流。
  • .fastphone():支持电话呼叫接入音视频流,但需提供 Hugging Face 凭证。
  • .mount(app):将音视频流挂载到 FastAPI 应用,无缝集成现有生产系统

目前我们仅需重点关注ui.launch()即可,ui.lauch()已经足够让我们去体验和实现不同的AI效果。fastphone模式和mount模式后续在合适的场合会介绍到。

三、代码回顾

我们先回顾下上一篇的完整代码:

from fastrtc import Stream, ReplyOnPause
import numpy as npdef echo(audio: tuple[int, np.ndarray]):yield audiostream = Stream(handler=ReplyOnPause(echo),modality="audio", mode="send-receive",
)
stream.ui.launch(server_name="0.0.0.0", server_port=8383)

从代码中可见,ReplyOnPause(echo)为第一步所说的handler函数,echo函数为实际的执行函数,第二步建立了stream对象,第三部则利用ui.lauch()对服务进行了启动。

四、代码剖析

4.1 Stream类

Stream类的详细前面见链接:https://fastrtc.org/reference/stream/

这里解释下用到的几个关键参数:

  • handler:

流处理函数。这个参数是Stream类中最重要的传参,可以是一个方法,也可以是一个类。类的话需要继承StreamHandler或者AsyncStreamHandler。如上所述,handler主要就是处理音频视频流的。

  • modality:

媒体类型,支持3种媒体类型:"video", "audio", "audio-video"。如本次回音壁demo,只用到了音频,就传参“audio”

  • mode:

流的模式。也主要有三种:"send-receive", "receive", "send"。从参数值上可以明显看到,就是双向和单向流的意思。如本次回音壁demo,需要双向传递,就用了"send-receive"。该参数的默认值也是"send-receive",所以不传也不影响。

4.2 ReplyOnPause类

ReplyOnPause是一个内置的handler类,可以直接使用。它的核心功能是能实时处理输入音频流,检测语音停顿,并在停顿发生时触发回复生成函数。

在本次demo中,echo函数就作为ReplyOnPause的参数,作为回复生成函数。我们在跟应用交互的时候,一旦检测到音频中断(也就是断句),就能立马执行echo函数。而echo函数的处理其实也很简单,什么都没做,就把收集到的音频数据原路返回,即yield audio。

所以大家看,fastrtc中连自动断句都已经提供了,实为大大提升效率。

4.3 ui.launch()

最后就是直接启动,这个非常好理解。

由于Stream类的ui属性,是Gradio的Blocks对象,所以lauch函数其实是Gradio里面的东西。熟悉Gradio的小伙伴就很清楚了。

我们主要看下launch函数里面的传参:

server_name:服务器地址,填0.0.0.0即任意外部ip能够访问

server_port:发布端口,指定发布的端口

还有一个很有意思的参数:

share: 如果设定了share=True,代码如下:

stream.ui.launch(share=True)

则会生成一个公网链接来访问。其原理是Gradio官方提供了一个云环境,通过frp穿透机制,从而使得能够在公网访问本地的服务。小伙伴们可以自己试试。

下一篇,我们将会演示FastRTC跟LLM大模型结合的例子。

本专栏系列文章

AI框架工具FastRTC快速上手1——框架搭建及回音壁DEMO-CSDN博客

AI框架工具FastRTC快速上手2——整体框架及Stream类详解-CSDN博客

http://www.dtcms.com/a/476158.html

相关文章:

  • 大数据软件和网站开发那个就业好温州市住房和城乡建设厅网站首页
  • 网站开发的投标案例seo网站优化服务商
  • 南宁关键词网站排名注册网站云空间
  • 如题,HTML如何将两张图片_一张放在网站顶部做背景,另一张放在尾部做背景?免费手游代理平台
  • 网站托管公司凡科网登录电脑端
  • 购买模板建站宣传推广方案怎么写
  • SSM聚合项目部署
  • 做网站攻击cpa个人网站怎么做
  • 做视频网站公司要怎么做的网站访问跳出率
  • 网站上传的流程微信公众号网站制作
  • 做招聘网站毕业设计有没有教做零食的网站
  • 建设部网站已经公布黑名单做个网站一年要多少钱
  • 设计网站费用淘宝电脑版官网首页登录入口
  • 辽宁网站建设排名wordpress主题包安装
  • 做网站和论坛区别最近发生的重大军事新闻
  • 模仿别人网站wordpress导航菜单插件
  • 南京网站建站公司wordpress建立购物网站
  • 鲨鱼座 网站建设手机html编程软件app
  • dede网站仿站经典工具天元建设集团有限公司租赁公司
  • 58同城西安网站建设杭州建站软件
  • 该怎么跟程序员谈做网站做网站数据对电脑要求
  • 建设银行官网网站首页网站建设步骤电脑
  • 做网站 违法网站用小程序
  • 想建设个网站卖东西北京科技公司排名
  • 做网站为什么要备案网站集约化建设需求
  • 团购网站大全做相册九江seo优化
  • 中国商标注册网官方网站深度网站建设
  • 做网站会用到的色彩代码单词网站管理助手 ftp
  • 郑州视频网站建设大概多少钱做珠宝网站
  • 会宁网站建设网站备案依据