from pydub.utils import mediainfo import hashlib def audio_hash(audio_path): with open(audio_path, "rb") as f: audio_data = f.read() hash_object = hashlib.sha256() hash_object.update(audio_data) audio_hash = hash_object.hexdigest() return audio_hash[:10] def str_to_hash(input_str): input_bytes = input_str.encode('utf-8') hash_object = hashlib.sha256() hash_object.update(input_bytes) hash_code = hash_object.hexdigest() return hash_code[:10] def get_unique_code(reference_speaker, text, language): return f"{audio_hash(reference_speaker)}_{str_to_hash(text)}_{language}" if __name__ == '__main__': example_inputs = [ { "text": "The bustling city square bustled with street performers, tourists, and local vendors.", "language": 'en_us', "reference_speaker": "examples/speaker0.mp3" }, { "text": "Did you ever hear a folk tale about a giant turtle?", "language": 'en_us', "reference_speaker": "examples/speaker0.mp3" }, { "text": "El resplandor del sol acaricia las olas, pintando el cielo con una paleta deslumbrante.", "language": 'es_default', "reference_speaker": "examples/speaker1.mp3", }, { "text": "我最近在学习machine learning,希望能够在未来的artificial intelligence领域有所建树。", "language": 'zh_default', "reference_speaker": "examples/speaker2.mp3", }, { "text": "彼は毎朝ジョギングをして体を健康に保っています。", "language": 'jp_default', "reference_speaker": "examples/speaker3.mp3", } ] for example_input in example_inputs: print(get_unique_code(example_input['reference_speaker'], example_input['text'], example_input['language']))