def music_print(self): # tag : artist, title, genre, album, label config = { 'host': 'us-west-2.api.acrcloud.com', 'access_key': '', 'access_secret': '', 'debug': False, 'timeout': 10 # seconds } '''This module can recognize ACRCloud by most of audio/video file. Audio: mp3, wav, m4a, flac, aac, amr, ape, ogg ... Video: mp4, mkv, wmv, flv, ts, avi ...''' re = ACRCloudRecognizer(config) dict1 = ast.literal_eval(re.recognize_by_file(self.megafile.get_url(), 0)) if dict1['status']['msg'] == 'Success' and dict1['metadata'] and dict1['metadata']['music'][0]: return dict1 else: # make sure to catch IOError buf = open(self.megafile.get_url(), 'rb').read() dict2 = ast.literal_eval(re.recognize_by_filebuffer(buf, 0)) if dict2['status']['msg'] == 'Success' and dict2['metadata'] and dict2['metadata']['music'][0]: return dict2
class Recognizer: def auth(self, config): recognizer_config = { "host": config["ACRCloud"]["host"], "access_key": config["ACRCloud"]["access_key"], "access_secret": config["ACRCloud"]["secret_key"], "timeout": 10 } self.recognizer = ACRCloudRecognizer(recognizer_config) def recognize(self, url): response = requests.get(url, stream=True) buffer = io.BytesIO(response.content).read() response = self.recognizer.recognize_by_filebuffer(buffer, 0) data = json.loads(response) status = data["status"]["msg"] if status == "Success": title = data["metadata"]["music"][0]["title"] artist = data["metadata"]["music"][0]["artists"][0]["name"] song = "{} - {}".format(artist, title) return song else: return False
def audio_check(file_buffer): config = { 'host': audio_identifier_host, 'access_key': audio_identifier_access_key, 'access_secret': audio_identifier_access_secret, 'recognize_type': ACRCloudRecognizeType.ACR_OPT_REC_AUDIO, 'debug': False, 'timeout': 10 # seconds } re = ACRCloudRecognizer(config) res_str = re.recognize_by_filebuffer(file_buffer, 0, 10) res_dict = json.loads(res_str) status_code = res_dict["status"]["code"] if status_code == 0: # TO DO # create answer payload metadata = res_dict["metadata"] metadata_music_list = metadata["music"] check_answer = {} for i in range(0, len(metadata_music_list)): title = metadata_music_list[i]["title"] artists = metadata_music_list[i]["artists"] song = {'title': title, 'artists': artists} hashed_val = hashlib.sha1(json.dumps(song, \ sort_keys=True).encode()).hexdigest() if check_answer.get(hashed_val) == None: check_answer[hashed_val] = i answer = song return answer else: status_msg = res_dict["status"]["msg"] err = {'error': status_msg} return err
def recognize_music(full_path): re = ACRCloudRecognizer(config) result = json.loads(re.recognize_by_file(full_path, 0)) if result['status']['code'] != 0: buf = open(full_path, 'rb').read() result = json.loads(re.recognize_by_filebuffer(buf, 0)) if result['status']['code'] != 0: return 'UNKNOWN' data = result['metadata']['music'][0] return data['title'] + '-' + data['artists'][0]['name']
def get_songs(tiktok_url): config = { 'host': "identify-eu-west-1.acrcloud.com", 'access_key': "8862724c406dc09588b45a0100a6ff14", 'access_secret': "VUZkQ7vDytAxAcizRV1YzgwmZ12Mt57fyCmQkRf2", 'timeout': 10 } re = ACRCloudRecognizer(config) buf = get_mp3_bytes_code(tiktok_url) return re.recognize_by_filebuffer(buf, 0)
def hum(filePath): config = config_hum '''This module can recognize ACRCloud by most of audio/video file. Audio: mp3, wav, m4a, flac, aac, amr, ape, ogg ... Video: mp4, mkv, wmv, flv, ts, avi ...''' re = ACRCloudRecognizer(config) #recognize by file path, and skip 0 seconds from from the beginning of sys.argv[1]. #re.recognize_by_file(filePath, 0, 10) logger.info('ACR: Processing request...') buf = open(filePath, 'rb').read() #recognize by file_audio_buffer that read from file path, and skip 0 seconds from from the beginning of sys.argv[1]. data = re.recognize_by_filebuffer(buf, 0, 10) data = json.loads(data) logger.info('ACR: Processing complete!') return data
def audio_file(audio): config = { 'host': 'ap-southeast-1.api.acrcloud.com', 'access_key': 'f1840ce5b0603e9db3ec8c526eea65e5', 'access_secret': '1NfVJoxoREbGlO9HVqG4QNkSiMT86Lvs3Geogov9', 'debug': True, 'timeout': 30 # seconds } '''This module can recognize ACRCloud by most of audio/video file. Audio: mp3, wav, m4a, flac, aac, amr, ape, ogg ... Video: mp4, mkv, wmv, flv, ts, avi ...''' re = ACRCloudRecognizer(config) # recognize by file path, and skip 0 seconds from from the beginning of sys.argv[1]. buf = open(audio, 'rb').read() # recognize by file_audio_buffer that read from file path, and skip 0 seconds from from the beginning of sys.argv[1]. return re.recognize_by_filebuffer(buf, 1)
def recognize_music(music_file, host, key, secret): config = { 'host': host.encode('utf-8'), 'access_key': key.encode('utf-8'), 'access_secret': secret.encode('utf-8'), 'recognize_type': ACRCloudRecognizeType.ACR_OPT_REC_AUDIO, # you can replace it with [ACR_OPT_REC_AUDIO,ACR_OPT_REC_HUMMING,ACR_OPT_REC_BOTH], The SDK decide which type fingerprint to create accordings to "recognize_type". 'debug':False, 'timeout':10 # seconds } '''This module can recognize ACRCloud by most of audio/video file. Audio: mp3, wav, m4a, flac, aac, amr, ape, ogg ... Video: mp4, mkv, wmv, flv, ts, avi ...''' re = ACRCloudRecognizer(config) #recognize by file path, and skip 0 seconds from from the beginning of sys.argv[1]. #print re.recognize_by_file(music_file, 0, 10) buf = open(music_file, 'rb').read() #recognize by file_audio_buffer that read from file path, and skip 0 seconds from from the beginning of sys.argv[1]. print re.recognize_by_filebuffer(buf, 0, 10) result = re.recognize_by_filebuffer(buf, 0, 10) return result
import os from acrcloud.recognizer import ACRCloudRecognizer import urllib2 import sys if __name__ == '__main__': config = { 'host': 'identify-ap-southeast-1.acrcloud.com', 'access_key': os.environ['ACR_KEY'], 'access_secret': os.environ['ACR_SECRET'], 'timeout': 20 # seconds } re = ACRCloudRecognizer(config) # print re.recognize_by_file(sys.argv[1], 0) buf = urllib2.urlopen( 'https://s3.us-east-2.amazonaws.com/attendance-monitor/Selena+Gomez++The+Scene+-+Who+Says-%5BAudioTrimmer.com%5D.mp3' ).read() print re.recognize_by_filebuffer(buf, 0)
#-*- coding:utf-8 -*- ''' >>> python test.py test.mp3 ''' import os, sys from acrcloud.recognizer import ACRCloudRecognizer if __name__ == '__main__': config = { 'host':'XXXXXXXX', 'access_key':'XXXXXXXX', 'access_secret':'XXXXXXXX', 'debug':False, 'timeout':10 # seconds } '''This module can recognize ACRCloud by most of audio/video file. Audio: mp3, wav, m4a, flac, aac, amr, ape, ogg ... Video: mp4, mkv, wmv, flv, ts, avi ...''' re = ACRCloudRecognizer(config) #recognize by file path, and skip 0 seconds from from the beginning of sys.argv[1]. print re.recognize_by_file(sys.argv[1], 0) buf = open(sys.argv[1], 'rb').read() #recognize by file_audio_buffer that read from file path, and skip 0 seconds from from the beginning of sys.argv[1]. print re.recognize_by_filebuffer(buf, 0)
import json if __name__ == '__main__': config = { 'host': 'identify-eu-west-1.acrcloud.com', 'access_key': '945a4fef66492f6361dfb80ce4b00bb0', 'access_secret': 'Dl7hpMntRyRBDl6UHNHyKoiGMIgXRn0gvpciDSFQ', 'recognize_type': ACRCloudRecognizeType. ACR_OPT_REC_AUDIO, # you can replace it with [ACR_OPT_REC_AUDIO,ACR_OPT_REC_HUMMING,ACR_OPT_REC_BOTH], The SDK decide which type fingerprint to create accordings to "recognize_type". 'debug': False, 'timeout': 10 # seconds } '''This module can recognize ACRCloud by most of audio/video file. Audio: mp3, wav, m4a, flac, aac, amr, ape, ogg ... Video: mp4, mkv, wmv, flv, ts, avi ...''' re = ACRCloudRecognizer(config) #recognize by file path, and skip 0 seconds from from the beginning of sys.argv[1]. song = json.loads(re.recognize_by_file("music1.mp3", 10, 20)) title = song['metadata']['music'][0]['title'] # print(json.loads(song)) # print(title) artist = song['metadata']['music'][0]['artists'][0]['name'] print(title + " by " + artist) #print("duration_ms=" + str(ACRCloudRecognizer.get_duration_ms_by_file("music1.mp3"))) buf = open("music1.mp3", 'rb').read() # recognize by file_audio_buffer that read from file path, and skip 0 seconds from from the beginning of sys.argv[1]. print(re.recognize_by_filebuffer(buf, 0, 10))
'''This module can recognize ACRCloud by most of audio/video file. Audio: mp3, wav, m4a, flac, aac, amr, ape, ogg ... Video: mp4, mkv, wmv, flv, ts, avi ...''' re = ACRCloudRecognizer(config) # Use file from arguments and if there is no file, then record music from mic if len(sys.argv) > 1: buf = open(sys.argv[1], 'rb').read() flag = 0 else: Record() buf = open("output.wav", 'rb').read() # Recognize by file_audio_buffer that read from file path or mic, and skip 0 seconds from the beginning. data_content = re.recognize_by_filebuffer(buf, 0) # Transform received json to object data = json.loads(data_content) # In case of success print information if data["status"]["code"] == 0: # Print Success message print(data["status"]["msg"]) print() # Print recognised information about artist print("Artist:", data["metadata"]["music"][0]["artists"][0]["name"]) print("Title:", data["metadata"]["music"][0]["title"]) if "album" in data["metadata"]["music"][0]: print("Album:", data["metadata"]["music"][0]["album"]["name"]) if "label" in data["metadata"]["music"][0]: