python 녹음 및 바 이 두 음성 인식 인터페이스 호출 예제
#!/usr/bin/env python
import requests
import json
import base64
import pyaudio
import wave
import os
import psutil
#         
def bat(voice_path):
  baidu_server = 'https://aip.baidubce.com/oauth/2.0/token?'
  grant_type = 'client_credentials'
  client_id = 'uj70rS1LiwZ9sQDvMSUqKsie' #API KEY
  client_secret = 'Q88eav41PzeNLczZ3hlRjhR8e4WShXwD' #Secret KEY             ,     API KEY   Secret KEY
  #    token url
  url = baidu_server+'grant_type='+grant_type+'&client_id='+client_id+'&client_secret='+client_secret
  #  token
  res = requests.get(url).text
  data = json.loads(res)
  token = data['access_token']
  #       ,   ,   
  VOICE_RATE = 8000
  FILE_NAME = voice_path
  # USER_ID = '16241950' #   id       ,       
  FILE_TYPE = 'wav'
  CUID="wate_play"
  #         
  f_obj = open(FILE_NAME, 'rb')
  content = base64.b64encode(f_obj.read())  #         base64    
  speech = content.decode("utf-8")
  size = os.path.getsize(FILE_NAME)
  #json  
  datas = json.dumps({
    'format': FILE_TYPE,
    'rate': VOICE_RATE,
    'channel': 1,
    'cuid': CUID,
    'token': token,
    'speech': speech,
    'len': size,
    "dev_pid":"1536"
  })
  return datas
#  headers     url
def post(datas):
  headers = {'Content-Type':'application/json'}
  url = 'https://vop.baidu.com/server_api'
  # url = "http://vop.baidu.com/server_api"
  # post     
  request = requests.post(url, datas, headers)
  result = json.loads(request.text)
  text = result.get("result")
  if result['err_no'] == 0:
    return text
  else:
    return "Error"
def get_audio(filepath):
  input("       >>>")   #      ,input     ,  str,   aa
  CHUNK = 256         #      
  FORMAT = pyaudio.paInt16  #    (     )
  CHANNELS = 1        #    ;   :            
  RATE = 8000        #    ;   :             ,    8kHz, 16kHz, 32kHz, 48kHz, 11.025kHz, 22.05kHz, 44.1kHz
  RECORD_SECONDS = 5     #    
  WAVE_OUTPUT_FILENAME = filepath   #wav    
  p = pyaudio.PyAudio()        #   
  stream = p.open(format=FORMAT,
          channels=CHANNELS,
          rate=RATE,
          input=True,
          frames_per_buffer=CHUNK)
  print("*"*10, "    :  5      ")
  frames = []                         #      
  for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):   #  ,   11025 / 256 * 5
    data = stream.read(CHUNK)                #  chunk       data 
    frames.append(data)                   #   frames     data
  # print(frames)
  print("*" * 10, "    
")
  stream.stop_stream()
  stream.close()     #  
  p.terminate()      #  
  wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')         #  wav          wf,   WAV  
  wf.setnchannels(CHANNELS)                  #     
  wf.setsampwidth(p.get_sample_size(FORMAT))         #      
  wf.setframerate(RATE)                    #     
  wf.writeframes(b''.join(frames))              #            
  wf.close()       #  
  return
def check_disk():
  list_drive = psutil.disk_partitions() #         ,         
  list_disk = []
  for drive in list_drive:
    list_disk.append(drive.device)
  return list_disk
if __name__ == '__main__':
  list_disk = check_disk() #       
  dirname_path = os.path.join(list_disk[0], "voice") #           , 
                                  (mac os          )
  if not os.path.exists(dirname_path):
    os.makedirs(dirname_path)
  filename = "voice.wav" #        
  in_path = os.path.join(dirname_path, filename)
  get_audio(in_path) #   
  datas = bat(in_path) #                ,     
  res = post(datas) #           ,      
  print("    :",res[0])구현 효과:
 상기 코드 에 서 는 requests,psutil,pyaudio 등 라 이브 러 리 에 설치 해 야 합 니 다.그 중에서 pyaudio 라 이브 러 리 는 python 3 환경 에서 설치 하 는 것 이 비교적 특수 합 니 다.
windows 환경 에서 구체 적 인 절 차 는 다음 과 같다.
첫 번 째 단계:whl 파일 지원 다운로드
url: https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyaudio
 주의:
자신의 python 해석 기 대응 버 전 을 다운로드 합 니 다.
잘못 다운로드 하지 마 세 요.자원 이 많 습 니 다.
두 번 째 단계:cmd,cd 를 열 고 다운로드 한 whl 이 있 는 디 렉 터 리 에 들 어 갑 니 다.
실행 명령:pip install Twisted-18.7.0-cp36-cp36m-winamd64.whl # 다운로드 한 버 전 은 다음 버 전과 같 습 니 다.
세 번 째 단계:명령 실행:pip install pyaudio 설치 하 다.
로 컬 에 python 2 와 python 3 가 동시에 설치 되 어 있 으 면 python 3 에 설치 하려 면 cmd 명령 에서 pip 를 pip 3 로 바 꾸 면 됩 니 다.
mac os 에서 pyaudio 를 설치 하 는 절 차 는 다음 과 같 습 니 다.
 여기까지 끝!
이상 은 python 이 녹음 하고 바 이 두 음성 인식 인 터 페 이 스 를 호출 하 는 예제 의 상세 한 내용 입 니 다.python 이 녹음 하고 음성 인식 인 터 페 이 스 를 호출 하 는 데 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.