首页 > 其他分享 >【AIGC】AI文本转语音+语音转文本,构建专属领域转文本模型

【AIGC】AI文本转语音+语音转文本,构建专属领域转文本模型

时间:2024-10-30 13:50:07浏览次数:5  
标签:task vocabulary AI dashscope 语音 文本 response

AI文本转语音+语音转文本

1.引言

在AI领域,文本转语音和语音转文本技术已经取得了显著的进展。这些技术在许多领域都有广泛的应用,如语音助手、实时弹幕、通话检测等。本文我们使用阿里的语音合成和语音识别技术,实现文本转语音和语音转文本的完整流程,并讲述如何针对自己的业务构建专属转文本模型。

2.实例

现实中会有很多场景需要我们去分析语音,类似在我们实际业务中,通过用户的沟通记录去识别用户的意图,例如:用户对产品的体验、或者用户对我们产品的购买意愿等等,而这时候很多场景需要我们去完成语音转文本,再通过文本去识别用户意图,所以我们需要去尝试将语音转文本。但是这其中会存在一个问题,就是模型怎么知道你的专属名词,比如我创建了一个新APP叫咸货,但是模型是不认识这个品牌的,所以转出来的效果很难让文字百分百精准对上我们的品牌,这块是我们需要去解决的一个问题。但首先我们需要一个语音,去完成我们的实例展示。
在这里插入图片描述

2.1文本转语音

我们用阿里的CosyVoice合成对应语音,再模拟真实业务场景解决语音转文字中的实际问题。我们将这段文字转为语音: 老板,最近我们上线了一个新应用,叫咸货,您可以在上面发布您的闲置物品,也可以购买别人发布的闲置物品,非常方便。,我们特地把名称取得不寻常不叫闲货,而是叫咸货,这样模型就不知道这个品牌,所以转出来的效果很难让文字百分百精准对上我们的品牌,这块是我们需要去解决的一个问题。

2.2文字合成语音


import dashscope
from dashscope.audio.tts_v2 import *

# 设置阿里百炼API密钥
dashscope.api_key = 'sk-xxx'

model = "cosyvoice-v1"
voice = "loongbella"

synthesizer = SpeechSynthesizer(model=model, voice=voice)

audio = synthesizer.call("老板,最近我们上线了一个新应用,叫咸货,您可以在上面发布您的闲置物品,也可以购买别人发布的闲置物品,非常方便。")
print('requestId: ', synthesizer.get_last_request_id())
with open('output.mp3', 'wb') as f:
    f.write(audio)

按照官方示例代码转出了8秒的语音,然后我们接下来将这个录音上传到阿里云(或者别的平台,只要能让模型访问到这个录音就可以),我们就把这个语音当作真实业务场景,去完成分析。
在这里插入图片描述

2.3语音转文字

用阿里的paraformer模型去完成。

from http import HTTPStatus
import json
import dashscope
from dashscope.audio.asr import *

# 设置阿里百炼API密钥
dashscope.api_key = 'sk-xxx'

target_model = "paraformer-8k-v2"

# 调用异步语音转文字服务
task_response = dashscope.audio.asr.Transcription.async_call(
    model=target_model,
    file_urls=['xxx.mp3'],# 这里刚才上传的录音的地址
)


if task_response.status_code != HTTPStatus.OK:
    print(f"Error: {task_response.status_code} - {task_response.output}")
    exit(1)

transcribe_response = dashscope.audio.asr.Transcription.wait(task=task_response.output.task_id)

if transcribe_response.status_code == HTTPStatus.OK:
    print(json.dumps(transcribe_response.output, indent=4, ensure_ascii=False))
    print('transcription done!')
else:
    print(f"Error: {transcribe_response.status_code} - {transcribe_response.output}")

看看结果:

{"channel_id":0,"content_duration_in_milliseconds":52,"text":"老板最近我们上线了一个新应用叫闲货。您可以在上面发布您的闲置物品也可以购买别人发布的闲置物品非常方便。"}

在这里插入图片描述
ok,不出意料模型由于不知道我们的信息转为了闲货,但这不是我们想要的所以我们接下来去解决这件事。查看官网之后,发现我们可以用热词去解决这个问题。

热词(Hot Words)是语音识别技术中的一个概念,它指的是在语音识别过程中,用户希望系统能够特别关注并准确识别的词汇或短语。通过定义热词,可以提高特定词汇的识别准确率,这对于某些特定场景下的语音识别应用尤为重要。

2.4使用热词库

构建很简单:

my_vocabulary = [
    {"text": "咸货", "weight": 3, "lang": 'zh'},
]

# create a vocabulary
service = VocabularyService()

vocabulary_id = service.create_vocabulary(
    prefix=prefix,
    target_model=target_model,
    vocabulary=my_vocabulary)

然后在模型中加上我们上面拿到的vocabulary_id,这样就可以精准识别了

2.5完整代码

from http import HTTPStatus
import json
import dashscope
from dashscope.audio.asr import *

# 设置API密钥
dashscope.api_key = 'sk-xxx'

target_model = "paraformer-8k-v2"

prefix = 'prefix'

my_vocabulary = [
    {"text": "咸货", "weight": 3, "lang": 'zh'},
]

# create a vocabulary
service = VocabularyService()

vocabulary_id = service.create_vocabulary(
    prefix=prefix,
    target_model=target_model,
    vocabulary=my_vocabulary)

print(f"vocabulary_id: {vocabulary_id}")

# 调用异步语音转文字服务
task_response = dashscope.audio.asr.Transcription.async_call(
    model=target_model,
    file_urls=['xxx.mp3'],
    vocabulary_id=vocabulary_id
)


if task_response.status_code != HTTPStatus.OK:
    print(f"Error: {task_response.status_code} - {task_response.output}")
    exit(1)

transcribe_response = dashscope.audio.asr.Transcription.wait(task=task_response.output.task_id)

if transcribe_response.status_code == HTTPStatus.OK:
    print(json.dumps(transcribe_response.output, indent=4, ensure_ascii=False))
    print('transcription done!')
else:
    print(f"Error: {transcribe_response.status_code} - {transcribe_response.output}")

结果:

{"channel_id":0,"content_duration_in_milliseconds":52,"text":"老板最近我们上线了一个新应用叫咸货。您可以在上面发布您的闲置物品也可以购买别人发布的闲置物品非常方便。"}

在这里插入图片描述
符合我们预期,模型可以正确识别我们私域内的精确的词语了。

3.总结

通过这个实例,我们展示了如何使用阿里百炼的语音合成和语音识别技术,实现文本转语音和语音转文本的完整流程,并讲述如何针对自己的业务构建专属转文本模型。我们获取到比较精确的转出的文字再去做别的处理,可以极大帮助我们的实际业务。

标签:task,vocabulary,AI,dashscope,语音,文本,response
From: https://blog.csdn.net/rekaf66/article/details/143256740

相关文章

  • Meta-Chunking:一种用于提高RAG性能的文本分割技术
    尽管RAG技术在LLMs中具有潜力,但在文本分块方面常常被忽视。文本分块的质量直接影响知识密集型任务的表现。本文提出Meta-Chunking概念,这是一种介于句子和段落之间的文本分割技术,旨在通过逻辑感知来提高文本分割的效率;设计了两种基于LLMs的分块策略:边际采样分块(MarginSam......
  • N9300-S16语音芯片:提升电梯播报体验,实现导航声音播报提示
    随着科技的不断进步与人们日常生活紧密相关的电梯行业也迎来了智能化升级的新篇章。N9300语音芯片,作为这一变革中的重要一环,正以其卓越的性能和多样化的功能,显著提升着电梯播报体验,让每一次乘坐都变得更加便捷与舒适。该芯片采用先进的音频处理技术,能够清晰、准确地传达电梯的到站......
  • 免费可离线的AI抠图工具(鲜艺AI抠图 )免费下载
    鲜艺AI抠图是一款使用Tauri2和RMBG-1.4开发并免费提供的AI抠图工具,它能够快速去除图片背景,并支持本地和在线图片处理。:极速AI抠图:基于最新的AI技术,能够精准识别图像中的前景和背景,实现快速抠图,处理时间以毫秒计。完全免费:鲜艺AI抠图承诺永久免费,用户无需支付任何费用......
  • AI产品经理成长指南:成为优秀AI产品经理10条
    引言在人工智能(AI)迅猛发展的今天,AI产品经理作为连接技术与市场的桥梁,扮演着至关重要的角色。他们不仅需要深入理解技术,还要精通市场动态,把握用户需求。本文旨在为AI产品经理提供一个全面的成长路径,涵盖必备的知识、技能和实践经验。AI和机器学习基础AI产品经理应具备扎......
  • 程序员必看!AI如何助你工作开挂!
    现如今,国内的AI工具是越来越多了,它们正以惊人的速度发展壮大,它们不仅改变了我们的工作方式和生活方式,还为我们带来了更加便捷、高效、智能的未来生活体验。程序员作为科技的筑梦师,正站在时代的风口浪尖上,如果AI能有效地更快地解决大问题,那它将在未来有无限可能。那AI怎么来......
  • 前端JavaScript的异步编程:从回调到Promise再到Async/Await
    写在前面在前端开发中,异步编程是一个非常重要的概念。随着JavaScript语言和前端技术的发展,异步编程的模式也在不断演进。本文将带你了解从最初的回调函数(Callback)到Promise,再到现代的Async/Await,这些异步编程模式的演变过程。回调函数(Callback)回调函数是最早期的异步编程......
  • 通义灵码:体验AI编程新技能-@workspace 和 @terminal为你的编程插上一双翅膀
    1.前言我是一位运维工程师,用通义灵码个人版的@workspace和@terminal的能力做快速了解一个工程、查找工程内的实现逻辑,以及执行指令不知道如何写,或者不清楚某个指令的意思,对比之前没有灵码,现在提效了20%,再也不需要“百度一下”或者“谷歌”了,使用的具体流程如下:想象一下,开发同......
  • 人形机器人是未来?6只手臂加AI模型,异形机器人重塑种植业。
    图源:reddituserIlustriousTea近日,一则视频在媒体上引起了人们的讨论。国外一处苹果园里,机械嗡鸣声中,六只机械手熟练且快速地采摘成熟的苹果。这是2018年于美国加利福尼亚州成立的前沿农业公司(AdvancedFarmTechnologies)提供的苹果采摘机器人。6条机械臂以每小时2500颗的......
  • 文本处理工具
    文本编辑工具之神-VIMvi/vim的使用基本上vi/vim共分为三种模式,命令模式(CommandMode)、输入模式(InsertMode)和命令行模式(Command-LineMode)。命令模式用户刚刚启动vi/vim,便进入了命令模式。此状态下敲击键盘动作会被Vim识别为命令,而非输入字符,比如我们此时按下i,并不会......
  • 基于python的语音识别与蓝牙通信的温控系统
    基于python的语音识别与蓝牙通信的温控系统大家好我是小俊学长,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于python的语音识别与蓝牙通信的温控系统。项目源码以及部署相关请联系小俊学长,文末附上联系信息。......