Database System Concepts
Database System Concepts
7th Edition
ISBN: 9780078022159
Author: Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher: McGraw-Hill Education
Bartleby Related Questions Icon

Related questions

Question
Q/Complete the following code in Python (Biometrics for Voice Recognition)
import os
import numpy as np
from pyAudioAnalysis import audioBasicIO, audioFeatureExtraction, audioTrainTest
from pydub import AudioSegment


# Function to capture and save voice samples
def capture_voice_samples(num_samples, speaker_name):
os.makedirs("speakers", exist_ok=True)
for i in range(num_samples):
input("Press Enter and start speaking...")
os.makedirs(f"speakers/{speaker_name}", exist_ok=True)
audio = audioBasicIO.read_audio_file(f"speakers/{speaker_name}/sample_{i + 1}.wav")
audio = AudioSegment.from_wav(f"speakers/{speaker_name}/sample_{i + 1}.wav")
audio.export(f"speakers/{speaker_name}/sample_{i + 1}.wav", format="wav")
print(f"Sample {i + 1} saved for {speaker_name}")


# Function to extract features from voice samples
def extract_features():
speakers = [d for d in os.listdir("speakers") if os.path.isdir(os.path.join("speakers", d))]
all_features = []
all_labels = []

for i, speaker in enumerate(speakers):
features = []
labels = []

for filename in os.listdir(f"speakers/{speaker}"):
if filename.endswith(".wav"):
filepath = os.path.join(f"speakers/{speaker}", filename)
print(f"Extracting features from {filepath}")
[Fs, x] = audioBasicIO.read_audio_file(filepath)
F, f_names = audioFeatureExtraction.stFeatureExtraction(x[:, 0], Fs, 0.050 * Fs, 0.025 * Fs)
features.append(F.T)
labels.append(i)

all_features.extend(features)
all_labels.extend(labels)

return np.array(all_features), np.array(all_labels)


# Function to perform speaker identification
def identify_speaker():
features, labels = extract_features()
model = audioTrainTest.gmm_train(features, labels)

while True:
filepath = input("Enter the path of the voice sample to identify (or 'exit' to quit): ")
if filepath.lower() == "exit":
break

[Fs, x] = audioBasicIO.read_audio_file(filepath)
F, _ = audioFeatureExtraction.stFeatureExtraction(x[:, 0], Fs, 0.050 * Fs, 0.025 * Fs)
winner, _, _ = audioTrainTest.gmm_classify(model, F.T)
identified_speaker = os.listdir("speakers")[winner]
print(f"The identified speaker is: {identified_speaker}")


# Main function
def main():
num_samples = int(input("Enter the number of voice samples to capture per speaker: "))
num_speakers = int(input("Enter the number of speakers: "))

for i in range(num_speakers):
speaker_name = input(f"Enter the name of speaker {i + 1}: ")
capture_voice_samples(num_samples, speaker_name)

# Identify speaker from a given voice sample
identify_speaker()

if __name__ == "__main__":
main()
Expert Solution
Check Mark
Knowledge Booster
Background pattern image
Computer Science
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education