有效的人类姿势估计
介绍
在计算机视觉的领域内,人类的姿势估计是一个迷人的领域,应用程序从增加现实和游戏扩展到机械自治和医疗保健。本文阐明了人类姿势估计的复杂性,其意义,基本进步和引人注目的应用。
姿势估计是计算机视觉内部有趣的领域,包括认识到关注一个人的身体以获取并分析其姿势的关键。我们的目标是将这项创新带入瑜伽领域,从而使我们能够从图片中认识并对瑜伽姿势进行分类。
学习目标
- 深入了解人类姿势估计原理及其在计算机视觉中的重要性。
- 理解人类姿势估计技术如何通过个性化指导和实时反馈来增强瑜伽实践。
- 在使用Python和相关图书馆为瑜伽应用中实施人类姿势估计算法方面发展实用技能。
本文作为数据科学博客马拉松的一部分发表。
目录
- 了解人姿势估计
- 自下而上与自上而下的姿势估计方法
- 流行的图书馆和工具
- 增强的人类姿势估计:一种简单有效的方法
- 人姿势估计的应用
- 常见问题
了解人姿势估计
人姿势估计是一项计算机视觉任务,涉及以图形方式表示人的方向。这种技术,利用基于模型的方法,识别和分类图像或视频中人体部位和关节的姿势。关键在于捕获一组坐标,定义腕,肩膀和膝盖等关节,这些关节共同描述了一个人的姿势。
人姿势估计的重要性
人们的检测随着机器学习算法而演变,使计算机能够通过姿势检测和跟踪来理解人类的肢体语言。这项技术已成为商业上可行的,影响了安全,商业智能,健康和安全以及娱乐等各种行业。值得注意的是,在冠状病毒大流行时代,实时姿势检测有助于实施社会疏远措施。
2D和3D人类姿势估计之间的对比度
存在两种主要方法是2D姿势估计和3D姿势估计。以前的量规会在2D空间中的人体关节区域,而最后提到的人则通过预见额外的Z维度将2D图片更改为3D抗议。 3D姿势估计尽管具有挑战性,但可以在表示形式中进行准确的空间定位。
人类姿势估计模型的类型
人类姿势估计模型分为三种主要类型:
- 基于骨架的模型:代表用于3D和2D姿势估计的骨骼结构。
- 基于轮廓的模型:侧重于2D姿势估计,强调身体的外观和形状。
- 基于体积的模型:用于3D姿势估计的使用,利用3D人体模型和姿势。
自下而上与自上而下的姿势估计方法
人类姿势估计方法的方法大致分为两种方法:自下而上和自上而下。自下而上,可以单独评估每个身体关节,而自上而下的则首先采用身体探测器,并确定发现的边界框中的关节。
了解人姿势估计的工作涉及研究基本结构,模型体系结构概述以及姿势估计的各种方法。该过程包括绝对姿势估计,相对姿势估计及其组合。
流行的图书馆和工具
几个开源库有助于人类姿势估计:
- OpenPose:支持2D和3D姿势估计的多人系统。
- 摆放:建立在Tensorflow.js上,提供实时姿势估计模型。
- 致密:将人类像素从2D RGB图像映射到基于3D表面的模型。
- 字母:使用自上而下方法的实时多人姿势估计库。
- HRNET(高分辨率网):适用于高准确的关键点热图预测。
增强的人类姿势估计:一种简单有效的方法
现在让我们从简单的人类姿势估计代码开始,遵循某些步骤。
步骤1:设置舞台
为了开始我们的旅程,我们需要通过安装必要的库来建立环境。 OpenCV,Numpy和Mediapipe对于我们的项目至关重要。执行以下命令安装它们:
!
我们在本文中介绍了Mediapipe,这是一个由Google开发的开源框架,用于构建针对计算机视觉任务的机器学习管道。 MediaPipe简化了复杂的视觉应用的实现,为人类姿势估计的预训练模型提供了最小的努力。其跨平台功能可确保在移动设备,Web应用程序和台式机上保持一致的性能,而其实时处理的设计则可以进行快速的视频输入分析。
步骤2:导入必要的库
导入数学 导入CV2 导入numpy作为NP 从时间进口时间 导入Mediapipe作为MP 导入matplotlib.pyplot作为PLT 来自ipython.display导入html
- `Math':提供计算的数学功能。
- `cv2`:用于计算机视觉任务的OPENCV库,例如图像操纵和处理。
- `numpy as np`:用于数值计算的Numpy库,并支持数量和矩阵。
- “时间”:用于工作时间的模块,在此处用于测量执行时间。
- “ MediaPipe作为MP`:用于构建各种媒体类型的感知管道的MediaPipe框架。
- `matplotlib.pyplot as plt`:matplotlib库,用于创建图和可视化。
- `ipython.display导入html`:ipython模块,用于在笔记本中显示HTML内容。
步骤3:Initialze MediaPipe软件包
设置MediaPipe的姿势和绘制实用程序,以进行姿势检测和可视化。
#初始化MediaPipe姿势类。 mp_pose = mp.solutions.pose #设置姿势功能。 姿势= mp_pose.pose(static_image_mode = true,min_detection_confidence = 0.3,model_complexity = 2) #初始化MediaPipe绘图类,可用于注释。 mp_drawing = mp.solutions.drawing_utils
- 这些行从MediaPipe框架中初始化必要的组件来执行姿势估计任务。
- mp_pose = mp.solutions.pose初始化介质姿势类,启用姿势估计功能。
- pose = mp_pose.pose(static_image_mode = true,min_detection_confidence = 0.3,model_complexity = 2)用特定参数设置姿势函数,例如静态图像模式,最小检测置信度和模型复杂性。
- mp_drawing = mp.solutions.drawing_utils初始化了MediaPipe Drawing Utilities类,该类别提供了用姿势地标和连接注释图像的功能,从而促进了姿势估计结果的可视化。
步骤4:加载和显示图像
使用OpenCV加载图像并matplotlib显示它。
sample_img = cv2.imread('/content/istockphoto-664637378-612x612.jpg') plt.figure(无花果= [10,10]) plt.title(“ sample_image”) plt.axis('off') plt.imshow(sample_img [:,:, :, :: 1]); plt.show()
- 此代码段使用OPENCV库(cv2.imread())从指定的文件路径加载示例图像。
- 然后,它使用matplotlib在指定尺寸(plt.figure(figsize = [10,10]))的图中显示加载的图像),title(plt.title(“ sample image”)),没有轴tick(plt.axis('off'))。
- 最终使用plt.imshow()函数显示了图像,该功能会在指定的图中照顾显示图像。如Matplotlib所期望的RGB图像,使用[::,:::::::::::::::::::: - 1]将图像从BGR转换为RGB格式。
步骤5:检测和打印地标
将图像转换为RGB,并使用MediaPipe检测姿势地标。打印前两个检测到的地标(例如,鼻子,left_eye_inner)。
键盘识别
Keypoint_landmark
#将图像转换为RGB格式后执行姿势检测。 结果= pose.process(cv2.cvtcolor(sample_img,cv2.color_bgr2rgb)) #检查是否找到任何地标。 如果结果。pose_landmarks: #迭代两次,因为我们只想显示前两个地标。 对于我在范围(2)中: #显示发现的归一化地标。 print(f'{mp_pose.poselandmark(i).name}:\ n {results.pose_landmarks.landmark [mp_pose.poselandmark(i).value] .value] .value]}')
- 使用OpenCV的CV2.CVTCOLOR()函数将其转换为RGB格式后,该代码段在样本图像上执行姿势检测。
- 然后,它使用结果检查图像中是否发现了任何姿势地标。
- 如果发现地标,它将在前两个地标进行迭代,并打印其名称和坐标。
- 具有里程碑意义的名称是使用mp_pose.poselandmark(i).NAME获得的,并且使用results.pose_landmarks.landmarks.landmark [mp_pose.poselandmark(i).value]访问坐标。
输出:
鼻子: X:0.7144814729690552 Y:0.3049055337905884 Z:-0.1483774036169052 可见度:0.9999918937683105 left_eye_inner: X:0.7115224599838257 Y:0.2835153341293335 Z:-0.13594578206539154 可见性:0.9999727010726929
步骤6:在图像上画地标
创建图像的副本,使用MediaPipe实用程序绘制检测到的地标,然后显示。
#创建示例图像的副本以绘制地标。 img_copy = sample_img.copy() #检查是否找到任何地标。 如果结果。pose_landmarks: #在样本图像上绘制姿势地标。 mp_drawing.draw_landmarks(image = img_copy,landmark_list = results.pose_landmarks,connections = mp_pose.pose_connections) #指定图的大小。 图= plt.figure(figsize = [10,10]) #用绘制的地标显示输出图像,还将BGR转换为RGB以进行显示。 plt.title(“输出”) plt.axis('off') plt.imshow(img_copy [:,:,:, ::- 1]) plt.show()
- 此代码段创建了示例图像的副本,以保留原始图像,同时在单独的图像上绘制地标。
- 它检查结果中是否发现了任何姿势地标。
- 如果找到地标,它将使用mp_drawing.draw_landmarks()在复制图像上绘制地标。
- 使用plt.figure指定显示输出图像的图的大小(figsize = [10,10])。
- 最后,它使用plt.imshow()绘制的地标显示了输出图像。 [:,:,:: -1]索引用于将图像从BGR转换为RGB格式,以使用Matplotlib显示正确的显示。
步骤7:3D姿势可视化
使用MediaPipe的plot_landmarks()可视化3D中检测到的地标。
#在3D中构成地标。 mp_drawing.plot_landmarks(results.pose_world_landmarks,mp_pose.pose_connections)
- 此代码段使用MediaPipe的Plot_landmarks()函数在3D空间中绘制姿势地标。
- 它采用结果。pose_world_landmarks作为输入,代表世界坐标中的姿势地标。
- mp_pose.pose_connections指定不同地标之间的连接,有助于可视化骨骼结构。
步骤8:自定义姿势检测功能
对于自定义姿势检测,我们将使用检测()。此功能执行姿势检测,显示结果并选择返回地标。
def detectpose(图像,姿势,display = true): ''' 此功能在图像上执行姿势检测。 args: 图像:需要检测到姿势地标的杰出人物的输入图像。 姿势:执行姿势检测所需的姿势设置功能。 显示:一个布尔值,如果设置为true,则函数显示原始输入映像,结果图像, 还有3D情节中的姿势地标,什么也没返回。 返回: output_image:带有检测到的姿势地标的输入图像。 地标:被检测到的地标转换为原始规模的清单。 ''' #创建输入图像的副本。 output_image = image.copy() #将图像从BGR转换为RGB格式。 imagerb = cv2.cvtcolor(图像,cv2.color_bgr2rgb) #执行姿势检测。 结果=姿势。 #检索输入图像的高度和宽度。 高度,宽度,_ =图像。形状 #初始化列表以存储检测到的地标。 地标= [] #检查是否检测到任何地标。 如果结果。pose_landmarks: #在输出图像上绘制姿势地标。 mp_drawing.draw_landmarks(image = output_image,landmark_list = results.pose_landmarks, 连接= mp_pose.pose_connections) #迭代被检测到的地标。 对于results.pose_landmarks.landmark: #将地标附加到列表中。 Landmarks.Append((int(landmark.x *宽度),int(Landmark.Y *高), (Landmark.z *宽度))))) #检查原始输入图像和结果图像是否被指定为显示。 如果显示: #显示原始输入图像和结果图像。 plt.figure(无花果= [22,22]) plt.subplot(121); plt.imshow(image [:,:::,::- ::-1]); plt.title(“原始image”); plt.axis('off'); plt.subplot(122); plt.imshow(output_image [:,,:,::- ::- :: -1]); plt.title(“ output imput image”); plt.axis('off'); #还将姿势地标在3D中绘制姿势地标。 mp_drawing.plot_landmarks(results.pose_world_landmarks,mp_pose.pose_connections) # 否则 别的: #返回输出图像和发现的地标。 返回output_image,地标
- 此功能检测到使用MediaPipe的姿势模型在输入图像上执行姿势检测。
- 它采用三个参数:图像(输入图像),姿势(姿势设置功能)和显示(表示是否显示结果的布尔值)。
- 它会根据MediaPipe的要求将输入图像复制以保留原始图像并将图像从BGR转换为RGB格式。
- 它检测到转换的图像上的姿势,并使用mp_drawing.draw_landmarks()在输出图像上绘制检测到的地标。
- 该功能还检索输入图像的高度和宽度,并初始化一个空列表以存储检测到的地标。
- 如果显示参数设置为true,它将显示原始输入映像,绘制具有里程碑标记的输出图像,并使用mp_drawing.plot_landmarks()将地标绘制在3D空间中。
- 如果显示为错误,它将用绘制的地标和检测到的地标列表返回输出图像。
步骤9:示例执行
使用检测()函数在新样本图像上运行姿势检测。
#阅读另一个示例图像并在其上执行姿势检测。 image = cv2.imread('/content/hd-wallpaper-yoga-training-gym pose-womm-woman-yoga-corcises.jpg') 检测(图像,姿势,display = true)
- 此代码段从指定的文件路径读取另一个示例图像。
- 然后,它使用先前初始初始化的姿势设置来调用detectpose()函数在图像上执行姿势检测。
- 将显示参数设置为true将指示函数显示原始输入图像,带有绘制地标的结果图像以及地标的3D图。
步骤10:姿势分类(可选)
下一步涉及根据关节角度定义一个函数来对战士,树等等姿势进行分类。
战士档次,T型,树窝,未知
DEF分类(地标,output_image,display = false): ''' 此功能根据各种身体关节的角度对瑜伽进行分类。 args: 地标:需要对其姿势进行分类的人的检测地标清单。 output_image:绘制姿势地标的人的图像。 显示:一个布尔值,如果设置为true,则用姿势标签显示结果图像 写在上面,什么也没返回。 返回: output_image:带有检测到的姿势地标的图像绘制并编写了姿势标签。 标签:output_image中该人的分类姿势标签。 ''' #初始化姿势的标签。在这个阶段尚不清楚。 标签='未知姿势' #指定标签将在图像上写入标签的颜色(红色)。 颜色=(0,0,255) #计算所需角度。 #---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- #获取左肩,肘部和腕部点之间的角度。 left_elbow_angle = calculateangle(地标[mp_pose.poselandmark.left_shoulder.value], 地标[mp_pose.poselandmark.left_elbow.value], 地标[mp_pose.poselandmark.left_wrist.value]) #获取右肩,肘部和腕部点之间的角度。 right_elbow_angle = calculateangle(地标[mp_pose.poselandmark.right_shoulder.value], 地标[mp_pose.poselandmark.right_elbow.value], 地标[mp_pose.poselandmark.right_wrist.value]) #获取左肘,肩膀和臀部点之间的角度。 left_shoulder_angle = calculateangle(地标[mp_pose.poselandmark.left_elbow.value], 地标[mp_pose.poselandmark.left_shoulder.value], 地标[mp_pose.poselandmark.left_hip.value]) #获取右臀部,肩膀和肘部点之间的角度。 right_shoulder_angle = calculateangle(地标[mp_pose.poselandmark.right_hip.value], 地标[mp_pose.poselandmark.right_shoulder.value], 地标[mp_pose.poselandmark.right_elbow.value]) #获取左臀部,膝盖和脚踝点之间的角度。 left_knee_angle = calculateangle(地标[mp_pose.poselandmark.left_hip.value], 地标[mp_pose.poselandmark.left_knee.value], 地标[mp_pose.poselandmark.left_ankle.value]) #获得右臀部,膝盖和脚踝点之间的角度 right_knee_angle = calculateangle(地标[mp_pose.poselandmark.right_hip.value], 地标[mp_pose.poselandmark.right_knee.value], 地标[mp_pose.poselandmark.right_ankle.value]) #---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- #检查是战士II姿势还是T姿势。 #至于两者,两个臂都应是笔直的,肩膀应处于特定角度。 #---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- #检查双臂是否笔直。 如果Left_elbow_angle> 165和left_elbow_angle 165和right_elbow_angle 80和left_shoulder_angle 80和right_shoulder_angle 165和left_knee_angle 165和right_knee_angle 90和left_knee_angle 90和right_knee_angle 160和left_knee_angle 160和right_knee_angle 165和left_knee_angle 165和right_knee_angle 315和left_knee_angle 25和right_knee_angle <p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174433982947729.jpg" class="lazy" alt="有效的人类姿势估计" ></p><p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174433983294618.jpg" class="lazy" alt="有效的人类姿势估计" ></p><p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174433983446597.jpg" class="lazy" alt="有效的人类姿势估计" ></p><pre class="brush:php;toolbar:false"> #阅读示例图像并在其上执行姿势分类。 image = cv2.imread('/content/amp-1575527028--三角形姿势') output_image,地标=检测(图像,姿势,display = false) 如果地标: 分类(地标,output_image,display = true)
- 该代码段从指定的文件路径读取示例图像。
- 然后,它使用先前初始初始化的姿势设置来调用detectpose()函数在图像上执行姿势检测。
- 如果显示参数为false,则跳过显示结果的函数。
- 如果图像包含检测到的地标,则该函数调用分类()根据这些地标对姿势进行分类并显示结果。
#阅读示例图像并在其上执行姿势分类。 图像= cv2.imread('/content/warrior2.jpg') output_image,地标=检测(图像,姿势,display = false) 如果地标: 分类(地标,output_image,display = true)
- 该代码段从指定的文件路径读取示例图像。
- 然后,它使用先前初始初始化的姿势设置来调用detectpose()函数在图像上执行姿势检测。
- 显示参数设置为false,表明该功能不应显示结果。
- 如果在图像中检测到地标,它将调用分类()函数以根据检测到的地标对姿势进行分类并显示结果。
人姿势估计的应用
人类姿势估计发现在不同领域的应用:
健身和健康行业
- 个性化指导:姿势检测应用程序指导用户通过瑜伽会议,提供有关其姿势对齐的实时反馈。
- 进度跟踪:系统监控用户的进度,建议对个人技能水平量身定制的修改或进步。
行业级别的应用
- 公司健康计划:公司可以通过健康计划和减轻压力来整合瑜伽姿势检测,增强员工健康。
卫生保健
- 姿势校正:姿势检测有助于在康复运动中纠正姿势,从而确保正确的运动执行。
- 远程监控:医疗保健专业人员远程监控患者的瑜伽课程,提供虚拟援助并根据需要调整例程。
运动训练
- 灵活性和力量训练:运动训练计划中的姿势检测使需要灵活性和力量的运动员有益于提高整体表现。
教育
- 互动学习:姿势检测增强了教育机构中学生的瑜伽互动和可访问的学习。
- 技能评估:教师使用技术评估学生的瑜伽技能,提供针对性的改进指南。
娱乐和游戏
- 沉浸式体验: VR或AR应用程序与虚拟指导员通过姿势指导用户创造沉浸式瑜伽体验。
- 互动游戏:健身游戏中的姿势检测使运动变得令人愉悦和激励。
行业的人体工程学
- 桌面瑜伽课程:将姿势检测纳入工作场所健康计划提供简短的瑜伽课程,改善姿势并减轻员工的压力。
- 人体工程学评估:雇主使用姿势检测来评估工作站的人体工程学方面,从而促进员工的健康状况。
用户利益
- 正确的形式:对形式的立即反馈降低了受伤的风险,从而确保用户从瑜伽练习中获得最大收益。
- 便利:用户可以在虚拟讲师或应用程序的指导下练习瑜伽,从而消除了对物理课程的需求。
- 动机:实时进度跟踪和反馈动机,使用户保持与瑜伽程序一致。
结论
人类姿势检测与瑜伽的融合构成超越各个部门,改变了健康和健身。从健身行业的个性化指导和进度跟踪到增强医疗保健的康复和物理治疗,该技术提供了多种应用。在运动训练中,它有助于运动员的灵活性和力量,而在教育中,它带来了互动且可评估的瑜伽学习经验。
工作场所受益于桌面瑜伽课和人体工程学评估,从而促进员工福祉。用户在虚拟讲师的指导下,享受正确的形式反馈,便利性和动力,促进了更健康,更有效的瑜伽练习方法。过时的实践与尖端创新的这种变革性结合为全面的福祉叛乱奠定了道路。
关键要点
- 人体姿势估计是计算机视觉内部的一个领域,包括认识到关注一个人的身体以获取并分析姿势的关键。
- 人类的姿势估计已从健康和健康,体育准备,教学,娱乐和工作环境人体工程学。
- 将姿势发现创新合并到瑜伽hone中,为客户提供个性化的方向,实时输入,高级关注,舒适和灵感,促使他们继续福祉和更熟练的锻炼。
- 人类姿势检测与瑜伽实践的整合代表了健康技术的重大进步,为全面的幸福革命铺平了道路。
常见问题
Q1。人类的姿势估计是什么,它如何起作用?答:人类的姿势估计可能是一种计算机视觉策略,其中包括认识到关注一个人的身体以获取并分析姿势的关键。它通过利用计算来区分和分类这些关键重点,从而实时遵循和检查人类发展的工作来起作用。
Q2。人姿势估计在瑜伽实践中的主要应用是什么?答:人类姿势估计技术可以在瑜伽上连接,以为客户提供个性化的方向,实时姿势安排,高级关注和虚拟瑜伽指导。它也可以用于瑜伽指导,恢复和运动准备中。
Q3。人类姿势估计的一些流行图书馆和工具是什么?答:一些流行的开源库和人类姿势估计的工具包括开放式,摆姿势,茂密,字母和HRNET(高分辨率网)。这些库为执行姿势估计任务提供了预训练的模型和API。
Q4。人姿势估计技术可以用于瑜伽中的姿势校正吗?答:是的,人类的姿势估计创新可以通过对姿势安排进行实时批评,并提出更改或更改以帮助客户实现合理的形状和安排,从而将人类的姿势估计创新用于瑜伽中的姿势补救。
Q5。人类姿势估计技术是否适合瑜伽的初学者?答:是的,人类的姿势估计创新对于瑜伽中的嫩脚可以通过方向,反馈和视觉信号来帮助他们学习和磨练瑜伽姿势,从而对瑜伽中的嫩脚有用。
本文所示的媒体不由Analytics Vidhya拥有,并由作者酌情使用。
以上是有效的人类姿势估计的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

本文回顾了AI最高的艺术生成器,讨论了他们的功能,对创意项目的适用性和价值。它重点介绍了Midjourney是专业人士的最佳价值,并建议使用Dall-E 2进行高质量的可定制艺术。

Meta的Llama 3.2:多模式和移动AI的飞跃 Meta最近公布了Llama 3.2,这是AI的重大进步,具有强大的视觉功能和针对移动设备优化的轻量级文本模型。 以成功为基础

本文比较了诸如Chatgpt,Gemini和Claude之类的顶级AI聊天机器人,重点介绍了其独特功能,自定义选项以及自然语言处理和可靠性的性能。

文章讨论了Grammarly,Jasper,Copy.ai,Writesonic和Rytr等AI最高的写作助手,重点介绍了其独特的内容创建功能。它认为Jasper在SEO优化方面表现出色,而AI工具有助于保持音调的组成

Shopify首席执行官TobiLütke最近的备忘录大胆地宣布AI对每位员工的基本期望是公司内部的重大文化转变。 这不是短暂的趋势。这是整合到P中的新操作范式

本周的AI景观:进步,道德考虑和监管辩论的旋风。 OpenAI,Google,Meta和Microsoft等主要参与者已经释放了一系列更新,从开创性的新车型到LE的关键转变

嘿,编码忍者!您当天计划哪些与编码有关的任务?在您进一步研究此博客之前,我希望您考虑所有与编码相关的困境,这是将其列出的。 完毕? - 让&#8217

本文评论了Google Cloud,Amazon Polly,Microsoft Azure,IBM Watson和Discript等高级AI语音生成器,重点介绍其功能,语音质量和满足不同需求的适用性。
