ChatGPT 음성 도우미
- ChatGPT 음성 도우미는 Raspberry Pi(또는 데스크톱)를 사용하여 OpenAI 대규모 언어 모델과 음성 대화를 지원합니다. 이 구현은 음성을 듣고 OpenAI 서비스를 통해 대화를 처리한 후 응답합니다. Apple Siri, Amazon Alex, Google Nest Home, Mi XiaoAi 등과 같습니다.
- 이 프로젝트는 Linux/Raspbian, macOS 및 Windows를 지원하는 Python으로 작성되었습니다.
특징
- 실시간 음성 대화를 지원합니다. ChatGPT가 문장을 반환한 후 음성 합성을 시작하기 전에 모든 ChatGPT 응답을 기다리지 않고 음성을 들을 수 있습니다.
- 지속적인 대화를 지원하고 모든 ChatGPT 현재 대화 기록을 저장합니다. ChatGPT 대화가 4096개 토큰(gpt-3.5-turbo)보다 큰 경우 초기 대화 기록이 삭제됩니다.
- 로컬 깨우기 단어를 지원하고 Siri처럼 사용하세요.
음성 보조 스피커
- 하드웨어
- 라즈베리 파이 3/3B/4/4B의 경우 $
- USB 마이크로폰의 경우 $
- 보조 스피커용 $
- $ SD 카드(>= 8GB)(Raspberry Pi OS 설정용)
- 소프트웨어
- Azure 인지 음성 서비스
- 무료 등급 : 월별 오디오 시간 5시간 및 동시 요청 1개.
- 무료 $200 크레딧 : 처음 30일 동안 사용할 수 있는 새 Azure 계정이 있습니다.
- 오픈AI
- $0.002 / 1K 토큰 / ~750 단어 : ChatGPT (gpt-3.5-turbo)
- 무료 $18 크레딧 : 처음 90일 동안 사용할 수 있는 새로운 OpenAI 계정.
설정
- Azure Cognitive Services 인스턴스와 OpenAI 계정이 필요합니다. 거의 모든 플랫폼에서 소프트웨어를 실행할 수 있지만 먼저 Raspberry Pi부터 시작하겠습니다.
라즈베리 파이
- Raspberry Pis를 처음 사용하는 경우 이 시작 가이드를 확인하세요.
1. OS
- SD 카드를 PC에 삽입하세요.
- https://www.raspberrypi.com/software/로 이동한 다음 Raspberry Pi Imager를 다운로드하여 실행하세요.
-
Choose OS
클릭하고 Raspberry Pi OS(64비트) 또는 Ubuntu 22.04.2 LTS(64비트)를 선택합니다. -
Choose Storage
클릭하고 SD 카드를 선택합니다. -
Write
클릭하고 이미징이 완료될 때까지 기다립니다. - SD 카드를 Raspberry Pi에 넣고 키보드, 마우스, 모니터를 연결하세요.
- 초기 설정을 완료하고 Wi-Fi를 구성했는지 확인하세요.
2. USB 스피커/마이크
- 아직 USB 스피커/마이크를 연결하지 않았다면 연결하세요.
- Raspberry PI OS 데스크탑에서 화면 오른쪽 상단에 있는 볼륨 아이콘을 마우스 오른쪽 버튼으로 클릭하고 USB 장치가 선택되어 있는지 확인하세요.
- 화면 오른쪽 상단에 있는 마이크 아이콘을 마우스 오른쪽 버튼으로 클릭하고 USB 장치가 선택되어 있는지 확인하세요.
하늘빛
대화형 화자는 음성을 텍스트로 변환하고 텍스트를 음성으로 변환하기 위해 Azure Cognitive Service를 사용합니다. 다음은 Azure 계정 및 Azure Cognitive Services 인스턴스를 만드는 단계입니다.
1. 애저 계정
- 웹 브라우저에서 https://aka.ms/friendbot/azure로 이동하여
Try Azure for Free
클릭합니다. -
Start Free
을 클릭하여 무료 Azure 계정 만들기를 시작합니다. - Microsoft 또는 GitHub 계정으로 로그인하세요.
- 로그인하면 몇 가지 정보를 입력하라는 메시지가 표시됩니다.
참고: 무료 계정이더라도 Azure에는 여전히 신용 카드 정보가 필요합니다. 나중에 설정을 변경하지 않는 한 요금이 청구되지 않습니다.
- 계정 설정이 완료되면 https://aka.ms/friendbot/azureportal로 이동합니다.
2. Azure 인지 서비스
- https://aka.ms/friendbot/azureportal에서 계정에 로그인하세요.
- 상단 검색창에
Cognitive Services
입력합니다. Marketplace
에서 Cognitive Services
선택합니다. (채워지는 데 몇 초 정도 걸릴 수 있습니다.) - 올바른 구독이 선택되었는지 확인하세요.
Resource Group
에서 Create New
선택합니다. 리소스 그룹 이름을 입력합니다(예: conv-speak-rg
). - Azure Cognitive Services 인스턴스의 지역 및 이름을 선택합니다(예:
my-conv-speak-cog-001
). 참고: EastUS, WestEurope 또는 SoutheastAsia가 권장됩니다. 해당 지역은 가장 많은 기능을 지원하는 경향이 있습니다.
-
Review + Create
클릭합니다. 유효성 검사를 통과한 후 Create
클릭합니다. - 배포가 완료되면
Go to resource
클릭하여 Azure Cognitive Services 리소스를 볼 수 있습니다. - 왼쪽 탐색 모음의
Resourse Management
아래에서 Keys and Endpoint
선택합니다. - 두 개의 Cognitive Services 키 중 하나를 복사합니다. 나중에 사용할 수 있도록 이 키를 안전한 위치에 저장하세요.
Windows 11 사용자: TTS(text-to-speech) API를 호출할 때 애플리케이션이 중단되는 경우 현재 보안 업데이트(링크)를 모두 적용했는지 확인하세요.
오픈AI
대화형 스피커는 OpenAI의 모델을 사용하여 친근한 대화를 나눕니다. 다음은 새 계정을 만들고 AI 모델에 액세스하는 단계입니다. OpenAI 공식 API 또는 Azure OpenAI API를 지원합니다. 하나만 선택하세요.
1. 오픈AI 계정
- 웹 브라우저에서 https://aka.ms/maker/openai로 이동합니다.
Sign up
클릭합니다. 참고: Google 계정, Microsoft 계정 또는 이메일을 사용하여 새 계정을 만들 수 있습니다.
- 가입 절차를 완료하세요(예: 비밀번호 만들기, 이메일 확인 등).
참고: OpenAI를 처음 사용하는 경우 사용 지침(https://beta.openai.com/docs/usage-guidelines)을 검토하세요.
- 오른쪽 상단에서 계정을 클릭하세요.
View API keys
를 클릭하세요. -
+ Create new secret key
클릭합니다. 생성된 키를 복사하고 나중에 사용할 수 있도록 안전한 위치에 저장하세요.
대형 언어 모델을 직접 플레이해보고 싶다면 https://aka.ms/maker 로그인 후 페이지 상단의 https://platform.openai.com/playground?mode=chat 를 확인해보세요. /openai.
2. Azure OpenAI 계정
OpenAI 공식 계정 또는 Azure OpenAI 계정 중에서 선택하세요.
- Azure 계정 만들기
- Azure 계정이 없다면 Azure 공식 웹사이트로 이동하여 계정을 등록하세요. Azure는 무료 계정 옵션을 제공하며 신규 사용자는 테스트 및 학습을 위해 일정 금액의 무료 크레딧을 얻을 수 있습니다.
- 액세스 신청
- Azure OpenAI 서비스 페이지에서 "액세스 신청" 버튼을 클릭합니다. 그러면 회사 이름, 사용 사례 등 필요한 정보를 입력해야 하는 신청 페이지로 이동합니다.
- 구성 및 사용
- 액세스 권한이 있으면 Azure Portal에서 새 OpenAI 서비스 리소스를 만들 수 있습니다. 생성 후에는 공식 설명서에 따라 API 키를 받고 Azure OpenAI 서비스 사용을 시작할 수 있습니다.
코드
1. 코드 구성
- Python Speech SDK 패키지는 Windows(x64 및 x86), Mac x64(macOS X 버전 10.14 이상), Mac arm64(macOS 버전 11.0 이상) 및 Linux에서 사용할 수 있습니다.
- Raspberry Pi 또는 PC에서 명령줄 터미널을 엽니다.
- Ubuntu 또는 Debian에서 필수 패키지를 설치하려면 다음 명령을 실행하세요.
sudo apt-get update
sudo apt-get install libssl-dev libasound2
- Ubuntu 22.04 LTS 에서는 http://security.ubuntu.com/ubuntu/pool/main/o/openssl/ 등에서 최신 libssl1.1 패키지를 다운로드하여 설치해야 합니다.
- 저장소를 복제합니다.
git clone https://github.com/jackwuwei/gptspeaker.git
- API 키 설정: config.json
{AzureCognitiveServices.Key}
및 {AzureCognitiveServices.Region}
을 OpenAI API 키로 바꾸고, {OpenAI.Key}
OpenAI API 키로 바꿉니다. {
"AzureCognitiveServices" : {
"Key" : " AzureCognitiveServicesKey " ,
"Region" : " AzureCognitiveServicesRegion " ,
},
"OpenAI" : {
"Key" : " OpenAIKey " ,
},
// Just choose one of the two OpenAI above
"AzureOpenAI" :
{
"Key" : " " , // Key 1 or Key 2
"api_version" : " 2024-02-01 " ,
"Endpoint" : " " , // Endpoint
"Model" : " " // Azure AI Studio deployment name
}
}
- 설치 요구 사항
pip3 -r install requirements.txt
- 코드 실행
2. (선택 사항) 사용자 정의 깨우기 문구 만들기
코드 베이스에는 이미 기본 깨우기 문구( "Hey GPT"
)가 있으므로 먼저 사용하는 것이 좋습니다. 자신만의 (무료!) 맞춤형 깨우기 단어를 만들고 싶다면 아래 단계를 따르세요.
- https://aka.ms/hackster/microsoft/wakeword의 지침을 사용하여 사용자 지정 키워드 모델을 만듭니다.
- 모델을 다운로드하고
.table
파일을 추출한 후 소스 루트 디렉터리에 복사합니다. - 깨우기 문구 파일을 빌드에 포함하도록
config.json
파일을 업데이트하세요. "AzureCognitiveServices" : {
"WakePhraseModel" : " xxx.table " ,
"WakeWord" : " xxx " ,
}
- 사용자 정의 깨우기 단어를 사용하려면 프로젝트를 다시 빌드하고 실행하세요.