百度云长文本语音合成服务:提升新闻播报 AI 智能体的专业感

我们研发了各式各样的工具,这些工具悄然无声地影响着我们的生活,既带来了喜悦,也带来了遗憾。以之前为例,我们运用了智谱开源模型GLM-4-Voice进行语音生成,却发现语音质量存在瑕疵,长文本删减成了难题。这促使我们不断寻求改进,最终转向了百度云的长文本语音合成服务。

获取百度云服务的必要性

在现今社会,高质量的语音合成显得尤为关键。这种技术广泛应用于多个领域,新闻行业便是其中之一。过去,智谱模型存在缺陷,导致其在实际应用中受到诸多限制。在众多办公场所,人们迫切需要高质量的语音转换服务,尤其是对于新闻播报这类对语音准确性和流畅性要求极高的领域。众多从业者都曾因语音工具的不足而感到困扰。如今,百度云服务有望为解决这些问题提供有效途径。

另一方面,用户对工具的需求也在不断提升。以日常使用语音功能的人群为例,他们普遍期待听到自然流畅、仿佛真人发出的语音。哪怕是微小的瑕疵,都可能影响使用感受,这也驱使他们寻求更优质的服务。

获取Token的流程与意义

def fetch_access_token():
    url = "https://aip.baidubce.com/oauth/2.0/token"
    params = {
        "grant_type""client_credentials",
        "client_id": API_KEY,
        "client_secret": SECRET_KEY
    }
    response = requests.post(url, params=params)
    response.raise_for_status()  # 检查请求错误
    return response.json().get("access_token")

获取Token至关重要,是使用百度云API的必备凭证。这一步骤非常严格。程序员必须精确编写特定代码。这些代码会向百度云认证服务器发送POST请求。在请求过程中,会携带必要参数以获取Token。无论开发者身处何地,只要使用百度云语音合成功能,都必须完成这一步骤。

这个环节看似繁杂,实则影响深远。若缺少这个Token,便如同门外汉,无法触及门内的服务。众多开发者实践证明,一旦这一步出错,后续工作便难以进行。

创建文本转语音任务

成功获取Token后,便进入创建文本转语音任务的环节。这一阶段需要编写代码来构建请求URL和请求体。其中涉及许多关键参数。例如,文本内容决定了语音转化的来源;音频格式会影响到最终语音文件的类型,比如MP3等;而音库的选择则关系到语音的风格。

def initiate_text_to_speech_task(text_list):
    access_token = fetch_access_token()
    url = f"https://aip.baidubce.com/rpc/2.0/tts/v1/create?access_token={access_token}"

    payload = {
        "text": text_list,
        "format""mp3-16k",
        "voice"5118,
        "lang""zh",
        "speed"5,
        "pitch"5,
        "volume"5,
        "enable_subtitle"0
    }
    headers = {
        'Content-Type''application/json',
        'Accept''application/json'
    }

    response = requests.post(url, headers=headers, json=payload)
    response.raise_for_status()
    return response.json()

这一过程首先是将冰冷的文字变为有声内容的关键转换。新闻编辑者输入新闻稿件后,期望通过这一任务生成适合播报的语音。同时,程序员在编写这一环节的代码时,必须依据实际需求,精确设置相关参数。

查询任务状态的重要性

任务创建后,必须及时查询其状态。这通常是通过向百度云的查询接口发送POST请求,并附上任务ID来实现的。目的是为了知晓何时能够获取到合成的语音。这个过程就如同等待面包烤熟一般。

任务完成后,您将获得合成语音文件的链接。然而,若在实际操作中未能及时查看任务状态,语音文件可能早已生成,而您却浑然不觉,仍在等待。这种情况下,不仅浪费了资源,还耗费了宝贵时间。这种现象在众多企业流程中,往往会对工作效率造成严重影响。

程序主函数的集成意义

def query_task_status(task_id):
    access_token = fetch_access_token()
    url = f"https://aip.baidubce.com/rpc/2.0/tts/v1/query?access_token={access_token}"

    payload = {"task_ids": [task_id]}
    headers = {
        'Content-Type''application/json',
        'Accept''application/json'
    }

    response = requests.post(url, headers=headers, json=payload)
    response.raise_for_status()
    return response.json()

主函数负责整合前述各项功能。它首先创建任务,然后持续查询状态,直至任务完成。这一过程对于构建新闻播报AI智能体的完整流程至关重要。以大型传媒公司为例,开发者必须将这一流程串联起来,才能实现新闻播报的自动化。

若这一环节处理不当,便会发生脱节。尽管前项任务已完成,却无法有效整合,导致最终无法为用户提供从新闻文字到语音播报的连贯体验。

最终成果体现出的意义

完成了前面的所有步骤,新闻文本已被迅速转换成了语音。这样的转换让用户享受到了便捷的听新闻体验。就像在公交车上,想要听新闻,现在也能轻松做到。

def main():
      text_list = [
        "欢迎收听今日财经快讯:",
        "1 华为正式发布首个国产移动操作系统:华为正式发布了首个国产移动操作系统HarmonyOS 5,这是鸿蒙系统第五个大版本,也是第一个实现完全自主的版本,没有掺杂其他操作系统,仅支持鸿蒙内核和鸿蒙系统的应用。HarmonyOS 5在设计和UI上有了很大的变化,特别是在系统的流畅度和各层级界面、各种不同App之间的切换动画和动效,都有了更加细节和真实的考量。HarmonyOS 5通过算法,用“光·形·色·力·时空”模拟出了真实世界的物理规律和光影效果。",
        "2 8点1氪|微信内测“查删单向好友”功能;肯德基被曝用转基因大豆油;许家印香港豪宅6折急寻买家:微信正在进行一项新功能内测,可以查看已删除自己的联系人/好友,并可以选择性筛选与删除。肯德基被曝使用转基因大豆油,天津多家门店被立案调查。许家印两座香港豪宅滞销,继续大幅降价求出售。",
        "3 Claude 3.5深夜觉醒,学会模仿人类用电脑,编程干翻o1,Agent一夜变天:Anthropic AI发布了Claude 3.5 Haiku和Claude 3.5 Sonnet,全新升级版Claude 3.5 Sonnet一举击溃OpenAI o1,堪称最强推理模型。Claude 3.5 Sonnet是首个在公测中提供此功能的模型,可以像人类一样使用计算机,不仅可以查看屏幕、移动光标,还可以点击按钮、键入文本。",
        "4 iPhone 17 系列最新爆料:史上最轻薄的苹果手机来了:iPhone 17 系列可能会带来自2017年发布iPhone X以来最大的设计更新。爆料称苹果将会在2025年发布iPhone 17、iPhone 17 Pro、iPhone 17 Pro Max三款常规机型。最受关注的机型非iPhone 17系列中“可能的”全新产品线iPhone 17 Air/Slim系列莫属。iPhone 17 Air/Slim系列手机将搭载采用台积电3nm工艺制造的A19芯片,配备一块6.6英寸可变刷新率ProMotion显示屏,最高支持120Hz刷新率。",
        "5 当霸王茶姬们卷到香港去,留给它们的好铺子却不多了:一大批内地茶饮品牌正在争相入港。目前,内地茶饮品牌在香港门店数量最多的是喜茶,自2018年进入香港后,经历了闭店与重新扩张,喜茶目前在港开店6家。但从增速来说,2023年12月才入港的蜜雪冰城,如今开了5家门店,实属最快。相较于内地,这个速度并不值得称道。在香港,内地茶饮品牌的开店速度都十分克制。选址是内地茶饮品牌在香港拓店时考虑的最核心要素。",
        "6 「纯血鸿蒙」,真的能跟安卓、苹果三分天下?:华为HarmonyOS Next(原生鸿蒙)正式发布,命名为HarmonyOS 5,是鸿蒙操作系统第五个大版本,也是第一个实现完全自主的版本,没有掺杂其他操作系统,仅支持鸿蒙内核和鸿蒙系统的应用。HarmonyOS 5在设计和UI上有了很大的变化,特别是在系统的流畅度和各层级界面、各种不同App之间的切换动画和动效,都有了更加细节和真实的考量。HarmonyOS 5通过算法,用“光·形·色·力·时空”模拟出了真实世界的物理规律和光影效果。",
        "7 刚刚,深圳380亿IPO敲钟:怡宝母公司华润饮料正式登陆港交所挂牌上市。此次IPO,发行价14.5港元/股,开盘高涨13%,市值380亿港元。这是今年港股募资第二大IPO,引入瑞银资产、香港中旅、中邮保险、橡树资本、博裕资本等9家基石投资者。相比华润饮料,怡宝纯净水更为人熟悉。上世纪八十年代起家于深圳蛇口,怡宝在90年代末才正式加入华润集团大家庭,2001年开启经典小绿瓶包装后,怡宝纯净水很快遍及大街小巷。",
        "8 「禁欲系」消费,骗哭了多少新中产:长期主义消费虽然范围广阔,却有共同的宗旨:主打一个人到中年,不吃“便宜”的苦。这一下子就走进了中产的精神世界。毕竟《30岁的长期主义,钱别乱花,要买就买最好的》。既然是最好的,那贵也是在情理之中。每个长期主义爆款标题下配的照片,都是清一色的轻奢/高奢经典款。单价上千的中产三宝lulu、拉夫、始祖鸟,算不上长期主义的优等生,最多只是入门级。",
        "财经快讯播报完毕,感谢您的收听!"
    ]
    task_response = initiate_text_to_speech_task(text_list)
    task_id = task_response.get('task_id')

    if not task_id:
        print("Failed to create task.")
        return

    print(f"Task created successfully with ID: {task_id}")

    while True:
        task_status_response = query_task_status(task_id)
        tasks_info = task_status_response.get('tasks_info', [])

        if tasks_info:
            task_info = tasks_info[0]
            task_status = task_info.get('task_status')

            if task_status == "Success":
                print("Task completed successfully.")
                task_result = task_info.get('task_result', {})
                speech_url = task_result.get('speech_url')
                print(f"Speech URL: {speech_url}")
                break
            elif task_status == "Running":
                print("Task is running. Waiting...")

        time.sleep(5)

if __name__ == '__main__':
    main()

这也说明,自从我们研发出百度云语音合成工具后,它对我们的新闻信息获取方式产生了反作用。由此引发疑问,未来的工具又将如何塑造我们的生活?期待大家的点赞、转发,并在评论区热烈交流。

THE END