在层出不穷的AI模型爆发的当下,语音识别、语音合成和端到端语音翻译等领域也取得了亮眼的突破和进展。然而,将这些先进的AI模型转化为切实可行的应用并非易事,特别是要将语音AI技术便捷地融入到产品、日常工作和生活之中,开发者仍然面临着挑战和障碍。
要克服这些障碍,除了拥有扎实的技术能力外,还需要创新思维、跨领域协作以及场景化的能力,这是一个不小的门槛,也会影响到AI应用进入千行百业,更好地服务更多的人。为了让每一个人都能轻松使用阿里云百炼的语音服务,最大限度降低开发者接入的门槛,阿里巴巴通义实验室语音团队设计了alibabacloud-bailian-speech-demo项目,希望能让每个人都可以一键调用所有百炼语音AI服务,体验语音及大模型的魅力,助力其进行产品开发。
项目地址:https://github.com/aliyun/alibabacloud-bailian-speech-demo
💡 Alibabacloud-bailian-speech-demo能为您做什么?
如果您是刚接触语音 AI 的开发者,在这里,您只需要执行一条指令:
- 调用所有先进的语音服务,包括 CosyVoice语音生成大模型、Gummy语音翻译大模型、Paraformer语音识别和 SenseVoice 多语言识别大模型,并将他们和通义千问大模型结合
- 从麦克风实时识别您说的话,并将文字和标点显示出来
- 将您输入的文字合成为音频,并通过扬声器播放出来
- 将您的音视频文件进行转写,获取识别文字的同时,对全部文字进行摘要和总结
- 克隆您自己的声音,并通过语音合成以您的音色朗读任何文本
如果您是资深开发者,或是希望搭建服务,您可以在这里:
- 高并发调用语音模型服务的最佳实践(paraformer和cosyvoice)
- 在大模型语音对话中,从扬声器实时流式朗读大模型生成的文字
- 低延迟的上屏语音识别实时字幕
我们还提供了在使用语音服务中、编程中遇到的常见问题排查方法和解决方案。
此外,我们还提供了有趣丰富的Gallery,展示语音功能的进阶用法:
- 调用语音合成大模型,用多种自然的音色,分角色朗读一个故事
- 调用语音识别大模型、翻译大模型等,制作一个同声传译程序
通过场景化的示例,项目展示了如何通过阿里云百炼的语音大模型服务开发工具包(SDK),实现语音识别、语音合成、音视频内容分析、语音交互等各类AI功能。开发者可以很容易的将这些示例集成进自己的项目中进行二次开发。
▎技术方案
>>>开发语言
在示例代码中,我们将提供Python和Java两种百炼SDK的示例项目,并且提供了最简单方便的运行方法:
- 在Python项目中,直接运行run.py
- 在Java项目中,提供了一键mvn编译+运行的run.sh脚本
在每一个项目您都可以找到介绍这个项目能做什么,如何实现的README文档。在不同编程语言的子目录中,您可以找到如何具体使用的README说明。
如果您希望通过更多语言接入百炼的语音AI能力,我们也在文档中开放了与模型进行交互的 websocket和http的网络协议。
>>>项目结构
我们的项目分为四个主要部分,按照目录划分:
▎快速入门
所有的示例代码都是支持通过环境变量读取您的账号AppKey。
推荐您在运行示例前在终端通过环境变量配置账号,这样您后续无论进入任何项目目录都不需要额外配置。
>>>Windows 系统
$env:DASHSCOPE_API_KEY="YOUR_API_KEY" # 验证设置生效 echo $env:DASHSCOPE_API_KEY
>>>Linux & MacOS 系统
export DASHSCOPE_API_KEY=YOUR_API_KEY # 验证设置生效 echo $DASHSCOPE_API_KEY
▎原子能力展示
NO.1 合成一句话并保存为音频文件
在这个示例中,演示使用Python 调用cosyvoice-v1模型,使用loongstella音色合成一段文本并保存到mp3文件中。
核心代码如下:
text_to_synthesize = '想不到时间过得这么快!昨天和你视频聊天,看到你那自豪又满意的笑容,我的心里呀,就如同喝了一瓶蜜一样甜呢!真心为你开心呢!' file_to_save = 'result.mp3' def synthesize_speech_from_text(text, file_path): speech_synthesizer = SpeechSynthesizer(model='cosyvoice-v1', voice='loongstella', callback=None) audio = speech_synthesizer.call(text) with open(file_path, 'wb') as f: f.write(audio) print(f'Synthesized text {text} to file : {file_path}') print('[Metric] requestId: {}, first package delay ms: {}'.format( speech_synthesizer.get_last_request_id(), speech_synthesizer.get_first_package_delay()))
实际展示效果请参考这篇文章的合成一句话语音音频:
https://mp.weixin.qq.com/s/f6b0Nqa0XbKaxWRCaHPeUQ
在每一个示例项目代码中,不仅包括调用服务,获取结果,还包括了统计服务相应速度、任务ID信息等信息。
例如在这个语音合成任务中,我们会打印requestId和发送文本到收到首个音频包的耗时。
相关代码:samples/speech-synthesizer/synthesize_speech_from_text
NO.2 从麦克风进行实时语音识别
在这个示例中,演示使用 Python 调用paraformer-realtime-v2模型,实时识别在麦克风说的话。
从麦克风进行实时语音识别演示视频:
相关代码:samples/speech-recognition/recognize_speech_from_microphone
NO.3 从麦克风实时翻译一句话
在这个示例中,演示使用 Python 调用gummy-chat-v1一句话翻译大模型,将识别第一句话并翻译成德语。
从麦克风实时翻译一句话演示视频:
相关代码:samples/speech-recognition/translate_speech_from_microphone_for_one_sentence
NO.4 合成音频并播放
在这个示例中,演示使用 Java 调用qwen-plus大模型,并将流式生成的结果流式发给cosyvoice-v1语音合成大模型合成音频实时播放。
合成音频并播放:
相关代码在目录:samples/speech-synthesizer/synthesize_speech_from_llm_by_streaming_mode
NO.5 克隆声音
在这里示例中,演示语音 happy.wav 通过cosyvoice-v1的音色复刻功能克隆出新的音色,并且朗读一段文本。
实际展示效果请参考这篇文章的 happy.wav +cosyvoice-v1部分:
https://mp.weixin.qq.com/s/f6b0Nqa0XbKaxWRCaHPeUQ
相关代码:samples/speech-synthesizer/synthesize_speech_from_text_with_cloned_voice
NO.6 总结长音频内容
在这个示例中,演示如何提取出一段三分钟英文视频中的音频并转为opus编码,之后通过千问大模型总结了中的内容,并且向大模型提问。
相关代码:samples/speech-plus/transcribe-video-and-do-translation-summarization-and-qa
NO7. 同声传译
这个示例中演示如何通过端到端的语音翻译模型Gummy将中文音频实时转写为英文的文本,之后用CosyVoice大模型的流式的语音合成能力播放。
同声传译演示视频:
相关代码:samples/gallery/translate-audio-from-microphone-and-play-in-realtime
NO.8 分角色朗读故事
这个示例演示如何通过Cosyvoice大模型的不同音色,分角色朗读小鸭子找妈妈的故事。
实际展示效果请参考这篇文章的分角色朗读故事部分:
https://mp.weixin.qq.com/s/f6b0Nqa0XbKaxWRCaHPeUQ
相关代码:samples/gallery/reading-story-in-multiple-role
👉阿里云百炼详情了解可点击此官网链接:阿里云百炼官网介绍
👉阿里云百炼控制台页面可点击此链接直接进入:阿里云百炼控制台
▎联系我们
在项目的Gallery目录中,我们已经加入了一些有趣的项目,同时期待着更多您的创意和技术。欢迎来自全球的开发者向Gallery中提供您的代码和IDEA。
您可以通过在github中Fork+Pull Request的方式向我们的仓库贡献更多的示例,在这里您可以:
- 拓展语音服务和更多能力的结合
- 分享您通过协议在更多编程语言中调用我们语音服务的方法
- 探索百炼的语音技术+全球更多厂商的技术
- 以及任何您认为对其他开发者有帮助的项目
我们欢迎您加入我们的项目,发挥创造力,为我们提供更多的新奇IDEA,创建更多好玩、易用、有用、有技术深度的Gallery工程,共同建设一个强大的语音AI社区,让语音AI成为人人可得的资源!