云南哪几个建网站公司网站维护员

diannao/2026/1/16 18:26:03/文章来源:
云南哪几个建网站公司,网站维护员,怎么选择佛山网站设计,asp网站后台编辑器直播语音实时转字幕#xff1a; 基于Whisper的实时直播语音转录或翻译是一项使用OpenAI的Whisper模型实现的技术#xff0c;它能够实时将直播中的语音内容转录成文本#xff0c;甚至翻译成另一种语言。这一过程大致分为三个步骤#xff1a;捕获直播音频流、语音识别#x…直播语音实时转字幕 基于Whisper的实时直播语音转录或翻译是一项使用OpenAI的Whisper模型实现的技术它能够实时将直播中的语音内容转录成文本甚至翻译成另一种语言。这一过程大致分为三个步骤捕获直播音频流、语音识别转录以及翻译如果需要。下面详细解释其原理和意义。 原理 捕获直播音频流 首先需要从直播源捕获音频流。这通常通过软件工具实现如ffmpeg或streamlink它们可以接入直播平台如Twitch、YouTube等的直播流并提取音频数据。 语音识别转录 捕获到的音频流被送入Whisper模型进行语音识别。Whisper是OpenAI开发的一款强大的语音识别模型它能够准确地将语音转换成文本。该模型训练于多种语言的大量数据集上因此具有高度的准确性和多语言识别能力。 翻译可选 如果需要将转录的文本翻译成另一种语言可以进一步使用机器翻译模型如OpenAI的GPT、Google Translate等对转录文本进行翻译。 意义 提高可及性 通过实时转录直播语音听障人士和不懂直播原语言的观众也能够理解内容大大提高了直播内容的可及性。 内容归档与搜索 转录生成的文本可以作为直播内容的归档便于未来搜索和回顾。相比视频数据文本更容易被搜索引擎索引从而提高内容的发现性。 多语言翻译 实时翻译可以让不同语言的观众理解和享受直播内容促进跨语言、跨文化的交流。 学习和教育 对于教育直播实时转录和翻译能够帮助学生更好地理解教学内容尤其是对于非母语学习者。 内容审核 转录文本还可以用于自动内容审核帮助直播平台监控和管理不适宜的内容。  一、部署  下载stream-translator GitHub - fortypercnt/stream-translator 实战whisper语音识别第一天部署服务器可远程访问实时语音转文字全部代码和详细部署步骤-CSDN博客 如果在之前的文章实战whisper语音识别第一天部署服务器配置过环境可跳过下面安装。 git clone https://github.com/fortypercnt/stream-translator.git pip install -r requirements.txt  模型下载  large-v3模型https://huggingface.co/Systran/faster-whisper-large-v3/tree/main large-v2模型https://huggingface.co/guillaumekln/faster-whisper-large-v2/tree/main large-v2模型https://huggingface.co/guillaumekln/faster-whisper-large-v1/tree/main medium模型https://huggingface.co/guillaumekln/faster-whisper-medium/tree/main small模型https://huggingface.co/guillaumekln/faster-whisper-small/tree/main base模型https://huggingface.co/guillaumekln/faster-whisper-base/tree/main tiny模型https://huggingface.co/guillaumekln/faster-whisper-tiny/tree/main 经测试large-v3模型需要10G显存以上。显存不够的可以用小模型。 使用方法 python translator.py 直播链接 这个translator.py是进行实时翻译不想翻译可运行下面代码 二、代码 translator1.py import argparse import sys import signal from datetime import datetimeimport ffmpeg import numpy as np import whisper from whisper.audio import SAMPLE_RATEclass RingBuffer:def __init__(self, size):self.size sizeself.data []self.full Falseself.cur 0def append(self, x):if self.size 0:returnif self.full:self.data[self.cur] xself.cur (self.cur 1) % self.sizeelse:self.data.append(x)if len(self.data) self.size:self.full Truedef get_all(self):all_data []for i in range(len(self.data)):idx (i self.cur) % self.sizeall_data.append(self.data[idx])return all_datadef clear(self):self.data []self.full Falseself.cur 0def open_stream(stream, direct_url, preferred_quality):if direct_url:try:process (ffmpeg.input(stream, loglevelpanic).output(pipe:, formats16le, acodecpcm_s16le, ac1, arSAMPLE_RATE).run_async(pipe_stdoutTrue))except ffmpeg.Error as e:raise RuntimeError(fFailed to load audio: {e.stderr.decode()}) from ereturn process, Noneimport streamlinkimport subprocessimport threadingstream_options streamlink.streams(stream)if not stream_options:print(No playable streams found on this URL:, stream)sys.exit(0)option Nonefor quality in [preferred_quality, audio_only, audio_mp4a, audio_opus, best]:if quality in stream_options:option qualitybreakif option is None:# Fallbackoption next(iter(stream_options.values()))def writer(streamlink_proc, ffmpeg_proc):while (not streamlink_proc.poll()) and (not ffmpeg_proc.poll()):try:chunk streamlink_proc.stdout.read(1024)ffmpeg_proc.stdin.write(chunk)except (BrokenPipeError, OSError):passcmd [streamlink, stream, option, -O]streamlink_process subprocess.Popen(cmd, stdoutsubprocess.PIPE)try:ffmpeg_process (ffmpeg.input(pipe:, loglevelpanic).output(pipe:, formats16le, acodecpcm_s16le, ac1, arSAMPLE_RATE).run_async(pipe_stdinTrue, pipe_stdoutTrue))except ffmpeg.Error as e:raise RuntimeError(fFailed to load audio: {e.stderr.decode()}) from ethread threading.Thread(targetwriter, args(streamlink_process, ffmpeg_process))thread.start()return ffmpeg_process, streamlink_processdef main(url, modellarge-v3, interval5, preferred_qualityaudio_only, direct_urlFalse, **decode_options):print(Loading model...)model whisper.load_model(model)print(Opening stream...)ffmpeg_process, _ open_stream(url, direct_url, preferred_quality)def handler(signum, frame):ffmpeg_process.kill()sys.exit(0)signal.signal(signal.SIGINT, handler)n_bytes interval * SAMPLE_RATE * 2 # Factor 2 comes from reading the int16 stream as bytesaudio_buffer RingBuffer(1) # No need for a history buffer since were just doing real-time transcriptiontry:while True:in_bytes ffmpeg_process.stdout.read(n_bytes)if not in_bytes:breakaudio np.frombuffer(in_bytes, np.int16).flatten().astype(np.float32) / 32768.0audio_buffer.append(audio)result model.transcribe(np.concatenate(audio_buffer.get_all()), **decode_options)print(f{datetime.now().strftime(%H:%M:%S)} {result[text]})audio_buffer.clear() # Clear the buffer after each transcriptionfinally:ffmpeg_process.kill()def cli():parser argparse.ArgumentParser(descriptionReal-time audio transcription from streams.)parser.add_argument(URL, typestr, helpStream website and channel name, e.g. twitch.tv/forsen)parser.add_argument(--model, typestr, defaultlarge-v3, helpWhisper model for transcription.)parser.add_argument(--interval, typeint, default5, helpInterval between transcription in seconds.)parser.add_argument(--preferred_quality, typestr, defaultaudio_only, helpPreferred stream quality.)parser.add_argument(--direct_url, actionstore_true, helpPass the URL directly to ffmpeg.)args parser.parse_args().__dict__url args.pop(URL)main(url, **args)if __name__ __main__:cli()python translator1.py https://www.huya.com/kpl 虎牙kpl的直播文字转录 还有繁体字修改代码繁体转简体 pip install opencc-python-reimplementedtranslator2.py import argparse import sys import signal from datetime import datetimeimport ffmpeg import numpy as np import whisper from whisper.audio import SAMPLE_RATE import openccclass RingBuffer:def __init__(self, size):self.size sizeself.data []self.full Falseself.cur 0def append(self, x):if self.size 0:returnif self.full:self.data[self.cur] xself.cur (self.cur 1) % self.sizeelse:self.data.append(x)if len(self.data) self.size:self.full Truedef get_all(self):all_data []for i in range(len(self.data)):idx (i self.cur) % self.sizeall_data.append(self.data[idx])return all_datadef clear(self):self.data []self.full Falseself.cur 0def open_stream(stream, direct_url, preferred_quality):if direct_url:try:process (ffmpeg.input(stream, loglevelpanic).output(pipe:, formats16le, acodecpcm_s16le, ac1, arSAMPLE_RATE).run_async(pipe_stdoutTrue))except ffmpeg.Error as e:raise RuntimeError(fFailed to load audio: {e.stderr.decode()}) from ereturn process, Noneimport streamlinkimport subprocessimport threadingstream_options streamlink.streams(stream)if not stream_options:print(No playable streams found on this URL:, stream)sys.exit(0)option Nonefor quality in [preferred_quality, audio_only, audio_mp4a, audio_opus, best]:if quality in stream_options:option qualitybreakif option is None:# Fallbackoption next(iter(stream_options.values()))def writer(streamlink_proc, ffmpeg_proc):while (not streamlink_proc.poll()) and (not ffmpeg_proc.poll()):try:chunk streamlink_proc.stdout.read(1024)ffmpeg_proc.stdin.write(chunk)except (BrokenPipeError, OSError):passcmd [streamlink, stream, option, -O]streamlink_process subprocess.Popen(cmd, stdoutsubprocess.PIPE)try:ffmpeg_process (ffmpeg.input(pipe:, loglevelpanic).output(pipe:, formats16le, acodecpcm_s16le, ac1, arSAMPLE_RATE).run_async(pipe_stdinTrue, pipe_stdoutTrue))except ffmpeg.Error as e:raise RuntimeError(fFailed to load audio: {e.stderr.decode()}) from ethread threading.Thread(targetwriter, args(streamlink_process, ffmpeg_process))thread.start()return ffmpeg_process, streamlink_processdef main(url, modellarge-v3, interval5, preferred_qualityaudio_only, direct_urlFalse, **decode_options):print(Loading model...)model whisper.load_model(model)print(Opening stream...)ffmpeg_process, _ open_stream(url, direct_url, preferred_quality)converter opencc.OpenCC(t2s) # 创建繁体转简体的转换器def handler(signum, frame):ffmpeg_process.kill()sys.exit(0)signal.signal(signal.SIGINT, handler)n_bytes interval * SAMPLE_RATE * 2 # Factor 2 comes from reading the int16 stream as bytesaudio_buffer RingBuffer(1)try:while True:in_bytes ffmpeg_process.stdout.read(n_bytes)if not in_bytes:breakaudio np.frombuffer(in_bytes, np.int16).flatten().astype(np.float32) / 32768.0audio_buffer.append(audio)result model.transcribe(np.concatenate(audio_buffer.get_all()), **decode_options)result_text converter.convert(result[text]) # 将繁体转换为简体print(f{datetime.now().strftime(%H:%M:%S)} {result_text})audio_buffer.clear()finally:ffmpeg_process.kill()def cli():parser argparse.ArgumentParser(descriptionReal-time audio transcription from streams.)parser.add_argument(URL, typestr, helpStream website and channel name, e.g. twitch.tv/forsen)parser.add_argument(--model, typestr, defaultlarge-v3, helpWhisper model for transcription.)parser.add_argument(--interval, typeint, default5, helpInterval between transcription in seconds.)parser.add_argument(--preferred_quality, typestr, defaultaudio_only, helpPreferred stream quality.)parser.add_argument(--direct_url, actionstore_true, helpPass the URL directly to ffmpeg.)args parser.parse_args().__dict__url args.pop(URL)main(url, **args)if __name__ __main__:cli()python translator2.py https://www.huya.com/kpl

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91351.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站怎么被百度收录营销网站建设网站设计

今日学习的文章链接和视频链接 leetcode题目地址:225. 用队列实现栈 代码随想录题解地址:代码随想录 题目简介 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、p…

vue做的网站多么网站建设策略营销

基于matlab的孪生支持向量机(Twin support vector machine,TWSVM)是SVM的一种变形算法。该采用WSVM进行二分类,程序已注释数据可更换自己的,程序已调通,可直接运行。 126matlabTWSVM模式识别 (xiaohongshu.com)

泉州网站制作企业谁分享一个免费网站2021

欢迎您成为我的读者,希望这篇文章能给你一些帮助。前言今天在群里看到朋友讨论把粉丝称为读者,这让我内心特别激动。以前我还是比较关注自己的文章阅读量,有没有人转发,今天新增多少个关注。而现在,我的关注点变了&…

网站建设 通讯员软件属于网站开发吗

LineControl Editor是一款基于Bootstrap的响应式、所见即所得的富文本编辑器jQuery插件。该富文本编辑器可以使用textarea元素或任何一个容器元素来生成,它拥有常见富文本编辑器的所有功能,使用快捷方便。插件依赖该富文本编辑器插件依赖于jQuery2.1.0和…

关于公司网站怎么做设计ui是什么意思

一、引言 1.水资源的重要性 水是生命之源,是人类生存和发展的基础。它是生态系统中不可或缺的组成部分,对于维系地球上的生命、农业、工业、城市发展等方面都具有至关重要的作用。 2.水质安全与人类健康的关系 水质安全直接关系到人类的健康和生存。水中的污染物和有害物…

17网站一起做网店潮汕wordpress 调用评论数量

题目名称: 寻找只出现一次的两个数字 题目内容: 在一个数组中,只有两个数字出现了一次,其他所有数字都出现了两次。本篇博客将介绍如何编写一个函数来找出这两个只出现一次的数字。 解题思路: 要解决这个问题&#…

绍兴做外贸网站的公司网站建设价格兴田德润i网址多少

错误处理: 许多系统调用和函数在失败后,会在失败时设置外部变量errno的值来指明失败原因。许多不同的函数库都把这个变量作为报告错误的标准方法。程序必须在函数报告出错后立刻检查errno变量,因为它可能被下一个函数调用所覆盖&#xff…

吗网站建设网站建设 制作

仓库管理系统:仓库管理系统是一种基于互联网对实际仓库的管理平台,旨在提供一个方便、快捷、安全的存取货物和查询商品信息平台。该系统通过在线用户登录查询,可以线上操作线下具体出/入库操作、查询仓库商品信息、提高仓库运作效率&#xff…

南宁自助模板建站微软雅黑做网站会涉及到侵权吗

item_search-按关键字搜索商品API测试工具 alibaba.item_search 公共参数 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,…

php网站开发第三章教育网站官网

本系列文章简介: 在本系列文章中,我们将深入探索Dubbo分布式服务框架的原理和实战应用。我们将从Dubbo的架构设计开始,详细解析其内部的工作原理和核心组件。我们将探讨Dubbo的服务治理机制、负载均衡策略、容错机制等,并通过实际…

乐之网站制作江苏国龙翔建设有限公司网站

MFC 中, ListBox 与 ComboBox 中的项在设置了高度的情况下如何实现文本的水平居中与垂直居中???ListBox 与 ComboBox 中的数据均为动态添加文本内容含有数字、英文、中文void CMyComboBox::DrawItem(LPDRAWITEMSTRUCT lpDrawItemS…

上海做网站 公司有哪些辽宁建设工程信息网新域名

SSL证书如果不及时更新,可能会带来以下问题: 1.影响体验和信誉: - 如果你的网站SSL证书过期了,现在大部分浏览器都会提醒用户这个网站的安全证书已经失效。这就很可能让用户觉得你的网站不太安全,不敢继续浏览&#x…

企业案例网站免费cms内容管理系统

背景:考虑到用户的不同需求,图像编辑是一项实用而富有挑战性的任务,其中最困难的部分之一是准确描述编辑后的图像应该是什么样子。 创新点:在本文作者提出了一种新的编辑形式,称为模仿编辑,以帮助用户更方…

论坛型网站 建站宣传册设计及网站建设

前言 Vue CLI是Vue.js项目的官方脚手架,基于Node.js与Webpack构建。安装Vue CLI前需确保Node.js已安装,随后通过npm全局安装。Vue CLI能迅速创建和管理Vue.js项目,提升开发效率。而Webpack则负责资源打包,通过配置文件管理依赖、插…

荥阳市建设局 网站展馆设计收费标准

使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已 经为我们提供了这样一个功能。 SELECT*FROMtableLIMIT [offset,]rows |rows OFFSET offsetLIMIT 子句可以被用于强制 SELECT 语句返回…

pc端与手机端网站开发的区别手机制作公章的软件

DefaultListableBeanFactory源码分析文章目录 一、概述 二、关键结构与存储 Bean定义的存储结构ConcurrentHashMap的使用和意义 三、核心功能解析 四、总结 DefaultListableBeanFactory源码分析 一、概述 DefaultListableBeanFactory 是 Spring 框架中的一个核心类&#xff…

有高并发,高访问量网站开发兰州优化网站公司

目录 部署模式概述 1. Local Mode 2. Standalone Mode 3. YARN Mode 4. Mesos Mode 5. Kubernetes Mode 部署模式选择 部署模式概述 Apache Spark支持多种部署模式,这些模式决定了如何在集群上启动和运行你的Spark应用程序。以下是Spark支持的主要部署模式&a…

网站建站平台大学生网站模板

在开发高性能的C应用中,数据库操作的效率往往成为一个瓶颈。传统的同步数据库操作在等待数据库响应时会阻塞程序的执行,导致整体性能下降。为了解决这个问题,异步操作成为了一个重要的技术手段。 本文将详细介绍如何在C中使用MySQL的异步接口…

wordpress 插件下载站怎么做网站文字优化

跳跳! 题目描述 你是一只小跳蛙,你特别擅长在各种地方跳来跳去。 这一天,你和朋友小 F 一起出去玩耍的时候,遇到了一堆高矮不同的石头,其中第 i i i 块的石头高度为 h i h_i hi​,地面的高度是 h 0 …

手机网站版面设计机械代加工厂家

http://api.map.baidu.com/lbsapi/creatmap/index.html转载于:https://www.cnblogs.com/qinqiu/p/4476747.html