diff --git a/java/com/android/dialer/voicemail/settings/VoicemailSettingsFragment.java b/java/com/android/dialer/voicemail/settings/VoicemailSettingsFragment.java
index 7f5bb79..5ae26f5 100644
--- a/java/com/android/dialer/voicemail/settings/VoicemailSettingsFragment.java
+++ b/java/com/android/dialer/voicemail/settings/VoicemailSettingsFragment.java
@@ -32,14 +32,12 @@
 import android.telecom.TelecomManager;
 import android.telephony.SubscriptionInfo;
 import android.telephony.TelephonyManager;
-import android.text.Html;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.logging.DialerImpression;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.notification.NotificationChannelManager;
 import com.android.dialer.telecom.TelecomUtil;
-import com.android.dialer.widget.TextViewPreference;
 import com.android.voicemail.VoicemailClient;
 import com.android.voicemail.VoicemailClient.ActivationStateListener;
 import com.android.voicemail.VoicemailComponent;
@@ -75,7 +73,6 @@
   private SwitchPreference donateVoicemailSwitchPreference;
   private Preference voicemailChangePinPreference;
   private PreferenceScreen advancedSettings;
-  private TextViewPreference voicemailTranscriptionInstructionText;
 
   @Override
   public void onCreate(Bundle icicle) {
@@ -212,10 +209,6 @@
             return false;
           }
         });
-
-    voicemailTranscriptionInstructionText =
-        (TextViewPreference) findPreference(getString(R.string.voicemail_transcription_text_key));
-    voicemailTranscriptionInstructionText.setTitle(getVoicemailTranscriptionInstructionsText());
   }
 
   @Override
@@ -355,20 +348,4 @@
     builder.setCancelable(true);
     builder.show();
   }
-
-  /**
-   * Builds a spannable string containing the voicemail transcription instructions text containing
-   * the appropriate "Learn More" urls.
-   *
-   * @return The voicemail transcription instructions text.
-   */
-  private CharSequence getVoicemailTranscriptionInstructionsText() {
-    String settingText =
-        getString(
-            R.string.voicemail_transcription_instruction_text,
-            getString(R.string.transcription_learn_more_url),
-            getString(R.string.donation_learn_more_url));
-    CharSequence settingSeq = Html.fromHtml(settingText);
-    return settingSeq;
-  }
 }
diff --git a/java/com/android/dialer/voicemail/settings/res/values/strings.xml b/java/com/android/dialer/voicemail/settings/res/values/strings.xml
index 3056ef6..1d2c104 100644
--- a/java/com/android/dialer/voicemail/settings/res/values/strings.xml
+++ b/java/com/android/dialer/voicemail/settings/res/values/strings.xml
@@ -125,17 +125,6 @@
   <!-- The label for the confirm-disable-voicemail button [CHAR LIMIT=16] -->
   <string name="confirm_disable_voicemail_accept_dialog_label">TURN OFF</string>
 
-  <!-- Internal preferences key for static instruction text. -->
-  <string name="voicemail_transcription_text_key" translatable="false">voicemail_transcription_text_key</string>
-
-  <!-- Additional information text and links for visual voicemail and voicemail donation setting page
-       [CHAR LIMIT=NONE] -->
-  <string name="voicemail_transcription_instruction_text">
-    Visual voicemail allows you to check voicemail messages without having to call voicemail. Transcripts provided by Google. &lt;a href="<xliff:g example="http://www.google.com" id="url1">%1$s</xliff:g>">Learn&#160;more&lt;/a>
-    &lt;br>&lt;br>
-    For voicemail transcription analysis, your voicemail messages are stored anonymously. &lt;a href="<xliff:g example="http://www.google.com" id="url2">%2$s</xliff:g>">Learn&#160;more&lt;/a>
-  </string>
-
   <string translatable="false" name="transcription_learn_more_url">https://support.google.com/phoneapp/answer/2811844?hl=en%26ref_topic=7539039</string>
   <string translatable="false" name="donation_learn_more_url">https://support.google.com/phoneapp/answer/2811844#voicemail_transcript</string>
 
diff --git a/java/com/android/dialer/voicemail/settings/res/xml/voicemail_settings.xml b/java/com/android/dialer/voicemail/settings/res/xml/voicemail_settings.xml
index 75c8cfe..e558985 100644
--- a/java/com/android/dialer/voicemail/settings/res/xml/voicemail_settings.xml
+++ b/java/com/android/dialer/voicemail/settings/res/xml/voicemail_settings.xml
@@ -44,7 +44,4 @@
     android:title="@string/voicemail_advanced_settings_title">
     </PreferenceScreen>
 
-  <com.android.dialer.widget.TextViewPreference
-    android:key="@string/voicemail_transcription_text_key"/>
-
 </PreferenceScreen>
