李优秀 发表于 2024-10-29 16:45:33

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

1.引言

在AI范畴,文本转语音和语音转文本技能已经取得了显着的进展。这些技能在很多范畴都有广泛的应用,如语音助手、实时弹幕、通话检测等。本文我们使用阿里的语音合成和语音辨认技能,实现文本转语音和语音转文本的完整流程,并报告怎样针对自己的业务构建专属转文本模型。
2.实例

现实中会有很多场景需要我们去分析语音,类似在我们现实业务中,通过用户的沟通记录去辨认用户的意图,比方:用户对产品的体验、或者用户对我们产品的购买意愿等等,而这时间很多场景需要我们去完成语音转文本,再通过文本去辨认用户意图,所以我们需要去尝试将语音转文本。但是这此中会存在一个标题,就是模型怎么知道你的专属名词,比如我创建了一个新APP叫咸货,但是模型是不熟悉这个品牌的,所以转出来的结果很难让文字百分百精准对上我们的品牌,这块是我们需要去解决的一个标题。但首先我们需要一个语音,去完成我们的实例展示。
https://i-blog.csdnimg.cn/direct/b6d434cbdfea48be82e846c60e6e668e.jpeg#pic_center
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秒的语音,然后我们接下来将这个录音上传到阿里云(或者别的平台,只要能让模型访问到这个录音就可以),我们就把这个语音看成真实业务场景,去完身分析。
https://img-blog.csdnimg.cn/dfbbb62a77754fa1970ccff06012f217.jpg
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":"老板最近我们上线了一个新应用叫闲货。您可以在上面发布您的闲置物品也可以购买别人发布的闲置物品非常方便。"}
https://img-blog.csdnimg.cn/b9e2e010f9304b0dbac7db910acaeaee.jpg
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 HTTPStatusimport jsonimport dashscopefrom 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":"老板最近我们上线了一个新应用叫咸货。您可以在上面发布您的闲置物品也可以购买别人发布的闲置物品非常方便。"}
https://img-blog.csdnimg.cn/a3a6cbb73a534949b91ca58490813a9f.jpg
符合我们预期,模型可以精确辨认我们私域内的精确的词语了。
3.总结

通过这个实例,我们展示了怎样使用阿里百炼的语音合成和语音辨认技能,实现文本转语音和语音转文本的完整流程,并报告怎样针对自己的业务构建专属转文本模型。我们获取到比力精确的转出的文字再去做别的处置惩罚,可以极大帮助我们的现实业务。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【AIGC】AI文本转语音+语音转文本,构建专属范畴转文本模型