Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.31 KB | None | 0 0
  1. import sys
  2. import requests
  3. import json
  4. import os
  5. import time
  6.  
  7. with open ("0.wav", "rb") as f:
  8.     data = f.read()
  9.  
  10. apiKey = 'f8c3d232-7420-4be7-9a53-3efa2f50ac3b'
  11.  
  12. #f8c3d232-7420-4be7-9a53-3efa2f50ac3b
  13.  
  14. # Step 1
  15. headers = {
  16.     "X-API-KEY": apiKey
  17. }
  18. payloads = {
  19.     'Action':'connect'
  20. }
  21.  
  22. url = 'https://iot.cht.com.tw/apis/CHTIoT/chtlasr/v2/MyServlet/tlasr'
  23.  
  24. response = requests.request("POST", url, headers=headers, params=payloads)
  25. print(response.status_code)
  26. #print(response.text)
  27. asr_id = json.loads(response.text)['AsrReferenceId']
  28.  
  29. # Step2
  30. '''
  31. mp3path = "10384880080604.wav" #可以改回 sys.argv[1]
  32. binarydata = removeWAVHeader(mp3path) #改用 wav 移除 header 模式讀取
  33. '''
  34.  
  35. for i in range (1):
  36.     headers = {
  37.         "X-API-KEY": apiKey,
  38.         "Content-type": "application/octet-stream",
  39.         "Accept": "application/json"
  40.     }
  41.     payloads = {
  42.         'Action':'syncData',
  43.         'AsrReferenceId' : asr_id,
  44.         'ByteNum' : len(data),#os.path.getsize(mp3path), #ByteNum 應該是取的檔案的 length
  45.         'SpeechEnd' : 'y' #當作一個結束,除非使用迴圈繼續 post, 這裡當作測試一次就結束
  46.     }
  47.  
  48.     # 送出音頻資料用 binary data 方式送出,不是 file
  49.     response = requests.post(url, data=data, headers=headers, params=payloads)
  50.     print(response.status_code)
  51.     #print(response.text) # 要在結束 {SpeechEnd:'n'} 的時候看才會有 Result
  52.     words = json.loads(response.text)['Result']
  53.     print("結果: "+words)
  54.     i = i+1
  55. '''
  56. payloads = {
  57.    'Action':'syncData',
  58.    'AsrReferenceId' : asr_id,
  59.    'ByteNum' : len(data), #os.path.getsize(mp3path), #ByteNum 應該是取的檔案的 length
  60.    'SpeechEnd' : 'y' #當作一個結束,除非使用迴圈繼續 post, 這裡當作測試一次就結束
  61. }
  62. response = requests.post(url, data=data, headers=headers, params=payloads)
  63. print(response.status_code)
  64. print(response.text) # 要在結束 {SpeechEnd:'n'} 的時候看才會有 Result
  65. '''
  66.  
  67. # Step 3
  68. def stopRcg():
  69.     headrs = {
  70.         "X-API-KEY": apiKey
  71.     }
  72.     payloads = {
  73.         'Action':'stopRcg',
  74.         'AsrReferenceId' : asr_id
  75.     }
  76.  
  77.     response = requests.request("POST", url, headers=headers, params=payloads)
  78.     print(response.status_code)
  79.     print(response.text)
  80.  
  81. stopRcg()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement