AI文本转语音:Toucan TTS 支持 7000 多种语言的语音合成工具箱,突破性 OCR 技术:支持多种语言识别,媲美顶级云服务

AI文本转语音:Toucan TTS 支持 7000 多种语言的语音合成工具箱,突破性 OCR 技术:支持多种语言识别,媲美顶级云服务。

AI文本转语音:Toucan TTS 支持 7000 多种语言的语音合成工具箱

Toucan TTS是由德国斯图加特大学自然语言处理研究所(MS)精心打造的文本转语音(TTS)工具箱,它支持超过7000种语言,包括多样的方言和语言变体。这款工具箱建立在Python和PyTorch框架之上,不仅易于操作,而且功能全面,能够实现多声源语音合成、语音风格模仿以及人机交互的语音编辑。Toucan TTS适用于教育、朗读、多语言软件开发等多种应用场景。作为一个开源项目,它遵循Apache 2.0许可证,鼓励用户和开发者自由地使用和修改源代码,以满足个性化的应用需求。

功能特点

多语言语音合成

Toucan TTS 能够处理和生成超过 7000 种不同语言的语音,包括各种方言和语言变体,使其成为全球语言支持最广泛的 TTS 项目之一。

多说话人支持

该工具箱支持多说话人语音合成,允许用户选择或创建具有不同语音特征的说话人模型,实现个性化的语音输出。

人机交互编辑

Toucan TTS 提供了人机交互编辑功能,用户可以对合成的语音进行细致调整,以适应不同的应用场景,如文学朗诵或教育材料。

语音风格克隆

用户可以利用 Toucan TTS 克隆特定说话人的语音风格,包括节奏、重音和语调,使合成语音更加贴近原说话人的声音特征。

语音参数调整

Toucan TTS 允许用户调整语音的持续时间、音调变化和能量变化等参数,以控制语音的流畅度、情感表达和声音特征。

发音清晰度和性别特征调整

用户可以根据需要调整语音的清晰度和性别特征,使合成语音更加自然,并符合特定角色或场景的需求。

交互式演示

Toucan TTS 提供了在线交互式演示,用户可以通过网页界面实时体验和测试语音合成效果,帮助用户快速理解和使用工具箱的功能。

应用场景

文学朗诵

合成诗歌、文学作品、网页内容的语音,供朗诵欣赏或作为有声读物。

多语言应用开发

为需要多语言支持的应用程序提供语音合成服务,如国际化软件和游戏。

辅助技术

为视障人士或阅读困难者提供文本到语音的服务,帮助他们更好地获取信息。

客户服务

在客户服务系统中使用,提供多语言的自动语音回复或交互式语音响应系统。

新闻与媒体

自动将新闻文章转换为语音,为忙碌的听众提供便捷的新闻获取方式。

电影和视频制作

为电影、动画或视频内容生成配音,尤其是当原始音频不可用或需要特定语言版本时。

有声书制作

将电子书或文档转换为有声书,提供给偏好听书的用户。

使用与体验

非开发人员可以前往Hugging Face体验Toucan TTS的在线文本转语音和语音克隆Demo

https://huggingface.co/spaces/Flux9665/MassivelyMultilingualTTS

开发人员可以 访问其GitHub项目库,克隆其代码到本地进行部署和运行。

https://github.com/DigitalPhonetics/IMS-Toucan


突破性 OCR 技术:支持多种语言识别,媲美顶级云服务

Surya 是一个文档 OCR 工具包,其功能如下:

支持 90 多种语言的 OCR,与云服务相比更具优势

任何语言的行级文本检测

布局分析(表格、图像、标题等检测)

阅读顺序检测

https://github.com/VikParuchuri/surya

使用场景

文字识别(OCR)

文本检测(Detection)

布局分析

阅读顺序检测

快速使用

安装

您需要 Python 3.9+ 和 PyTorch。如果您使用的不是 Mac 或 GPU 机器,则可能需要先安装 CPU 版本的 torch。请参阅此处了解更多详细信息。

安装方式:

复制代码
pip install surya-ocr

首次运行 Surya 时,模型权重将自动下载。请注意,该工具目前不兼容 transformers 4.37+ 版本,因此需要使用 4.36.2 版本(已随 Surya 一同安装)。

成功安装 surya-ocr 之后,你可以执行以下步骤,配置 surya 运行环境:

检查 surya/settings.py 中的设置。你可以用环境变量覆盖任何设置。

你的 torch 设备会被自动检测到,但你可以覆盖它。例如,TORCH_DEVICE=cuda。在文本检测方面,Apple 平台的 mps 设备有一个错误,可能会导致其无法正常工作。

文字识别(OCR)

文字识别模型在 4x A6000 上进行了为期 2 周的训练。训练时使用了改进的 donut 模型(GQA、MoE 层、UTF-16 解码、层配置更改)。

复制代码
from PIL import Image
from surya.ocr import run_ocr
from surya.model.detection import segformer
from surya.model.recognition.model import load_model
from surya.model.recognition.processor import load_processor

image = Image.open(IMAGE_PATH)
langs = ["en"] # Replace with your languages
det_processor, det_model = segformer.load_processor(), segformer.load_model()
rec_model, rec_processor = load_model(), load_processor()

predictions = run_ocr([image], [langs], det_model, det_processor, rec_model, rec_processor)

文本行检测(Text Line Detection)

文本检测模型在 4x A6000 上进行了为期 3 天的训练。它使用一组不同的图像作为训练数据。它使用改进的 segformer 架构从头开始训练,从而降低了对推理 RAM 的要求。

复制代码
from PIL import Image
from surya.detection import batch_text_detection
from surya.model.detection.segformer import load_model, load_processor

image = Image.open(IMAGE_PATH)
model, processor = load_model(), load_processor()

# predictions is a list of dicts, one per image
predictions = batch_text_detection([image], model, processor)

布局分析(Layout Analysis)

复制代码
from PIL import Image
from surya.detection import batch_text_detection
from surya.layout import batch_layout_detection
from surya.model.detection.segformer import load_model, load_processor
from surya.settings import settings

image = Image.open(IMAGE_PATH)
model = load_model(checkpoint=settings.LAYOUT_MODEL_CHECKPOINT)
processor = load_processor(checkpoint=settings.LAYOUT_MODEL_CHECKPOINT)
det_model = load_model()
det_processor = load_processor()

# layout_predictions is a list of dicts, one per image
line_predictions = batch_text_detection([image], det_model, det_processor)
layout_predictions = batch_layout_detection([image], model, processor, line_predictions)

阅读顺序检测

复制代码
from PIL import Image
from surya.ordering import batch_ordering
from surya.model.ordering.processor import load_processor
from surya.model.ordering.model import load_model

image = Image.open(IMAGE_PATH)
# bboxes should be a list of lists with layout bboxes for the image in [x1,y1,x2,y2] format
# You can get this from the layout model, see above for usage
bboxes = [bbox1, bbox2, ...]

model = load_model()
processor = load_processor()

# order_predictions will be a list of dicts, one per image
order_predictions = batch_ordering([image], [bboxes], model, processor)

# Benchmarks
相关推荐
NAGNIP5 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab6 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab6 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP10 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年10 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼10 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS11 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区12 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈12 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang12 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx