admin管理员组

文章数量:1530986

从玩玩chatGPT说起

  • 起因
  • 想法
    • 先文本转语音播报
    • 再来语音转文本
    • 连接AI接口
    • 再来添加唤醒
    • 空间考虑
    • 串成线
    • 问题与想法

起因

最近,哦,已经不是最近了,挺长一段时间了,chatGPT火了。出于好奇,注册了账号,而且尝试与其文字对话,询问问题,还有在工作中让其帮忙翻译以及进行语言学习,发现----chatGPTj是一位好老师。虽然这个老师有时候会一本正经地胡说八道,但综合下来,百分之九十以上可以给出比较靠谱回答的。而且其回答的方式很亲和,即使出错,也可以引导其给出正确回答,确实是目前为止非常高级的AI了。不满足于只是文字交流,在想是否可以通过语音交流呢?(由于本人一直活在小世界孤陋寡闻应该早已有此实现,见谅!)恰好又刷 到一个视频,大致内容是某位大神通过树莓派实现了自己的语音助手。于是有此次尝试,希望在没有硬件的前提下考虑实现。

想法

想法其实很简单,如视频中大神的想法。语音唤醒——语音识别——发送识别文本到openai的API并取得文字回答内容——文本转语音播报。本身各部分实现都有现成的接口了应该,考虑胶水语言python完成。

先文本转语音播报

第一步想到的先从文本转语音播放开始。为什么从此步开始而不是语音识别呢?主要是我觉得这一步最简单吧。具体实现代码呢,拼拼凑凑,不会的就问chatGPT,再次赞赏一下这个好老师。完成函数方法实现。

# 该函数用于实现语音转文字并播报
def say_txt_as_audio(text):
    directory = "./chat-content"
    if not os.path.exists(directory):
        os.makedirs(directory)

    text = text.strip()
    if len(text) > 0:
        print("AI:" + text)
        # 将参数传送过来的txt内容转换为语音保存为mp3文件
        now = datetime.now()
        save_name = now.strftime("%Y%m%d%H%M%S.mp3")
        tts = gTTS(text, lang='zh-cn')
        tts.save("chat-content/" + save_name)

        # 通过pygame模块播放保存的mp3文件
        pygame.init()
        pygame.mixer.music.load("chat-content/" + save_name)
        pygame.mixer.music.play()
        while pygame.mixer.music.get_busy():
            pygame.time.wait(1000)
        pygame.quit()

这部分代码有使用pygame,所以不能忘了import pygame。另外由于执行的时候会有部分无关的文字输出到控制台,所以可能会像我一样修改环境设定。主要就是在import pygame之前有如下两行。

from os import environ
environ['PYGAME_HIDE_SUPPORT_PROMPT'] &

本文标签: 雏形语音chatGPTPython