Skip to content

Commit 743b15b

Browse files
dweeklyploeber
andauthored
Add PII audio redaction quality (#66)
Co-authored-by: Patrick Loeber <[email protected]>
1 parent 230f004 commit 743b15b

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

assemblyai/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
LemurTaskResponse,
3333
LemurTranscriptSource,
3434
Paragraph,
35+
PIIRedactedAudioQuality,
3536
PIIRedactionPolicy,
3637
PIISubstitutionPolicy,
3738
RawTranscriptionConfig,
@@ -97,8 +98,6 @@
9798
"LemurQuestionResponse",
9899
"LemurSummaryResponse",
99100
"LemurTaskResponse",
100-
"PIIRedactionPolicy",
101-
"PIISubstitutionPolicy",
102101
"Sentence",
103102
"Sentiment",
104103
"SentimentType",
@@ -117,6 +116,7 @@
117116
"Utterance",
118117
"UtteranceWord",
119118
"Paragraph",
119+
"PIIRedactedAudioQuality",
120120
"PIISubstitutionPolicy",
121121
"PIIRedactionPolicy",
122122
"RawTranscriptionConfig",

assemblyai/types.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,11 @@ class WordBoost(str, Enum):
202202
high = "high"
203203

204204

205+
class PIIRedactedAudioQuality(str, Enum):
206+
mp3 = "mp3"
207+
wav = "wav"
208+
209+
205210
class EntityType(str, Enum):
206211
"""
207212
Used for AssemblyAI's Entity Detection feature.
@@ -454,6 +459,8 @@ class RawTranscriptionConfig(BaseModel):
454459
"Redact PII from the transcribed text."
455460
redact_pii_audio: Optional[bool]
456461
"Generate a copy of the original media file with spoken PII 'beeped' out."
462+
redact_pii_audio_quality: Optional[PIIRedactedAudioQuality]
463+
"The quality of the redacted audio file in case `redact_pii_audio` is enabled."
457464
redact_pii_policies: Optional[List[PIIRedactionPolicy]]
458465
"The list of PII Redaction policies to enable."
459466
redact_pii_sub: Optional[PIISubstitutionPolicy]
@@ -543,6 +550,7 @@ def __init__(
543550
filter_profanity: Optional[bool] = None,
544551
redact_pii: Optional[bool] = None,
545552
redact_pii_audio: Optional[bool] = None,
553+
redact_pii_audio_quality: Optional[PIIRedactedAudioQuality] = None,
546554
redact_pii_policies: Optional[List[PIIRedactionPolicy]] = None,
547555
redact_pii_sub: Optional[PIISubstitutionPolicy] = None,
548556
speaker_labels: Optional[bool] = None,
@@ -580,6 +588,7 @@ def __init__(
580588
filter_profanity: Filter profanity from the transcribed text.
581589
redact_pii: Redact PII from the transcribed text.
582590
redact_pii_audio: Generate a copy of the original media file with spoken PII 'beeped' out (new audio only available for 24 hours).
591+
redact_pii_audio_quality: The quality of the redacted audio file in case `redact_pii_audio` is enabled.
583592
redact_pii_policies: The list of PII Redaction policies to enable.
584593
redact_pii_sub: The replacement logic for detected PII.
585594
speaker_labels: Enable Speaker Diarization.
@@ -623,6 +632,7 @@ def __init__(
623632
self.set_redact_pii(
624633
redact_pii,
625634
redact_pii_audio,
635+
redact_pii_audio_quality,
626636
redact_pii_policies,
627637
redact_pii_sub,
628638
)
@@ -773,6 +783,12 @@ def redact_pii_audio(self) -> Optional[bool]:
773783

774784
return self._raw_transcription_config.redact_pii_audio
775785

786+
@property
787+
def redact_pii_audio_quality(self) -> Optional[PIIRedactedAudioQuality]:
788+
"The quality of the redacted audio file in case `redact_pii_audio` is enabled."
789+
790+
return self._raw_transcription_config.redact_pii_audio_quality
791+
776792
@property
777793
def redact_pii_policies(self) -> Optional[List[PIIRedactionPolicy]]:
778794
"Returns a list of set of defined PII redaction policies."
@@ -1122,6 +1138,7 @@ def set_redact_pii(
11221138
self,
11231139
enable: Optional[bool] = True,
11241140
redact_audio: Optional[bool] = None,
1141+
redact_audio_quality: Optional[PIIRedactedAudioQuality] = None,
11251142
policies: Optional[List[PIIRedactionPolicy]] = None,
11261143
substitution: Optional[PIISubstitutionPolicy] = None,
11271144
) -> Self:
@@ -1131,13 +1148,15 @@ def set_redact_pii(
11311148
Args:
11321149
enable: whether to enable or disable the PII Redaction feature.
11331150
redact_audio: Generate a copy of the original media file with spoken PII 'beeped' out. NOTE: The copy is available for 24h
1151+
redact_audio_quality: The quality of the redacted audio file in case `redact_audio` is enabled.
11341152
policies: A list of PII redaction policies to enable.
11351153
substitution: The replacement logic for detected PII (`PIISubstutionPolicy.hash` by default).
11361154
"""
11371155

11381156
if not enable:
11391157
self._raw_transcription_config.redact_pii = None
11401158
self._raw_transcription_config.redact_pii_audio = None
1159+
self._raw_transcription_config.redact_pii_audio_quality = None
11411160
self._raw_transcription_config.redact_pii_policies = None
11421161
self._raw_transcription_config.redact_pii_sub = None
11431162

@@ -1148,6 +1167,7 @@ def set_redact_pii(
11481167

11491168
self._raw_transcription_config.redact_pii = True
11501169
self._raw_transcription_config.redact_pii_audio = redact_audio
1170+
self._raw_transcription_config.redact_pii_audio_quality = redact_audio_quality
11511171
self._raw_transcription_config.redact_pii_policies = policies
11521172
self._raw_transcription_config.redact_pii_sub = substitution
11531173

@@ -1527,6 +1547,8 @@ class BaseTranscript(BaseModel):
15271547
"Redact PII from the transcribed text."
15281548
redact_pii_audio: Optional[bool]
15291549
"Generate a copy of the original media file with spoken PII 'beeped' out."
1550+
redact_pii_audio_quality: Optional[PIIRedactedAudioQuality]
1551+
"The quality of the redacted audio file in case `redact_pii_audio` is enabled."
15301552
redact_pii_policies: Optional[List[PIIRedactionPolicy]]
15311553
"The list of PII Redaction policies to enable."
15321554
redact_pii_sub: Optional[PIISubstitutionPolicy]

0 commit comments

Comments
 (0)